Unify whitespace checking
authorWincent Colaiuta <win@wincent.com>
Thu, 13 Dec 2007 13:32:29 +0000 (14:32 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 14 Dec 2007 07:43:58 +0000 (23:43 -0800)
commitc1795bb08aae9fb7e4dc1a01e292b85e59b1c640
treeac058e760489ae65eb89daa910cd721492c7e64a
parentda31b358fb39b32622c14343ffe157a765f3948b
Unify whitespace checking

This commit unifies three separate places where whitespace checking was
performed:

 - the whitespace checking previously done in builtin-apply.c is
extracted into a function in ws.c

 - the equivalent logic in "git diff" is removed

 - the emit_line_with_ws() function is also removed because that also
rechecks the whitespace, and its functionality is rolled into ws.c

The new function is called check_and_emit_line() and it does two things:
checks a line for whitespace errors and optionally emits it. The checking
is based on lines of content rather than patch lines (in other words, the
caller must strip the leading "+" or "-"); this was suggested by Junio on
the mailing list to allow for a future extension to "git show" to display
whitespace errors in blobs.

At the same time we teach it to report all classes of whitespace errors
found for a given line rather than reporting only the first found error.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-apply.c
cache.h
diff.c
t/t4015-diff-whitespace.sh
ws.c