decode utf-8 in recentchanges_link parameter

master
Joey Hess 2008-09-26 15:40:01 -04:00
parent 1d12dfc57c
commit 83429adf04
2 changed files with 12 additions and 1 deletions

View File

@ -4,6 +4,7 @@ package IkiWiki::Plugin::recentchanges;
use warnings;
use strict;
use IkiWiki 2.00;
use Encode;
sub import { #{{{
hook(type => "getsetup", id => "recentchanges", call => \&getsetup);
@ -86,7 +87,7 @@ sub cgi ($) { #{{{
# page they link to is deleted, or newly created, or
# changes for whatever reason. So this CGI handles that
# dynamic linking stuff.
my $page=$cgi->param("page");
my $page=decode_utf8($cgi->param("page"));
if (!defined $page) {
error("missing page parameter");
}

View File

@ -17,9 +17,19 @@ the problem can be shown with an auto-setup'd ikiwiki without cgi when manually
>> same happens, by the way, when using meta-redir to a page with high bytes in
>> the name.)
>>
>>> The problem is that all cgi inputs have to be explicitly decoded to
>>> utf-8, which I've now done for `recentchange_link`.
>>>
>>> I cannot, however, reproduce a problem with meta redir. Here it
>>> generated the following html, which redirected the browser ok:
>>> <meta http-equiv="refresh" content="0; URL=./../â/" />
>>
>> update: i've had a look at the git options; you could run git with '-z' (NUL
>> termination) in the `git_commit_info` function; this would require some
>> changes in `parse_diff_tree`, but otherwise completely eliminate the
>> problems with git escaping.
>>
>>> If you would like to develop a patch to that effect, I'd be glad to
>>> drop the current nasty code.
>>
>> --[[chrysn]]