fix off-by-one error in split_ident_line
Commit 4b340cf
split the logic to parse an ident line out of
pretty.c's format_person_part. But in doing so, it
accidentally introduced an off-by-one error that caused it
to think that single-character names were invalid.
This manifested itself as the "%an" format failing to show
anything at all for a single-character name.
Reported-by: Brian Turner <bturner@atlassian.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4b340cfab9
commit
d9955fd60f
2
ident.c
2
ident.c
@ -244,7 +244,7 @@ int split_ident_line(struct ident_split *split, const char *line, int len)
|
||||
if (!split->mail_begin)
|
||||
return status;
|
||||
|
||||
for (cp = split->mail_begin - 2; line < cp; cp--)
|
||||
for (cp = split->mail_begin - 2; line <= cp; cp--)
|
||||
if (!isspace(*cp)) {
|
||||
split->name_end = cp + 1;
|
||||
break;
|
||||
|
@ -282,4 +282,11 @@ test_expect_success 'oneline with empty message' '
|
||||
test $(git rev-list --oneline --graph HEAD | wc -l) -eq 5
|
||||
'
|
||||
|
||||
test_expect_success 'single-character name is parsed correctly' '
|
||||
git commit --author="a <a@example.com>" --allow-empty -m foo &&
|
||||
echo "a <a@example.com>" >expect &&
|
||||
git log -1 --format="%an <%ae>" >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user