Commit facc0650 by Russell Belfer

Simplify git_diff__paired_foreach icase handling

parent bcbb1e20
...@@ -1666,32 +1666,28 @@ int git_diff__paired_foreach( ...@@ -1666,32 +1666,28 @@ int git_diff__paired_foreach(
int cmp; int cmp;
git_diff_delta *i2h, *w2i; git_diff_delta *i2h, *w2i;
size_t i, j, i_max, j_max; size_t i, j, i_max, j_max;
bool icase = false; int (*strcomp)(const char *, const char *);
i_max = idx2head ? idx2head->deltas.length : 0; i_max = idx2head ? idx2head->deltas.length : 0;
j_max = wd2idx ? wd2idx->deltas.length : 0; j_max = wd2idx ? wd2idx->deltas.length : 0;
if (idx2head && wd2idx && /* Get appropriate strcmp function */
(0 != (idx2head->opts.flags & GIT_DIFF_DELTAS_ARE_ICASE) || strcomp = idx2head ? idx2head->strcomp : wd2idx ? wd2idx->strcomp : NULL;
0 != (wd2idx->opts.flags & GIT_DIFF_DELTAS_ARE_ICASE)))
{ /* Assert both iterators use matching ignore-case. If this function ever
/* Then use the ignore-case sorter... */ * supports merging diffs that are not sorted by the same function, then
icase = true; * it will need to spool and sort on one of the results before merging
*/
/* and assert that both are ignore-case sorted. If this function if (idx2head && wd2idx) {
* ever needs to support merge joining result sets that are not sorted assert(idx2head->strcomp == wd2idx->strcomp);
* by the same function, then it will need to be extended to do a spool }
* and sort on one of the results before merge joining */
assert(0 != (idx2head->opts.flags & GIT_DIFF_DELTAS_ARE_ICASE) &&
0 != (wd2idx->opts.flags & GIT_DIFF_DELTAS_ARE_ICASE));
}
for (i = 0, j = 0; i < i_max || j < j_max; ) { for (i = 0, j = 0; i < i_max || j < j_max; ) {
i2h = idx2head ? GIT_VECTOR_GET(&idx2head->deltas,i) : NULL; i2h = idx2head ? GIT_VECTOR_GET(&idx2head->deltas,i) : NULL;
w2i = wd2idx ? GIT_VECTOR_GET(&wd2idx->deltas,j) : NULL; w2i = wd2idx ? GIT_VECTOR_GET(&wd2idx->deltas,j) : NULL;
cmp = !w2i ? -1 : !i2h ? 1 : cmp = !w2i ? -1 : !i2h ? 1 :
STRCMP_CASESELECT(icase, i2h->old_file.path, w2i->old_file.path); strcomp(i2h->old_file.path, w2i->old_file.path);
if (cmp < 0) { if (cmp < 0) {
if (cb(i2h, NULL, payload)) if (cb(i2h, NULL, payload))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment