aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2017-07-23 15:56:24 +0100
committerSimon McVittie <smcv@debian.org>2017-07-23 16:04:57 +0100
commit3789b385b210bd8fdfa755a0ca435c11fa53290e (patch)
treeaeeacb6d80fc3dbf2a965c581791ae604c286ae7
parentae19c4819cfaa050bce846041120707e5f43e027 (diff)
downloadikiwiki-3789b385b210bd8fdfa755a0ca435c11fa53290e.tar
ikiwiki-3789b385b210bd8fdfa755a0ca435c11fa53290e.tar.gz
core: Don't decode the result of strftime if already tagged as UTF-8
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)
-rw-r--r--IkiWiki.pm12
-rw-r--r--debian/changelog5
2 files changed, 14 insertions, 3 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 6aa49229a..1eda16da1 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -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 ($) {
diff --git a/debian/changelog b/debian/changelog
index 97ab8b75f..9c114bc3a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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