This makes empty bodies truly empty, and fills in the default UTF-8 encoding for an empty encoding. Signed-off-by: Jeff King <peff@xxxxxxxx> --- I think this covers everything that might happen in common practice. commit.c | 6 ++++-- t/t6006-rev-list-format.sh | 16 ++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/commit.c b/commit.c index 754d1b8..e4f1db5 100644 --- a/commit.c +++ b/commit.c @@ -895,8 +895,10 @@ static long format_commit_message(const struct commit *commit, xstrndup(msg + i + 9, eol - i - 9); i = eol; } - if (msg[i]) - table[IBODY].value = xstrdup(msg + i); + interp_set_entry(table, IBODY, msg[i] ? msg + i : ""); + + if (!table[IENCODING].value) + interp_set_entry(table, IENCODING, "UTF-8"); for (i = 0; i < ARRAY_SIZE(table); i++) if (!table[i].value) interp_set_entry(table, i, "<unknown>"); diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh index aab17fa..03ef6e0 100755 --- a/t/t6006-rev-list-format.sh +++ b/t/t6006-rev-list-format.sh @@ -79,9 +79,9 @@ EOF test_format encoding %e <<'EOF' commit 131a310eb913d107dd3c09a65d1651175898735d -<unknown> +UTF-8 commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873 -<unknown> +UTF-8 EOF test_format subject %s <<'EOF' @@ -93,9 +93,9 @@ EOF test_format body %b <<'EOF' commit 131a310eb913d107dd3c09a65d1651175898735d -<unknown> + commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873 -<unknown> + EOF test_format colors %Credfoo%Cgreenbar%Cbluebaz%Cresetxyzzy <<'EOF' @@ -121,9 +121,9 @@ test_format complex-encoding %e <<'EOF' commit f58db70b055c5718631e5c61528b28b12090cdea iso8859-1 commit 131a310eb913d107dd3c09a65d1651175898735d -<unknown> +UTF-8 commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873 -<unknown> +UTF-8 EOF test_format complex-subject %s <<'EOF' @@ -142,9 +142,9 @@ and it will be encoded in iso8859-1. We should therefore include an iso8859 character: ¡bueno! commit 131a310eb913d107dd3c09a65d1651175898735d -<unknown> + commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873 -<unknown> + EOF test_done -- 1.5.1.rc2.637.ge090-dirty - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html