b53493c0df3e92057ed3580fc2aca59ae46cf328
[ikiwiki.git] / doc / bugs / syslog_fails_with_non-ASCII_wikinames.mdwn
1 [[this feature|todo/syslog_should_show_wiki_name]] made it so syslog doesn't work anymore if the site being logged has non-ASCII characters it in.
2
3 Specifically, my wiki was named "CⒶTS", and nothing was showing up in syslog. When I changed that to "C@TS", it worked again.
4
5 My guess is this sits somewhere here:
6
7 [[!format perl """
8                 return eval {
9                         Sys::Syslog::syslog($type, "[$config{wikiname}] %s", join(" ", @_));
10                 };
11 """]]
12
13 Yet I am not sure how to fix that kind of problem in Perl... --[[anarcat]]
14
15 I tried to make this unit test:
16
17 [[!format perl """
18 #!/usr/bin/perl
19 use warnings;
20 use strict;
21 use Test::More tests => 5;
22
23 BEGIN { use_ok("IkiWiki"); }
24
25 $IkiWiki::config{verbose} = 1;
26 $IkiWiki::config{syslog} = 1;
27 $IkiWiki::config{wikiname} = 'ascii';
28 ok(debug('test'));
29 $IkiWiki::config{wikiname} = 'not ⒶSCII';
30 ok(debug('test'));
31 """]]
32
33 And I couldn't reproduce the problem. Therefore, I suspect the problem may be somewhere else - maybe in the options parsing? One thing that's for sure: when I put that funky character in the title, it breaks logging! If I remove the "eval" above, I get:
34
35     Error: Wide character in syswrite at /usr/lib/perl/5.14/Sys/Syslog.pm line 485.