Browse Source

mailinfo: with -b, keep space after [foo]

The logic for the -b mode, where [PATCH] is dropped but [foo] is not,
silently ate all spaces after the ].

Fix this by keeping the next isspace() character, if there is any.
Being more thorough is pointless, as the later cleanup_space() call
will normalize any sequence of whitespace to a single ' '.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Thomas Rast 13 years ago committed by Junio C Hamano
parent
commit
ee2d1cb402
  1. 11
      builtin/mailinfo.c
  2. 2
      t/t4150-am.sh

11
builtin/mailinfo.c

@ -250,8 +250,17 @@ static void cleanup_subject(struct strbuf *subject) @@ -250,8 +250,17 @@ static void cleanup_subject(struct strbuf *subject)
(7 <= remove &&
memmem(subject->buf + at, remove, "PATCH", 5)))
strbuf_remove(subject, at, remove);
else
else {
at += remove;
/*
* If the input had a space after the ], keep
* it. We don't bother with finding the end of
* the space, since we later normalize it
* anyway.
*/
if (isspace(subject->buf[at]))
at += 1;
}
continue;
}
break;

2
t/t4150-am.sh

@ -244,7 +244,7 @@ test_expect_success 'am --keep really keeps the subject' ' @@ -244,7 +244,7 @@ test_expect_success 'am --keep really keeps the subject' '
grep "Re: Re: Re: \[PATCH 1/5 v2\] \[foo\] third" actual
'

test_expect_failure 'am --keep-non-patch really keeps the non-patch part' '
test_expect_success 'am --keep-non-patch really keeps the non-patch part' '
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout HEAD^ &&

Loading…
Cancel
Save