]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/git.pm
po plugin: respect documented convention to store pagestate
[git.ikiwiki.info.git] / IkiWiki / Plugin / git.pm
index 08ee4cb63c07a5cc572e33f9f1fac262f4d58cd9..14b0ab2851dc03b561e4c86e9e0c5d660a8ca3a2 100644 (file)
@@ -308,13 +308,16 @@ sub parse_diff_tree ($@) { #{{{
                        my $sha1_to = shift(@tmp);
                        my $status = shift(@tmp);
 
                        my $sha1_to = shift(@tmp);
                        my $status = shift(@tmp);
 
+                       # git does not output utf-8 filenames, but instead
+                       # double-quotes them with the utf-8 characters
+                       # escaped as \nnn\nnn.
                        if ($file =~ m/^"(.*)"$/) {
                                ($file=$1) =~ s/\\([0-7]{1,3})/chr(oct($1))/eg;
                        }
                        $file =~ s/^\Q$prefix\E//;
                        if (length $file) {
                                push @{ $ci{'details'} }, {
                        if ($file =~ m/^"(.*)"$/) {
                                ($file=$1) =~ s/\\([0-7]{1,3})/chr(oct($1))/eg;
                        }
                        $file =~ s/^\Q$prefix\E//;
                        if (length $file) {
                                push @{ $ci{'details'} }, {
-                                       'file'      => decode_utf8($file),
+                                       'file'      => decode("utf8", $file),
                                        'sha1_from' => $sha1_from[0],
                                        'sha1_to'   => $sha1_to,
                                };
                                        'sha1_from' => $sha1_from[0],
                                        'sha1_to'   => $sha1_to,
                                };