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)
master
Simon McVittie 2017-07-23 15:56:24 +01:00
parent ae19c4819c
commit 3789b385b2
2 changed files with 14 additions and 3 deletions

View 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 ($) {

5
debian/changelog vendored
View 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