diff options
-rw-r--r-- | pretty.c | 7 | ||||
-rwxr-xr-x | t/t4205-log-pretty-formats.sh | 8 | ||||
-rwxr-xr-x | t/t6006-rev-list-format.sh | 6 |
3 files changed, 13 insertions, 8 deletions
@@ -1506,13 +1506,18 @@ void format_commit_message(const struct commit *commit, context.commit = commit; context.pretty_ctx = pretty_ctx; context.wrap_start = sb->len; + /* + * convert a commit message to UTF-8 first + * as far as 'format_commit_item' assumes it in UTF-8 + */ context.message = logmsg_reencode(commit, &context.commit_encoding, - output_enc); + utf8); strbuf_expand(sb, format, format_commit_item, &context); rewrap_message_tail(sb, &context, 0, 0, 0); + /* then convert a commit message to an actual output encoding */ if (output_enc) { if (same_encoding(utf8, output_enc)) output_enc = NULL; diff --git a/t/t4205-log-pretty-formats.sh b/t/t4205-log-pretty-formats.sh index 74babced70..c84ec9ae61 100755 --- a/t/t4205-log-pretty-formats.sh +++ b/t/t4205-log-pretty-formats.sh @@ -220,7 +220,7 @@ EOF test_cmp expected actual ' -test_expect_failure 'left alignment formatting with trunc. i18n.logOutputEncoding' ' +test_expect_success 'left alignment formatting with trunc. i18n.logOutputEncoding' ' git -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(10,trunc)%s" >actual && qz_to_tab_space <<EOF | iconv -f utf-8 -t $test_encoding >expected && message .. @@ -242,7 +242,7 @@ EOF test_cmp expected actual ' -test_expect_failure 'left alignment formatting with ltrunc. i18n.logOutputEncoding' ' +test_expect_success 'left alignment formatting with ltrunc. i18n.logOutputEncoding' ' git -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(10,ltrunc)%s" >actual && qz_to_tab_space <<EOF | iconv -f utf-8 -t $test_encoding >expected && ..sage two @@ -264,7 +264,7 @@ EOF test_cmp expected actual ' -test_expect_failure 'left alignment formatting with mtrunc. i18n.logOutputEncoding' ' +test_expect_success 'left alignment formatting with mtrunc. i18n.logOutputEncoding' ' git -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(10,mtrunc)%s" >actual && qz_to_tab_space <<EOF | iconv -f utf-8 -t $test_encoding >expected && mess.. two @@ -420,7 +420,7 @@ initial... A U Thor EOF test_cmp expected actual ' -test_expect_failure 'left/right alignment formatting with stealing. i18n.logOutputEncoding' ' +test_expect_success 'left/right alignment formatting with stealing. i18n.logOutputEncoding' ' git -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(10,trunc)%s%>>(10,ltrunc)% an" >actual && cat <<EOF | iconv -f utf-8 -t $test_encoding >expected && short long long long diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh index 680b960152..c277db64f7 100755 --- a/t/t6006-rev-list-format.sh +++ b/t/t6006-rev-list-format.sh @@ -256,7 +256,7 @@ commit $head1 $added_iso88591 EOF -test_format complex-subject-trunc "%<($truncate_count,trunc)%s" failure <<EOF +test_format complex-subject-trunc "%<($truncate_count,trunc)%s" <<EOF commit $head3 Test printing of c.. commit $head2 @@ -265,7 +265,7 @@ commit $head1 added (hinzugef${added_utf8_part_iso88591}gt.. EOF -test_format complex-subject-mtrunc "%<($truncate_count,mtrunc)%s" failure <<EOF +test_format complex-subject-mtrunc "%<($truncate_count,mtrunc)%s" <<EOF commit $head3 Test prin..ex bodies commit $head2 @@ -274,7 +274,7 @@ commit $head1 added (hi..f${added_utf8_part_iso88591}gt) foo EOF -test_format complex-subject-ltrunc "%<($truncate_count,ltrunc)%s" failure <<EOF +test_format complex-subject-ltrunc "%<($truncate_count,ltrunc)%s" <<EOF commit $head3 .. of complex bodies commit $head2 |