lib/diffreg.c


Log

Author Commit Date CI Message
Stefan Sperling 1cb46f00 2020-11-21T15:34:19 consistently label removed files as "/dev/null" in diff headers
Stefan Sperling 64453f7e 2020-11-21T13:35:00 handle binary files in got/tog diff commands; add -a options to force text
Stefan Sperling cca5682e 2020-11-18T16:34:28 allow for configuring a custom file atomizer with got_diff_get_config()
Stefan Sperling 24e87ea3 2020-11-18T16:15:41 remove unused function got_diffreg_prepared_files()
Stefan Sperling 72254787 2020-11-18T16:12:35 simply got_diff_prepare_file() by letting callers worry about file creation
Stefan Sperling 62ad13c5 2020-11-16T20:55:57 remove unused empty function got_diff_dump_change()
Stefan Sperling fe621944 2020-11-10T22:54:37 merge new diff implementation from the git.gameoftrees.org diff.git repository This new diff implementation was started by Neels Hofmeyr during the u2k20 hackathon and now replaces diffreg.c code lifted from the OpenBSD base system. The integration of this code into Got was done by me. Got now uses the patience diff algorithm by default. The diff.git repository will remain the primary repository for the diff code, which already compiles and runs on other operating systems such as Linux. Any fixes and improvements for files inherited from the diff.git repository should be written against that repository and synced to got.git afterwards.
Stefan Sperling efbadcb1 2020-01-26T23:49:24 avoid creating empty files when one side of a diff is empty; ok tracey
Tracey Emery ac9e7fdd 2020-01-25T16:11:31 create temporary workaround to opening /dev/null during diffing. this will need to be reworked later. ok stsp
Steven McDonald 303e14b5 2019-09-22T16:04:05 Add missing includes for time() and ctime() These headers were implicitly used on OpenBSD, but building on Linux revealed that <time.h> wasn't included directly. diffreg.c uses ctime(), which additionally needs <sys/types.h>.
Steven McDonald 83290b45 2019-09-22T15:59:06 Remove return value from diffreg's fetch() The last use of this was removed in 0165cdf03ffac4c24334979832ad27554913d54c over a year ago.
Steven McDonald 8fbe07c2 2019-09-22T15:58:49 Remove unused variable in diffreg's fetch()
Stefan Sperling 14ed98fd 2019-08-15T01:57:45 remove unused 'oldfile' parameter from diffreg.c's fetch()
Stefan Sperling dc424a06 2019-08-07T17:26:35 initial 'got stage -p' implementation
Stefan Sperling 3043f6a3 2019-08-07T13:30:12 remove accidental assignment in diffreg.c
Stefan Sperling 8cbe5809 2019-05-21T11:08:12 plug /dev/null file descriptor leaks in diffreg.c
Stefan Sperling 638f9024 2019-05-13T12:40:57 rename got_error_prefix_errno() to got_error_from_errno()
joshua stein 230a42bd 2019-05-11T13:04:38 got_error_from_errno -> got_error_prefix_errno also add got_error_prefix_errno2 and got_error_prefix_errno3 which should hopefully all be merged into a single function with variadic args (but can't alloc mem)
Stefan Sperling bcd28dfd 2019-02-11T12:32:29 don't close input files in got_diffreg(); callers will do that
Stefan Sperling fb43ecf1 2019-02-11T11:59:09 check for errors from fclose()
Stefan Sperling acb209ee 2019-02-07T13:59:17 restore support for D_NORMAL diffs of regular files
Stefan Sperling 4a8520aa 2018-10-18T22:32:17 use a constant for max diff context size
Stefan Sperling 404c43c4 2018-06-21T23:22:57 basic 'got blame' implementation
Stefan Sperling c48ceb4c 2018-04-02T20:58:50 remove support for the ifdef diff format from diffreg
Stefan Sperling 1afa8e43 2018-04-02T20:54:51 remove REVERSE and NREVERSE diff output options from diffreg
Stefan Sperling 0165cdf0 2018-04-02T20:51:27 remove support for 'edit' diff output from diffreg
Stefan Sperling 119f8600 2018-04-02T20:49:11 remove support for "normal" diff output from diffreg
Stefan Sperling 84e11851 2018-04-02T20:47:21 remove support for context diffs from diffreg.c
Stefan Sperling a2a848a2 2018-04-02T20:43:42 remove ignore-lines pattern support from diffreg code
Stefan Sperling f5d549b5 2018-04-02T20:42:06 adjust preadline() and ignoreline() to match diff(1) again
Stefan Sperling 755142ea 2018-04-02T19:31:10 in diffreg.c, return value from preadline() must be freed
Stefan Sperling 5a7ffad5 2018-04-02T19:26:55 always free ds->ixold and ds->ixmew in got_diffreg()
Stefan Sperling 6b59e13c 2018-04-02T19:25:28 always free ds->clist and ds->klist in got_diffreg()
Stefan Sperling 7b366981 2018-04-02T19:24:14 always free ds->J in got_diffreg()
Stefan Sperling 9b98f34b 2018-04-02T19:22:15 always free ds->member and ds->class in got_diffreg()
Stefan Sperling df51fc4e 2018-04-02T19:14:02 fix reallocarray error handling in diffreg.c
Stefan Sperling 76735683 2018-04-02T16:37:53 move diffreg's max_context into struct got_diff_state
Theo Buehler d3f36e7e 2018-04-02T16:29:49 make max_connect static as in the original diffreg.c This way we grow the array instead of doing 64 <<= 1.
Stefan Sperling bb5dcc10 2018-04-01T17:28:38 fix open file leaks in previous
Stefan Sperling ecf6e46e 2018-04-01T17:21:25 check for fopen() failures in got_diffreg()
Stefan Sperling 0a585a0d 2018-03-17T18:13:19 remove GOT_ERR_NO_MEM, we can just use errno in those cases
Stefan Sperling 718b3ab0 2018-03-17T17:50:48 rename the library-internal headers again to a common prefix
Stefan Sperling 32cb896c 2018-03-11T14:10:56 rename library-private headers from *_priv.h to *_lib.h
Stefan Sperling 1411938b 2018-02-12T23:25:38 rename private header filenames so they are in got_ namespace
Martin Pieuchot 322260e1 2018-01-26T13:58:40 Get rid of xmalloc.{c,h}. malloc(3) & pread(3) errors will now be reported as GOT_ERR_NO_MEM. This does not improve the numbers of leaks in diffreg.c
Stefan Sperling a3e2cbea 2017-12-01T22:09:59 make tree diffing work
Stefan Sperling cb74ff21 2017-11-30T15:12:45 pass output file to diffreg
Stefan Sperling f9d67749 2017-11-30T02:38:38 move tempfile creation out of got_diffreg()
Stefan Sperling 697f4470 2017-11-30T00:54:40 add todo comment about diffreg() arguments
Stefan Sperling 9aa1fd75 2017-11-29T23:51:39 add a comment about xmalloc; it needs to go away
Stefan Sperling 8ba9a219 2017-11-29T23:30:52 remove diff_args from global state as well
Stefan Sperling 1c7f0520 2017-11-29T22:52:00 store stat buffers in diff_state rather than diff_args
Stefan Sperling ed9e98a8 2017-11-29T22:47:05 store global diff state in memory provided by caller
Stefan Sperling dae2fc59 2017-11-29T22:20:17 move more globals into struct diff_state
Stefan Sperling 8020fd50 2017-11-29T22:18:14 move 'file' array into diff state
Stefan Sperling e04c4b2b 2017-11-29T22:15:12 wrap global diff state in a struct
Stefan Sperling cb056f1e 2017-11-29T22:06:07 wrap global diff arguments in a struct
Stefan Sperling 7d283eee 2017-11-29T17:11:11 add and test basic blob diffing functionality
Stefan Sperling 574ed2c3 2017-11-29T17:09:52 add some unmodified files from /usr/src/usr.bin/diff/