summaryrefslogtreecommitdiff
path: root/ws.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2007-12-16 11:31:39 -0500
committerJunio C Hamano <gitster@pobox.com>2007-12-16 13:07:41 -0800
commit954ecd435389916643efeb5b1ade82250170c071 (patch)
tree976a40fe731ac7496bc4d4eaac79304385722753 /ws.c
parent1020999a981e0dadedc475c41e33e20fd7832019 (diff)
downloadgit-954ecd435389916643efeb5b1ade82250170c071.tar.gz
whitespace: minor cleanup
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>
Diffstat (limited to 'ws.c')
-rw-r--r--ws.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/ws.c b/ws.c
index 716587498c..1b32e45204 100644
--- 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);
}