pretty.c: format string with truncate respects logOutputEncoding
authorAlexey Shumkin <alex.crezoff@gmail.com>
Wed, 21 May 2014 13:20:07 +0000 (17:20 +0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 May 2014 18:13:30 +0000 (11:13 -0700)
commit7d509878b845a2a895cc880b833a016a06199981
tree5e40401d011a00f8e5ebf676213d80e5a492c5db
parentd928d81051fc8475c7845526b255cb8e80b39f12
pretty.c: format string with truncate respects logOutputEncoding

Pretty format string %<(N,[ml]trunc)>%s truncates subject to a given
length with an appropriate padding. This works for non-ASCII texts when
i18n.logOutputEncoding is UTF-8 only (independently of a printed commit
message encoding) but does not work when i18n.logOutputEncoding is NOT
UTF-8.

In 7e77df3 (pretty: two phase conversion for non utf-8 commits, 2013-04-19)
'format_commit_item' function assumes commit message to be in UTF-8.
And that was so until ecaee80 (pretty: --format output should honor
logOutputEncoding, 2013-06-26) where conversion to logOutputEncoding was
added before calling 'format_commit_message'.

Correct this by converting a commit message to UTF-8 first (as it
assumed in 7e77df3 (pretty: two phase conversion for non utf-8 commits,
2013-04-19)). Only after that convert a commit message to an actual
logOutputEncoding.

Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
Reviewed-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pretty.c
t/t4205-log-pretty-formats.sh
t/t6006-rev-list-format.sh