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 <sbel...@google.com>
---
 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;
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index ae8c686f3c..c3b697411a 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -1317,6 +1317,71 @@ test_expect_success 'no effect from --color-moved with 
--word-diff' '
        test_cmp expect actual
 '
 
+test_expect_success 'move detection ignoring whitespace ' '
+       git reset --hard &&
+       cat <<\EOF >lines.txt &&
+line 1
+line 2
+line 3
+line 4
+line 5
+line 6
+line 7
+EOF
+       git add lines.txt &&
+       git commit -m "add poetry" &&
+       cat <<\EOF >lines.txt &&
+       line 5
+       line 6
+       line 7
+line 1
+line 2
+line 3
+line 4
+EOF
+       test_config color.diff.oldMoved "magenta" &&
+       test_config color.diff.newMoved "cyan" &&
+       git diff HEAD --no-renames --color-moved| test_decode_color >actual &&
+       cat <<-\EOF >expected &&
+       <BOLD>diff --git a/lines.txt b/lines.txt<RESET>
+       <BOLD>index 734156d..eb89ead 100644<RESET>
+       <BOLD>--- a/lines.txt<RESET>
+       <BOLD>+++ b/lines.txt<RESET>
+       <CYAN>@@ -1,7 +1,7 @@<RESET>
+       <GREEN>+<RESET> <GREEN>line 5<RESET>
+       <GREEN>+<RESET> <GREEN>line 6<RESET>
+       <GREEN>+<RESET> <GREEN>line 7<RESET>
+        line 1<RESET>
+        line 2<RESET>
+        line 3<RESET>
+        line 4<RESET>
+       <RED>-line 5<RESET>
+       <RED>-line 6<RESET>
+       <RED>-line 7<RESET>
+       EOF
+       test_cmp expected actual &&
+
+       git diff HEAD --no-renames -w --color-moved| test_decode_color >actual 
&&
+       cat <<-\EOF >expected &&
+       <BOLD>diff --git a/lines.txt b/lines.txt<RESET>
+       <BOLD>index 734156d..eb89ead 100644<RESET>
+       <BOLD>--- a/lines.txt<RESET>
+       <BOLD>+++ b/lines.txt<RESET>
+       <CYAN>@@ -1,7 +1,7 @@<RESET>
+       <CYAN>+<RESET>  <CYAN>line 5<RESET>
+       <CYAN>+<RESET>  <CYAN>line 6<RESET>
+       <CYAN>+<RESET>  <CYAN>line 7<RESET>
+        line 1<RESET>
+        line 2<RESET>
+        line 3<RESET>
+        line 4<RESET>
+       <MAGENTA>-line 5<RESET>
+       <MAGENTA>-line 6<RESET>
+       <MAGENTA>-line 7<RESET>
+       EOF
+       test_cmp expected actual
+'
+
 test_expect_success 'move detection with submodules' '
        test_create_repo bananas &&
        echo ripe >bananas/recipe &&
-- 
2.13.0.31.g9b732c453e

Reply via email to