Commit Briefs







37f62f5d4e Stefan Sperling

fix another format string issue in results_test.c

Cast ARRAYLIST_IDX result to unsigned long and use %lu in the format string. Clang 10.0.1 complained as follows: results_test.c:148:9: warning: format specifies type 'int' but the argument has type 'long' [-Wformat] ARRAYLIST_IDX(c, result->chunks), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


6fc23bd07d Stefan Sperling

fix a format string issue in results_test.c

Use explicit casts to long long and use %lld in the format string. Clang 10.0.1 complained as follows: results_test.c:78:9: warning: format specifies type 'int' but the argument has type 'long long' [-Wformat] c->left_start ? c->left_start->pos : -1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


cdaa991d59 Stefan Sperling

fix a format string issue in array test

ARRAYLIST_IDX deals with the head pointer. Explicitly cast to unsigned long and use %lu in the format string. Clang 10.0.1 used to complain as follows: arraylist_test.c:19:2: warning: format specifies type 'int' but the argument has type 'long' [-Wformat] arraylist_test.c:15:24: note: expanded from macro 'dump' printf("[%d] %d\n", ARRAYLIST_IDX(p, list), *p); \ ~~ ^~~~~~~~~~~~~~~~~~~~~~


db941c245f Stefan Sperling

put functions required for using diff_output_unidiff_chunk() into public API

They will be needed to implement 'got stage -p' and 'got revert -p', etc. Chunks stored in diff_result still need post-processing in order to be displayed as expected by diff_output_unidiff_chunk(). Exposing these functions allows API consumers to implement the same chunk merging loop as used internally by output_unidiff() and output_edscript(). (Perhaps, ideally, the public diff API would provide pre-merged chunks at some point in the future? Then this commit could probably be reverted.) Change return values from bool to int to avoid making stdbool.h a requirement for the public diff API.



12c5bde7b2 Stefan Sperling

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.







7021523c6d Stefan Sperling

print "\ No newline at end of file" message like UNIX diff(1) does

Not adding new tests since this behaviour is covered by tests in Got.



227cd87e53 Stefan Sperling

wrap a comment that had overlong lines


70fb5a4714 Neels Hofmeyr

diff_myers: fix some uninitialized warnings




99193dbfc9 Neels Hofmeyr

add test for -T option

This uncovered a bug in diff_algo_none(), so let's keep it.


6c8c5d3f0b Neels Hofmeyr

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