[PATCH 1/3] ws.c: add a helper to format comma separated messages
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:51:20
Subsystem:
the rest · Maintainer:
Linus Torvalds
We can find more than one class of whitespace errors on a single line, and we concatenate a message per class in a strbuf, separated with a colon. Use a small helper function to make the code easier to read. Signed-off-by: Junio C Hamano <redacted> --- * Just a trivial clean-up before waging a "War on nbsp" ws.c | 43 +++++++++++++++++++------------------------ 1 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/ws.c b/ws.c
index 9fb9b14..3058be4 100644
--- a/ws.c
+++ b/ws.c@@ -116,36 +116,31 @@ unsigned whitespace_rule(const char *pathname) } } +static void add_err_item(struct strbuf *err, const char *message) +{ + if (err->len) + strbuf_addstr(err, ", "); + strbuf_addstr(err, message); +} + /* The returned string should be freed by the caller. */ char *whitespace_error_string(unsigned ws) { struct strbuf err = STRBUF_INIT; - if ((ws & WS_TRAILING_SPACE) == WS_TRAILING_SPACE) - strbuf_addstr(&err, "trailing whitespace"); - else { + if ((ws & WS_TRAILING_SPACE) == WS_TRAILING_SPACE) { + add_err_item(&err, "trailing whitespace"); + } else { if (ws & WS_BLANK_AT_EOL) - strbuf_addstr(&err, "trailing whitespace"); - if (ws & WS_BLANK_AT_EOF) { - if (err.len) - strbuf_addstr(&err, ", "); - strbuf_addstr(&err, "new blank line at EOF"); - } - } - if (ws & WS_SPACE_BEFORE_TAB) { - if (err.len) - strbuf_addstr(&err, ", "); - strbuf_addstr(&err, "space before tab in indent"); - } - if (ws & WS_INDENT_WITH_NON_TAB) { - if (err.len) - strbuf_addstr(&err, ", "); - strbuf_addstr(&err, "indent with spaces"); - } - if (ws & WS_TAB_IN_INDENT) { - if (err.len) - strbuf_addstr(&err, ", "); - strbuf_addstr(&err, "tab in indent"); + add_err_item(&err, "trailing whitespace"); + if (ws & WS_BLANK_AT_EOF) + add_err_item(&err, "new blank line at EOF"); } + if (ws & WS_SPACE_BEFORE_TAB) + add_err_item(&err, "space before tab in indent"); + if (ws & WS_INDENT_WITH_NON_TAB) + add_err_item(&err, "indent with spaces"); + if (ws & WS_TAB_IN_INDENT) + add_err_item(&err, "tab in indent"); return strbuf_detach(&err, NULL); }
--
1.7.5.3.503.g893a4