X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/3adb47ec4f7374128d18a88cff54269104fc21fe..de82463228c7dcde0dbf19f05556465ef37580dc:/IkiWiki/Plugin/goto.pm

diff --git a/IkiWiki/Plugin/goto.pm b/IkiWiki/Plugin/goto.pm
index 669211691..3a946b19d 100644
--- a/IkiWiki/Plugin/goto.pm
+++ b/IkiWiki/Plugin/goto.pm
@@ -7,6 +7,7 @@ use IkiWiki 3.00;
 
 sub import {
 	hook(type => "cgi", id => 'goto',  call => \&cgi);
+	hook(type => "getsetup", id => 'goto',  call => \&getsetup);
 }
 
 sub getsetup () {
@@ -26,7 +27,7 @@ sub cgi_goto ($;$) {
 	my $page = shift;
 
 	if (!defined $page) {
-		$page = IkiWiki::decode_utf8($q->param("page"));
+		$page = IkiWiki::decode_utf8(scalar $q->param("page"));
 
 		if (!defined $page) {
 			error("missing page parameter");
@@ -51,11 +52,11 @@ sub cgi_goto ($;$) {
 		IkiWiki::redirect($q, $pagestate{$page}{meta}{permalink});
 	}
 
-	if (! length $link) {
+	if (! defined $link || ! length $link) {
 		IkiWiki::cgi_custom_failure(
 			$q,
 			"404 Not Found",
-			IkiWiki::misctemplate(gettext("missing page"),
+			IkiWiki::cgitemplate($q, gettext("missing page"),
 				"<p>".
 				sprintf(gettext("The page %s does not exist."),
 					htmllink("", "", $page)).
@@ -63,7 +64,7 @@ sub cgi_goto ($;$) {
 		)
 	}
 	else {
-		IkiWiki::redirect($q, urlto($link, undef, 1));
+		IkiWiki::redirect($q, urlto($link));
 	}
 
 	exit;