]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
Force log messages to be bytestrings
authorSimon McVittie <smcv@debian.org>
Thu, 21 Jan 2016 07:25:25 +0000 (07:25 +0000)
committerSimon McVittie <smcv@debian.org>
Thu, 21 Jan 2016 07:33:41 +0000 (07:33 +0000)
Sys::Syslog is not UTF-8-literate.

IkiWiki.pm
t/syslog.t

index fe5af6d15a769250879accb6592b45d84f5c555e..97fe6b8ffa035032812a8340e7b1953e06277282 100644 (file)
@@ -846,7 +846,9 @@ sub log_message ($$) {
                        # keep a copy to avoid editing the original config repeatedly
                        my $wikiname = $config{wikiname};
                        utf8::encode($wikiname);
-                       Sys::Syslog::syslog($type, "[$wikiname] %s", join(" ", @_));
+                       my $message = join(" ", @_);
+                       utf8::encode($message);
+                       Sys::Syslog::syslog($type, "[$wikiname] %s", $message);
                };
                 if ($@) {
                     print STDERR "failed to syslog: $@" unless $log_failed;
index ffe8635b3e72f975577faa1bf1e5d1d310842281..d5c1bc56bdcac0da6d9874ca672102177e0128c6 100755 (executable)
@@ -12,7 +12,7 @@ $IkiWiki::config{syslog} = 1;
 $IkiWiki::config{wikiname} = 'ASCII';
 is(debug('test'), '', 'plain ASCII syslog');
 $IkiWiki::config{wikiname} = 'not ⒶSCII';
-is(debug('test'), '', 'UTF8 syslog');
+is(debug('𝗧ĕṡҭ'), '', 'UTF8 syslog');
 my $orig = $IkiWiki::config{wikiname};
 is(debug('test'), '', 'check for idempotency');
 is($IkiWiki::config{wikiname}, $orig, 'unchanged config');