提交 542e165c 编写于 作者: J Junio C Hamano

Fix "--pretty=format:" for parent related items.

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: NJunio C Hamano <junkio@cox.net>
上级 9c880b3e
...@@ -849,19 +849,23 @@ static long format_commit_message(const struct commit *commit, ...@@ -849,19 +849,23 @@ static long format_commit_message(const struct commit *commit,
interp_set_entry(table, ITREE_ABBREV, interp_set_entry(table, ITREE_ABBREV,
find_unique_abbrev(commit->tree->object.sha1, find_unique_abbrev(commit->tree->object.sha1,
DEFAULT_ABBREV)); DEFAULT_ABBREV));
parents[1] = 0;
for (i = 0, p = commit->parents; for (i = 0, p = commit->parents;
p && i < sizeof(parents) - 1; p && i < sizeof(parents) - 1;
p = p->next) 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)); 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; for (i = 0, p = commit->parents;
p && i < sizeof(parents) - 1; p && i < sizeof(parents) - 1;
p = p->next) 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, find_unique_abbrev(p->item->object.sha1,
DEFAULT_ABBREV)); 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++) { for (i = 0, state = HEADER; msg[i] && state < BODY; i++) {
int eol; int eol;
......
...@@ -42,8 +42,8 @@ commit 131a310eb913d107dd3c09a65d1651175898735d ...@@ -42,8 +42,8 @@ commit 131a310eb913d107dd3c09a65d1651175898735d
86c75cfd708a0e5868dc876ed5b8bb66c80b4873 86c75cfd708a0e5868dc876ed5b8bb66c80b4873
86c75cf 86c75cf
commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873 commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873
86c75cf
86c75cf
EOF EOF
# we don't test relative here # we don't test relative here
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册