Commits


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)


fix ARRAYLIST_INSERT()


debug: diff_output_unidiff(): debug list all chunks


fix diff_algo_none(): no NULL pointers for left_start and right_start


diff_state_add_chunk(): fix adding minus above plus chunk: wrong idx


debug tweaks for diff_state_add_chunk()


diff_debug.h: drop unused vars