]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki.pm
respinse
[ikiwiki.git] / IkiWiki.pm
index 385d16a56a96e32506dd4e6f8e3da690502b60a7..9e71cc153c4aaaad37328bb3eb74b947d2084ae8 100644 (file)
@@ -5,6 +5,7 @@ use warnings;
 use strict;
 use Encode;
 use HTML::Entities;
+use URI::Escape q{uri_escape_utf8};
 use open qw{:utf8 :std};
 
 use vars qw{%config %links %oldlinks %oldpagemtime %pagectime %pagecase
@@ -385,7 +386,8 @@ sub linkpage ($) { #{{{
 sub cgiurl (@) { #{{{
        my %params=@_;
 
-       return $config{cgiurl}."?".join("&", map "$_=$params{$_}", keys %params);
+       return $config{cgiurl}."?".
+               join("&", map $_."=".uri_escape_utf8($params{$_}), keys %params);
 } #}}}
 
 sub baseurl (;$) { #{{{
@@ -428,8 +430,6 @@ sub htmllink ($$$;@) { #{{{
        my $link=shift;
        my %opts=@_;
 
-print STDERR "bestlink $lpage $link\n" if $lpage eq "roadmap" && $link =~/rcs/;
-
        my $bestlink;
        if (! $opts{forcesubpage}) {
                $bestlink=bestlink($lpage, $link);
@@ -455,7 +455,11 @@ print STDERR "bestlink $lpage $link\n" if $lpage eq "roadmap" && $link =~/rcs/;
        if (! grep { $_ eq $bestlink } map { @{$_} } values %renderedfiles) {
                return $linktext unless length $config{cgiurl};
                return "<span><a href=\"".
-                       cgiurl(do => "create", page => lc($link), from => $page).
+                       cgiurl(
+                               do => "create",
+                               page => pagetitle(lc($link), 1),
+                               from => $lpage
+                       ).
                        "\">?</a>$linktext</span>"
        }