Skip to content

Commit d9955fd

Browse files
peffgitster
authored andcommitted
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 <[email protected]> Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 4b340cf commit d9955fd

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

ident.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ int split_ident_line(struct ident_split *split, const char *line, int len)
244244
if (!split->mail_begin)
245245
return status;
246246

247-
for (cp = split->mail_begin - 2; line < cp; cp--)
247+
for (cp = split->mail_begin - 2; line <= cp; cp--)
248248
if (!isspace(*cp)) {
249249
split->name_end = cp + 1;
250250
break;

t/t6006-rev-list-format.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,4 +282,11 @@ test_expect_success 'oneline with empty message' '
282282
test $(git rev-list --oneline --graph HEAD | wc -l) -eq 5
283283
'
284284

285+
test_expect_success 'single-character name is parsed correctly' '
286+
git commit --author="a <[email protected]>" --allow-empty -m foo &&
287+
echo "a <[email protected]>" >expect &&
288+
git log -1 --format="%an <%ae>" >actual &&
289+
test_cmp expect actual
290+
'
291+
285292
test_done

0 commit comments

Comments
 (0)