Commits


fix patience crash: iron out overlapping identical-blocks on the right


remove stray blank line


patience debug


patience comments


cosmetic: patience: use local var 'r' for right atom


cosmetic: rename local var from 'r' to 'rc'


patience: use qsort


patience: optimize: less diff_atom_cmp() via hash


fix patience iteration error; also makes dramatically faster


debug: patience: mark unique debug


patience: make it easy to switch impls for mark_unique


fix missing allocaion failure check in diff_algo_patience()


use mergesort(3) instead of qsort(3) in patience diff Fixes test failures on OpenBSD due to unstable results of qsort if two or more elements are equal. Add a compat copy of OpenBSD mergesort(3) for Linux.


check for allocation failure in diff_atoms_mark_unique_in_both_by_qsort()


wrap a comment that had overlong lines


patience: fix uninitialized rc in diff_atoms_qsort_compar


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).


patience: use qsort to optimize finding unique lines


move headers from include/diff/ to include/; makes things easier for consumers


repair DEBUG build


move some definitions from the public diff_main.h to an internal header file


rename 'debug.h' to 'diff_debug.h'


patience: error handling from diff_atoms_same()


add diff_atom_cmp() and error handling to diff_atom_same()


avoid include statements in header files; make each .c pull in what's needed