aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@shadowen.org>2008-03-05 14:24:10 +0000
committerJunio C Hamano <gitster@pobox.com>2008-03-05 13:28:39 -0800
commitc1ce83a5b64618a8a4ac313da82c156558cbe259 (patch)
tree7f3a23f2e21296857f5ed13f16c20fed8d0c6f1f
parent52dce39762fbec75b2d561e5dedb25b8e51f83eb (diff)
downloadgit-c1ce83a5b64618a8a4ac313da82c156558cbe259.tar.gz
git-c1ce83a5b64618a8a4ac313da82c156558cbe259.tar.xz
shortlog: take the first populated line of the description
Way back the perl version of shortlog would take the first populated line of the commit body. The builtin version mearly takes the first line. This leads to empty shortlog entries when there is some viable text in the commit. Reinstate this behaviour igoring all lines with nothing but whitespace. This is often useful when dealing with commits imported from foreign SCMs that do not tidy up the log message of useless blank lines at the beginning. Signed-off-by: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-shortlog.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/builtin-shortlog.c b/builtin-shortlog.c
index fa8bc7d02..f08095bc9 100644
--- a/builtin-shortlog.c
+++ b/builtin-shortlog.c
@@ -74,11 +74,12 @@ static void insert_one_record(struct path_list *list,
else
free(buffer);
+ /* Skip any leading whitespace, including any blank lines. */
+ while (*oneline && isspace(*oneline))
+ oneline++;
eol = strchr(oneline, '\n');
if (!eol)
eol = oneline + strlen(oneline);
- while (*oneline && isspace(*oneline) && *oneline != '\n')
- oneline++;
if (!prefixcmp(oneline, "[PATCH")) {
char *eob = strchr(oneline, ']');
if (eob && (!eol || eob < eol))