From 4ac0b2953131d7a53562ab8918c8e5a49952d8ac Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 9 Mar 2009 14:18:55 -0400 Subject: git: Manually decode git output from utf-8, avoids warning messages on invalidly encoded output. --- IkiWiki/Plugin/git.pm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm index 12f3a74cb..b386ab71b 100644 --- a/IkiWiki/Plugin/git.pm +++ b/IkiWiki/Plugin/git.pm @@ -136,14 +136,16 @@ sub safe_git (&@) { } # In parent. + # git output is probably utf-8 encoded, but may contain + # other encodings or invalidly encoded stuff. So do not rely + # on the normal utf-8 IO layer, decode it by hand. + binmode($OUT); + my @lines; while (<$OUT>) { + $_=decode_utf8($_, 0); + chomp; - - # check for invalid utf-8, and toss it back to avoid crashes - if (! utf8::valid($_)) { - $_=encode_utf8($_); - } push @lines, $_; } -- cgit v1.2.3