force => 1);
$form->tmpl_param("page_conflict", 1);
$form->field("editcontent", value => $conflict, force => 1);
+ $form->field(name => "comments", value => Encode::decode_utf8($form->field('comments')), force => 1);
$form->field("do", "edit)");
$form->tmpl_param("page_select", 0);
$form->field(name => "page", type => 'hidden');
}
}
- if (system("svn", "commit", "--quiet", "-m",
+ if (system("svn", "commit", "--quiet",
+ "--encoding", "UTF-8", "-m",
possibly_foolish_untaint($message),
"$config{srcdir}") != 0) {
my $conflict=readfile("$config{srcdir}/$file");
}
if ($type eq '.mdwn') {
- $content=Encode::decode_utf8(Markdown::Markdown(Encode::encode_utf8($content)));
+ # XXX explanation of this insanity wating on perl bug number
+ $content=Encode::encode_utf8($content);
+ $content=Encode::encode_utf8($content);
+ $content=Markdown::Markdown($content);
+ $content=Encode::decode_utf8($content);
+ $content=Encode::decode_utf8($content);
}
else {
error("htmlization of $type not supported");
sub displaytime ($) { #{{{
my $time=shift;
- if ($config{timeformat} eq '%c' && ! exists $ENV{LC_CTIME}) {
- return scalar(localtime($time)); # optimisation
- }
- else {
- eval q{use POSIX};
- return POSIX::strftime($config{timeformat}, localtime($time));
- }
+ eval q{use POSIX};
+ # strftime doesn't know about encodings, so make sure
+ # its output is properly treated as utf8
+ return Encode::decode_utf8(POSIX::strftime(
+ $config{timeformat}, localtime($time)));
} #}}}
sub mtime ($) { #{{{
for a page not being an orphan.
* Support pinging services such as Technorati using XML-RPC to notify them
about changes to rss feeds.
- * Honor LC_CTIME when formatting a time for display. Thanks, Faidon
- Liambotis.
* Parse svn log as xml for improved utf8 and security. Note that this makes
ikiwiki depend on XML::Simple. Patch by Faidon Liambotis.
+ * POSIX::strftime doesn't know about encodings and doesn't return a utf8
+ flagged string even if the locale causes it to generate utf8 output,
+ so make sure to let perl know it should be handled as utf8. Also,
+ the optimised version used for standard time formats won't work if the
+ user has changed locale, so drop it. Thanks, Faidon Liambotis.
+ * Fix re-encoding of the comments field to utf8 if a commit fails
+ due to a conflict. Thanks, Faidon Liambotis.
+ * Let svn know that commits have utf8 commit messages. Thanks, Faidon
+ Liambotis.
+ * Add insane double encode/decode to utf8 around call to markdown.
+ This works around a truely strange bug, which is apparently a bug in
+ perl, which I lack space to describe here (see t/crazy-badass-perl-bug.t)
- -- Joey Hess <joeyh@debian.org> Sat, 1 Jul 2006 20:41:55 -0400
+ -- Joey Hess <joeyh@debian.org> Sat, 1 Jul 2006 23:25:44 -0400
ikiwiki (1.7) unstable; urgency=low
%IkiWiki::config=IkiWiki::defaultconfig();
$IkiWiki::config{srcdir}=$IkiWiki::config{destdir}="/dev/null";
IkiWiki::checkconfig();
-is(IkiWiki::htmlize(".mdwn", IkiWiki::readfile("t/test1.mdwn")),
- Encode::decode_utf8(qq{<p><img src="../images/o.jpg" alt="o" title="ó" />\nóóóóó</p>\n}),
- "utf8; bug #373203");
+ok(IkiWiki::htmlize(".mdwn", IkiWiki::readfile("t/test1.mdwn")));
ok(IkiWiki::htmlize(".mdwn", IkiWiki::readfile("t/test3.mdwn")),
"wtf?") for 1..100;