# Not to be used without the CGI script;
-our $VERSION = '3.02';
+our $VERSION = '3.06';
use PLP::Functions ();
use PLP::Fields;
: qq/\n#line 1 "$file"\nprint q\cQ/;
my $linenr = 0;
local *SOURCE;
- open SOURCE, $path or return $level
+ open SOURCE, '<', $path or return $level
? qq{\cQ; die qq[Can't open "\Q$path\E" (\Q$!\E)]; print q\cQ}
: qq{\n#line $linespec\ndie qq[Can't open "\Q$path\E" (\Q$!\E)];};
LINE: while (defined (my $line = <SOURCE>)) {
sub error {
my ($error, $type) = @_;
if (not defined $type or $type < 100) {
+ return undef unless $PLP::DEBUG & 1;
+ my $plain = $error;
+ (my $html = $plain) =~ s/([<&>])/'&#' . ord($1) . ';'/ge;
PLP::sendheaders unless $PLP::sentheaders;
- $error =~ s/([<&>])/'&#' . ord($1) . ';'/ge;
- print qq{<table border=1 class="PLPerror"><tr><td>},
- qq{<span><b>Debug information:</b><BR>$error</td></tr></table>};
+ $PLP::ERROR->($plain, $html);
} else {
select STDOUT;
my ($short, $long) = @{ +{
}
}
+sub _default_error {
+ my ($plain, $html) = @_;
+ print qq{<table border=1 class="PLPerror"><tr><td>},
+ qq{<span><b>Debug information:</b><BR>$html</td></tr></table>};
+}
+
sub start {
my $file = $ENV{PATH_TRANSLATED};
$ENV{PLP_NAME} = $ENV{PATH_INFO};
chdir $dir;
$PLP::code = PLP::source($file, 0);
+
tie *PLPOUT, 'PLP::Tie::Print';
select PLPOUT;
+ $PLP::ERROR = \&_default_error;
}
1;