Code

whitespace: fix off-by-one error in non-space-in-indent checking
authorJ. Bruce Fields <bfields@citi.umich.edu>
Sun, 16 Dec 2007 16:31:37 +0000 (11:31 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sun, 16 Dec 2007 21:07:14 +0000 (13:07 -0800)
If there were no tabs, and the last space was at position 7, then
positions 0..7 had spaces, so there were 8 spaces.

Update test to check exactly this case.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4015-diff-whitespace.sh
ws.c

index 9bff8f5e4bae6beb22ba31e8be03a0528e06519e..0f16bca3732f180080cfbeb759544601eac420ef 100755 (executable)
@@ -298,7 +298,7 @@ test_expect_success 'check space before tab in indent (space-before-tab: on)' '
 test_expect_success 'check spaces as indentation (indent-with-non-tab: off)' '
 
        git config core.whitespace "-indent-with-non-tab"
-       echo "                foo ();" > x &&
+       echo "        foo ();" > x &&
        git diff --check
 
 '
@@ -306,7 +306,7 @@ test_expect_success 'check spaces as indentation (indent-with-non-tab: off)' '
 test_expect_success 'check spaces as indentation (indent-with-non-tab: on)' '
 
        git config core.whitespace "indent-with-non-tab" &&
-       echo "                foo ();" > x &&
+       echo "        foo ();" > x &&
        ! git diff --check
 
 '
diff --git a/ws.c b/ws.c
index 46cbdd63793aad534d8d8b640df7fd2e86c7d915..5ebd1095a2af1dfc75bf79250bb775ac39580a2e 100644 (file)
--- a/ws.c
+++ b/ws.c
@@ -159,7 +159,7 @@ unsigned check_and_emit_line(const char *line, int len, unsigned ws_rule,
        }
 
        /* Check for indent using non-tab. */
-       if ((ws_rule & WS_INDENT_WITH_NON_TAB) && leading_space >= 8)
+       if ((ws_rule & WS_INDENT_WITH_NON_TAB) && leading_space >= 7)
                result |= WS_INDENT_WITH_NON_TAB;
 
        if (stream) {