diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-08-31 14:54:18 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-08-31 14:54:18 -0700 |
commit | e27ddb64568412b75035a05366c9f091153155ed (patch) | |
tree | 091ab1745b6e1e81ac5fba6631c4106d24b966e5 /ident.c | |
parent | b52183179bb0a97ea4d91d1248aca303d8e8f892 (diff) | |
download | git-e27ddb64568412b75035a05366c9f091153155ed.tar.gz |
split_ident_line(): make best effort when parsing author/committer line
Commits made by ancient version of Git allowed committer without
human readable name, like this (00213b17c in the kernel history):
tree 6947dba41f8b0e7fe7bccd41a4840d6de6a27079
parent 352dd1df32e672be4cff71132eb9c06a257872fe
author Petr Baudis <pasky@ucw.cz> 1135223044 +0100
committer <sam@mars.ravnborg.org> 1136151043 +0100
kconfig: Remove support for lxdialog --checklist
...
Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
When fed such a commit, --format='%ci' fails to parse it, and gives
back an empty string. Update the split_ident_line() to be a bit
more lenient when parsing, but make sure the caller that wants to
pick up sane value from its return value does its own validation.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'ident.c')
-rw-r--r-- | ident.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -210,8 +210,10 @@ int split_ident_line(struct ident_split *split, const char *line, int len) split->name_end = cp + 1; break; } - if (!split->name_end) - return status; + if (!split->name_end) { + /* no human readable name */ + split->name_end = split->name_begin; + } for (cp = split->mail_begin; cp < line + len; cp++) if (*cp == '>') { |