gitweb: apply fallback encoding before highlight
authorShin Kojima <shin@kojima.org>
Tue, 3 May 2016 13:00:51 +0000 (22:00 +0900)
committerJunio C Hamano <gitster@pobox.com>
Tue, 3 May 2016 18:32:31 +0000 (11:32 -0700)
commit029f37217c01fc6437357a30cd1b084b03ca872b
treea9216c3b89921eedf841ffed1b5eed26184969a5
parent765428699a5381f113d19974720bc91b5bfeaf1d
gitweb: apply fallback encoding before highlight

Some multi-byte character encodings (such as Shift_JIS and GBK) have
characters whose final bytes is an ASCII '\' (0x5c), and they
will be displayed as funny-characters even if $fallback_encoding is
correct.  This is because `highlight` command always expects UTF-8
encoded strings from STDIN.

    $ echo 'my $v = "申";' | highlight --syntax perl | w3m -T text/html -dump
    my $v = "申";

    $ echo 'my $v = "申";' | iconv -f UTF-8 -t Shift_JIS | highlight \
        --syntax perl | iconv -f Shift_JIS -t UTF-8 | w3m -T text/html -dump

    iconv: (stdin):9:135: cannot convert
    my $v = "

This patch prepare git blob objects to be encoded into UTF-8 before
highlighting in the manner of `to_utf8` subroutine.

Signed-off-by: Shin Kojima <shin@kojima.org>
Reviewed-by: Jakub Narębski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl