]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki.pm
possible explanation
[git.ikiwiki.info.git] / IkiWiki.pm
index fa71f479107a2388fde2fe00a67bfa2daa4fb3a9..1eda16da18b1d4f8a5876f6d9800be207ffaf52a 100644 (file)
@@ -1293,14 +1293,20 @@ sub formattime ($;$) {
 
 my $strftime_encoding;
 sub strftime_utf8 {
-       # strftime doesn't know about encodings, so make sure
+       # strftime didn't know about encodings in older Perl, so make sure
        # its output is properly treated as utf8.
        # Note that this does not handle utf-8 in the format string.
+       my $result = POSIX::strftime(@_);
+
+       if (Encode::is_utf8($result)) {
+               return $result;
+       }
+
        ($strftime_encoding) = POSIX::setlocale(&POSIX::LC_TIME) =~ m#\.([^@]+)#
                unless defined $strftime_encoding;
        $strftime_encoding
-               ? Encode::decode($strftime_encoding, POSIX::strftime(@_))
-               : POSIX::strftime(@_);
+               ? Encode::decode($strftime_encoding, $result)
+               : $result;
 }
 
 sub date_3339 ($) {
@@ -1826,7 +1832,7 @@ sub check_canchange (@) {
                $file=possibly_foolish_untaint($file);
                if (! defined $file || ! length $file ||
                    file_pruned($file)) {
-                       error(gettext("bad file name %s"), $file);
+                       error(sprintf(gettext("bad file name %s"), $file));
                }
 
                my $type=pagetype($file);