whitespace: minor cleanup
authorJ. Bruce Fields <bfields@citi.umich.edu>
Sun, 16 Dec 2007 16:31:39 +0000 (11:31 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sun, 16 Dec 2007 21:07:41 +0000 (13:07 -0800)
The variable leading_space is initially used to represent the index of
the last space seen before a non-space.  Then later it represents the
index of the first non-indent character.

It will prove simpler to replace it by a variable representing a number
of bytes.  Eventually it will represent the number of bytes written so
far (in the stream != NULL case).

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

diff --git a/ws.c b/ws.c
index 716587498c14843aef1476a9c6b11e403466f992..1b32e452044d96e5a74e458fa4b1a884f067ad97 100644 (file)
--- a/ws.c
+++ b/ws.c
@@ -121,7 +121,7 @@ unsigned check_and_emit_line(const char *line, int len, unsigned ws_rule,
                             const char *reset, const char *ws)
 {
        unsigned result = 0;
-       int leading_space = -1;
+       int written = 0;
        int trailing_whitespace = -1;
        int trailing_newline = 0;
        int i;
@@ -147,18 +147,18 @@ unsigned check_and_emit_line(const char *line, int len, unsigned ws_rule,
        /* Check for space before tab in initial indent. */
        for (i = 0; i < len; i++) {
                if (line[i] == ' ') {
-                       leading_space = i;
+                       written = i + 1;
                        continue;
                }
                if (line[i] != '\t')
                        break;
-               if ((ws_rule & WS_SPACE_BEFORE_TAB) && (leading_space != -1))
+               if ((ws_rule & WS_SPACE_BEFORE_TAB) && (written != 0))
                        result |= WS_SPACE_BEFORE_TAB;
                break;
        }
 
        /* Check for indent using non-tab. */
-       if ((ws_rule & WS_INDENT_WITH_NON_TAB) && leading_space >= 7)
+       if ((ws_rule & WS_INDENT_WITH_NON_TAB) && written >= 8)
                result |= WS_INDENT_WITH_NON_TAB;
 
        if (stream) {
@@ -166,23 +166,20 @@ unsigned check_and_emit_line(const char *line, int len, unsigned ws_rule,
                if ((result & WS_SPACE_BEFORE_TAB) ||
                    (result & WS_INDENT_WITH_NON_TAB)) {
                        fputs(ws, stream);
-                       fwrite(line, leading_space + 1, 1, stream);
+                       fwrite(line, written, 1, stream);
                        fputs(reset, stream);
-                       leading_space++;
                }
-               else
-                       leading_space = 0;
 
-               /* Now the rest of the line starts at leading_space.
+               /* Now the rest of the line starts at written.
                 * The non-highlighted part ends at trailing_whitespace. */
                if (trailing_whitespace == -1)
                        trailing_whitespace = len;
 
                /* Emit non-highlighted (middle) segment. */
-               if (trailing_whitespace - leading_space > 0) {
+               if (trailing_whitespace - written > 0) {
                        fputs(set, stream);
-                       fwrite(line + leading_space,
-                           trailing_whitespace - leading_space, 1, stream);
+                       fwrite(line + written,
+                           trailing_whitespace - written, 1, stream);
                        fputs(reset, stream);
                }