Commits


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


replace enum diff_rc errors with plain errno values


move 'struct range' and related functions into the diff_ namespace no functional change


fix wrong assignment in diff_atoms_swallow_identical_neighbors; ok neels


KNF: use max 80 columns


KNF: function declaration return types on separate line


Kill unused variables


Fix macro diff_atom_*idx return value types The macros sometimes returned unsigned int (atoms.len) or long int ((ATOM) - head). Make that always unsigned int, with some range checks against negative values.


patience: reduce sections by swallowing identical lines before LCS


initial commit