404/goto: Fix 404 display of utf-8 pages.

Problem here was that no charset http header was being sent.

I fixed this globally by making cgi_custom_failure send the header.
Required changing its parameters.
master
Joey Hess 2009-12-14 18:16:47 -05:00
parent 40078b1781
commit 2bceb10b5f
4 changed files with 13 additions and 6 deletions

View File

@ -235,11 +235,15 @@ sub cgi_prefs ($$) {
showform($form, $buttons, $session, $q);
}
sub cgi_custom_failure ($$) {
my $header=shift;
sub cgi_custom_failure ($$$) {
my $q=shift;
my $httpstatus=shift;
my $message=shift;
print $header;
print $q->header(
-status => $httpstatus,
-charset => 'utf-8',
);
print $message;
# Internet Explod^Hrer won't show custom 404 responses
@ -274,7 +278,7 @@ sub check_banned ($$) {
$session->delete();
cgi_savesession($session);
cgi_custom_failure(
$q->header(-status => "403 Forbidden"),
$q, "403 Forbidden",
gettext("You are banned."));
}
}

View File

@ -58,7 +58,8 @@ sub cgi_getsource ($) {
if (! exists $pagesources{$page}) {
IkiWiki::cgi_custom_failure(
$cgi->header(-status => "404 Not Found"),
$cgi,
"404 Not Found",
IkiWiki::misctemplate(gettext("missing page"),
"<p>".
sprintf(gettext("The page %s does not exist."),

View File

@ -51,7 +51,8 @@ sub cgi_goto ($;$) {
if (! length $link) {
IkiWiki::cgi_custom_failure(
$q->header(-status => "404 Not Found"),
$q,
"404 Not Found",
IkiWiki::misctemplate(gettext("missing page"),
"<p>".
sprintf(gettext("The page %s does not exist."),

1
debian/changelog vendored
View File

@ -10,6 +10,7 @@ ikiwiki (3.20091203) UNRELEASED; urgency=low
* attachment: Fix several utf-8 problems.
* attachment: Fix reversion in attachment sorting by age.
* remove: Fix problem removing pages with utf-8 in the name.
* 404/goto: Fix 404 display of utf-8 pages.
-- Joey Hess <joeyh@debian.org> Wed, 02 Dec 2009 17:22:21 -0500