diff options
author | SZEDER Gábor <szeder@ira.uka.de> | 2009-07-22 19:24:38 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-07-22 18:54:55 -0700 |
commit | 735c674416b87505400fcf738fd3a38b52f0eccb (patch) | |
tree | 1ee8a2925ddae3ffb3bf946cae7725b86ae0e5d8 | |
parent | b810cbbde9232cbe9a3841edccc5b606bbd3a82e (diff) | |
download | git-735c674416b87505400fcf738fd3a38b52f0eccb.tar.gz git-735c674416b87505400fcf738fd3a38b52f0eccb.tar.xz |
Trailing whitespace and no newline fix
If a patch adds a new line to the end of a file and this line ends with
one trailing whitespace character and has no newline, then
'--whitespace=fix' currently does not remove that trailing whitespace.
This patch fixes this by removing the check for trailing whitespace at
the end of the line at a hardcoded offset which does not take the
eventual absence of newline into account.
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | t/t4124-apply-ws-rule.sh | 18 | ||||
-rw-r--r-- | ws.c | 5 |
2 files changed, 20 insertions, 3 deletions
diff --git a/t/t4124-apply-ws-rule.sh b/t/t4124-apply-ws-rule.sh index f83322e51..5698a9a73 100755 --- a/t/t4124-apply-ws-rule.sh +++ b/t/t4124-apply-ws-rule.sh @@ -148,4 +148,22 @@ do done done +create_patch () { + sed -e "s/_/ /" <<-\EOF + diff --git a/target b/target + index e69de29..8bd6648 100644 + --- a/target + +++ b/target + @@ -0,0 +1 @@ + +A line with trailing whitespace and no newline_ + \ No newline at end of file + EOF +} + +test_expect_success 'trailing whitespace & no newline at the end of file' ' + >target && + create_patch | git apply --whitespace=fix - && + grep "newline$" target +' + test_done @@ -261,9 +261,8 @@ int ws_fix_copy(char *dst, const char *src, int len, unsigned ws_rule, int *erro /* * Strip trailing whitespace */ - if ((ws_rule & WS_TRAILING_SPACE) && - (2 <= len && isspace(src[len-2]))) { - if (src[len - 1] == '\n') { + if (ws_rule & WS_TRAILING_SPACE) { + if (1 < len && src[len - 1] == '\n') { add_nl_to_tail = 1; len--; if (1 < len && src[len - 1] == '\r') { |