Stefan Beller <sbeller@xxxxxxxxxx> writes: > Reuse the compare function from the hash map instead of calling the > compare function directly. Then we pick the correct compare function > when told to compare ignoring white space. > > Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> > --- > diff.c | 3 +-- > t/t4015-diff-whitespace.sh | 65 ++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 66 insertions(+), 2 deletions(-) > > diff --git a/diff.c b/diff.c > index 1d93e98e3a..4bcf938e3a 100644 > --- a/diff.c > +++ b/diff.c > @@ -903,8 +903,7 @@ static void mark_color_as_moved(struct diff_options *o, > struct moved_entry *p = pmb[i]; > struct moved_entry *pnext = (p && p->next_line) ? > p->next_line : NULL; > - if (pnext && > - !emitted_symbol_cmp(pnext->es, l, o)) { > + if (pnext && !hm->cmpfn(pnext, match, NULL)) { > pmb[i] = p->next_line; > } else { > pmb[i] = NULL; I presume that this makes the use of emitted_symbol_cmp() vs emitted_symbol_cmp_no_ws() consistent with the remainder of the file. Looking at the implementation of get_ws_cleaned_string() that is the workhorse of emitted_symbol_cmp_no_ws(), it seems to be doing wrong things for various "ignore whitespace" options (i.e. there is only one implementation, while "git diff" family takes things like "ignore space change", "ignore all whitespace", etc.), though.