summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@shadowen.org>2008-03-05 14:24:10 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-03-05 21:28:39 (GMT)
commitc1ce83a5b64618a8a4ac313da82c156558cbe259 (patch)
tree7f3a23f2e21296857f5ed13f16c20fed8d0c6f1f
parent52dce39762fbec75b2d561e5dedb25b8e51f83eb (diff)
downloadgit-c1ce83a5b64618a8a4ac313da82c156558cbe259.zip
git-c1ce83a5b64618a8a4ac313da82c156558cbe259.tar.gz
git-c1ce83a5b64618a8a4ac313da82c156558cbe259.tar.bz2
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 fa8bc7d..f08095b 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))