Commit 238e8149724ea462153cc082385f60dccc2a3cf9

Edward Thomson 2014-01-22T14:41:04

Summarize empty messages

diff --git a/src/commit.c b/src/commit.c
index f0e304a..e437cff 100644
--- a/src/commit.c
+++ b/src/commit.c
@@ -311,7 +311,10 @@ const char *git_commit_summary(git_commit *commit)
 				git_buf_putc(&summary, *msg);
 		}
 
-		commit->summary = git_buf_detach(&summary);
+		if (summary.asize == 0)
+			commit->summary = git__strdup("");
+		else
+			commit->summary = git_buf_detach(&summary);
 	}
 
 	return commit->summary;
diff --git a/tests/commit/commit.c b/tests/commit/commit.c
index 4af9190..38397d2 100644
--- a/tests/commit/commit.c
+++ b/tests/commit/commit.c
@@ -72,4 +72,8 @@ void test_commit_commit__summary(void)
 	assert_commit_summary("Trailing spaces  are removed", "Trailing spaces  are removed  ");
 	assert_commit_summary("Trailing tabs", "Trailing tabs\t\n\nare removed");
 	assert_commit_summary("Trailing spaces", "Trailing spaces \n\nare removed");
+	assert_commit_summary("", "");
+	assert_commit_summary("", " ");
+	assert_commit_summary("", "\n");
+	assert_commit_summary("", "\n \n");
 }