[PATCH] Fix "--pretty=format:" for parent related items.
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:02
Subsystem:
the rest · Maintainer:
Linus Torvalds
There are two breakages in the %P/%p interpolation. It appended an excess SP at the end of the list, and it gave uninitialized contents of a buffer on the stack for root commits. This fixes it, while updating the t6006 test which expected the wrong output. Signed-off-by: Junio C Hamano <redacted> --- commit.c | 12 ++++++++---- t/t6006-rev-list-format.sh | 8 ++++---- 2 files changed, 12 insertions(+), 8 deletions(-) mode change 100644 => 100755 t/t6006-rev-list-format.sh
diff --git a/commit.c b/commit.c
index a92958c..33b63c4 100644
--- a/commit.c
+++ b/commit.c@@ -849,19 +849,23 @@ static long format_commit_message(const struct commit *commit, interp_set_entry(table, ITREE_ABBREV, find_unique_abbrev(commit->tree->object.sha1, DEFAULT_ABBREV)); + + parents[1] = 0; for (i = 0, p = commit->parents; p && i < sizeof(parents) - 1; p = p->next) - i += snprintf(parents + i, sizeof(parents) - i - 1, "%s ", + i += snprintf(parents + i, sizeof(parents) - i - 1, " %s", sha1_to_hex(p->item->object.sha1)); - interp_set_entry(table, IPARENTS, parents); + interp_set_entry(table, IPARENTS, parents + 1); + + parents[1] = 0; for (i = 0, p = commit->parents; p && i < sizeof(parents) - 1; p = p->next) - i += snprintf(parents + i, sizeof(parents) - i - 1, "%s ", + i += snprintf(parents + i, sizeof(parents) - i - 1, " %s", find_unique_abbrev(p->item->object.sha1, DEFAULT_ABBREV)); - interp_set_entry(table, IPARENTS_ABBREV, parents); + interp_set_entry(table, IPARENTS_ABBREV, parents + 1); for (i = 0, state = HEADER; msg[i] && state < BODY; i++) { int eol;
diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh
old mode 100644
new mode 100755
index cf096c3..ce9c7dc
--- a/t/t6006-rev-list-format.sh
+++ b/t/t6006-rev-list-format.sh@@ -39,11 +39,11 @@ EOF test_format parents %P%n%p <<'EOF' commit 131a310eb913d107dd3c09a65d1651175898735d -86c75cfd708a0e5868dc876ed5b8bb66c80b4873 -86c75cf +86c75cfd708a0e5868dc876ed5b8bb66c80b4873 +86c75cf commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873 -86c75cf -86c75cf + + EOF # we don't test relative here
--
1.5.1.rc2.632.g054ea8