]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
core: Don't decode the result of strftime if already tagged as UTF-8
authorSimon McVittie <smcv@debian.org>
Sun, 23 Jul 2017 14:56:24 +0000 (15:56 +0100)
committerSimon McVittie <smcv@debian.org>
Sun, 23 Jul 2017 15:04:57 +0000 (16:04 +0100)
It wasn't in old Perls, but might be in Perl >= 5.21.1 due to commit
https://perl5.git.perl.org/perl.git/commit/9717af6 (Closes: #869240)

IkiWiki.pm
debian/changelog

index 6aa49229ace4ba23c68267ca942786da445526ac..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 ($) {
index 97ab8b75fdd681ea283169b51a8da4e55fc5749c..9c114bc3a78bd67e68191249618aa36c39e5dfd2 100644 (file)
@@ -1,9 +1,14 @@
 ikiwiki (3.20170623) UNRELEASED; urgency=medium
 
+  [ Joey Hess ]
   * htmlscrubber: Add support for the video tag's loop and muted
     attributes. Those were not in the original html5 spec, but have been
     added in the whatwg html living standard and have wide browser support.
 
+  [ Simon McVittie ]
+  * core: Don't decode the result of strftime if it is already tagged as
+    UTF-8, as it might be since Perl >= 5.21.1. (Closes: #869240)
+
  -- Joey Hess <id@joeyh.name>  Tue, 11 Jul 2017 15:48:39 -0400
 
 ikiwiki (3.20170622) unstable; urgency=medium