* maint:
  Fix severe breakage in "git-apply --whitespace=fix"
This commit is contained in:
Junio C Hamano 2009-07-25 01:31:53 -07:00
Родитель b3601a6338 422a82f213
Коммит 8f5e3ca7d1
2 изменённых файлов: 9 добавлений и 5 удалений

Просмотреть файл

@ -154,7 +154,9 @@ create_patch () {
index e69de29..8bd6648 100644
--- a/target
+++ b/target
@@ -0,0 +1 @@
@@ -0,0 +1,3 @@
+An empty line follows
+
+A line with trailing whitespace and no newline_
\ No newline at end of file
EOF
@ -162,8 +164,10 @@ create_patch () {
test_expect_success 'trailing whitespace & no newline at the end of file' '
>target &&
create_patch | git apply --whitespace=fix - &&
grep "newline$" target
create_patch >patch-file &&
git apply --whitespace=fix patch-file &&
grep "newline$" target &&
grep "^$" target
'
test_done

4
ws.c
Просмотреть файл

@ -262,10 +262,10 @@ 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) {
if (1 < len && src[len - 1] == '\n') {
if (0 < len && src[len - 1] == '\n') {
add_nl_to_tail = 1;
len--;
if (1 < len && src[len - 1] == '\r') {
if (0 < len && src[len - 1] == '\r') {
add_cr_to_tail = !!(ws_rule & WS_CR_AT_EOL);
len--;
}