X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FEngine.pm;h=963ac5ad7d6cfa8d71741f0497383441ee81d3bd;hp=49dff2590b3d4808d831d26f307ff60bdc124808;hb=1627551a60fe1e220d390a565f793dea27cd36a6;hpb=d82cc9aef963f7e5c8da3f5586a271a2655cc635
diff --git a/lib/Catalyst/Engine.pm b/lib/Catalyst/Engine.pm
index 49dff25..963ac5a 100644
--- a/lib/Catalyst/Engine.pm
+++ b/lib/Catalyst/Engine.pm
@@ -102,7 +102,7 @@ sub finalize_error {
. '
'
} @{ $c->error };
$error ||= 'No output';
- $error = "$error
";
+ $error = qq{$error
};
$title = $name = "$name on Catalyst $Catalyst::VERSION";
$name = "$name
";
@@ -128,7 +128,7 @@ sub finalize_error {
push @infos, sprintf <<"EOF", $name, $value;
EOF
$i++;
@@ -233,6 +233,15 @@ EOF
font-size: medium;
font-weight: normal;
}
+ /* from http://users.tkk.fi/~tkarvine/linux/doc/pre-wrap/pre-wrap-css3-mozilla-opera-ie.html */
+ /* Browser specific (not valid) styles to make preformatted text wrap */
+ pre {
+ white-space: pre-wrap; /* css-3 */
+ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ word-wrap: break-word; /* Internet Explorer 5.5+ */
+ }
@@ -249,7 +258,7 @@ EOF
$c->res->{body} .= ( ' ' x 512 );
# Return 500
- $c->res->status(500) unless $c->res->status;
+ $c->res->status(500);
}
=head2 $self->finalize_headers($c)
@@ -303,6 +312,13 @@ sub prepare_body {
while ( my $buffer = $self->read($c) ) {
$c->prepare_body_chunk($buffer);
}
+
+ # paranoia against wrong Content-Length header
+ my $remaining = $self->read_length - $self->read_position;
+ if ($remaining > 0) {
+ $self->finalize_read($c);
+ Catalyst::Exception->throw("Wrong Content-Length value: ". $self->read_length);
+ }
}
}