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");
}