Commits


add -Wuninitialized to CFLAGS on Linux build; exposes some bugs already


add test for -T option This uncovered a bug in diff_algo_none(), so let's keep it.


move patience data out of struct diff_atom Now allocating patience specific data only when patience is going to be used. This may allow using forward-Myers more often, since the state size per line is significantly smaller. Patience instead allocates an array, puts it in the current diff_data, and also place a pointer of the current diff_data in the root diff_data (since each atom points to the root diff_data).


add patience tests


test/verify_all.sh: allow combined cmdline opts


patience: use qsort to optimize finding unique lines


rename diff_atom->d to diff_atom->root, because it always is The idea was that for each diff box within the files, the atoms would have a backpointer to the current layer of diff_data (indicating the current section), but it is not actually needed to update the backpointer in each atom to the current diff_data. That is why the current code always points atom->d to the root diff_data for the entire file. Clarify by proper name. Constructs like atom->d->root->foo are redundant, just use atom->root->foo.


diff: drop -p, add -P -Q -T; diffreg(): use algo enum -p is traditionally used for "show which C function each change is in", so don't use it for choosing Patience. Instead add two options for using Patience, -P for only Patience and -Q to attempt forward-Myers first. Also add -T for a trivial diff (diff_algo_none).


test: add expect0{10,11,12,14}.diff


diff_main: don't run algo if left or right are empty


debug: fix logging first chunk


diff_algo_none: cosmetics


fix diff_algo_none() for ending in plus chunk


ignore compiled files in all directories


fix missing newline in ed script diff output


make the C tests compile and run on both OpenBSD and Linux


remove arraylist_test during 'gmake clean'


rename GNU-make-specific Makefile to GNUmakefile


verify_all.sh: run all tests, then list all errors


run C tests in verify_all.sh


add arraylist_test


add results_test.c


results: also combine chunks coming from temp_chunks


myers_divide: fix "inifite" looping over same box


debug: diff_myers.c: #if DEBUG, not if (DEBUG)