git: Manually decode git output from utf-8, avoids warning messages on invalidly encoded output.

master
Joey Hess 2009-03-09 14:18:55 -04:00
parent 7bd0d53644
commit 4ac0b29531
2 changed files with 9 additions and 5 deletions

View File

@ -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, $_;
}

2
debian/changelog vendored
View File

@ -1,6 +1,8 @@
ikiwiki (3.08) UNRELEASED; urgency=low
* git: Fix utf-8 encoding of author names.
* git: Manually decode git output from utf-8, avoids
warning messages on invalidly encoded output.
-- Joey Hess <joeyh@debian.org> Mon, 09 Mar 2009 14:00:21 -0400