@@ -1003,36 +1003,23 @@ static void pmb_advance_or_null(struct diff_options *o,
unsigned flags = o->color_moved_ws_handling & XDF_WHITESPACE_FLAGS;
for (i = 0; i < pmb_nr; i++) {
+ int match;
struct moved_entry *prev = pmb[i].match;
struct moved_entry *cur = (prev && prev->next_line) ?
prev->next_line : NULL;
- if (cur && xdiff_compare_lines(cur->es->line, cur->es->len,
- l->line, l->len,
- flags)) {
- pmb[i].match = cur;
- } else {
- pmb[i].match = NULL;
- }
- }
-}
-static void pmb_advance_or_null_multi_match(struct diff_options *o,
- struct emitted_diff_symbol *l,
- struct moved_block *pmb,
- int pmb_nr)
-{
- int i;
-
- for (i = 0; i < pmb_nr; i++) {
- struct moved_entry *prev = pmb[i].match;
- struct moved_entry *cur = (prev && prev->next_line) ?
- prev->next_line : NULL;
- if (cur && !cmp_in_block_with_wsd(o, cur, l, &pmb[i])) {
- /* Advance to the next line */
+ if (o->color_moved_ws_handling &
+ COLOR_MOVED_WS_ALLOW_INDENTATION_CHANGE)
+ match = cur &&
+ !cmp_in_block_with_wsd(o, cur, l, &pmb[i]);
+ else
+ match = cur &&
+ xdiff_compare_lines(cur->es->line, cur->es->len,
+ l->line, l->len, flags);
+ if (match)
pmb[i].match = cur;
- } else {
+ else
moved_block_clear(&pmb[i]);
- }
}
}
@@ -1153,11 +1140,7 @@ static void mark_color_as_moved(struct diff_options *o,
continue;
}
- if (o->color_moved_ws_handling &
- COLOR_MOVED_WS_ALLOW_INDENTATION_CHANGE)
- pmb_advance_or_null_multi_match(o, l, pmb, pmb_nr);
- else
- pmb_advance_or_null(o, l, pmb, pmb_nr);
+ pmb_advance_or_null(o, l, pmb, pmb_nr);
pmb_nr = shrink_potential_moved_blocks(pmb, pmb_nr);