Revision: 71
Author: matt
Date: 2006-08-09 22:26:15 +0000 (Wed, 09 Aug 2006)
Log Message:
-----------
Support returning code from XSP pages.
Support AddXSPTaglib config item.
Dump XSP to disk when eval fails (hack - needs fixed)
Modified Paths:
--------------
trunk/lib/AxKit2/Transformer/XSP.pm
Modified: trunk/lib/AxKit2/Transformer/XSP.pm
===================================================================
--- trunk/lib/AxKit2/Transformer/XSP.pm 2006-08-09 22:24:21 UTC (rev 70)
+++ trunk/lib/AxKit2/Transformer/XSP.pm 2006-08-09 22:26:15 UTC (rev 71)
@@ -7,7 +7,17 @@
use base qw(AxKit2::Transformer);
use AxKit2::Constants;
+use AxKit2::Client;
+AxKit2::Config->add_config_param('AddXSPTaglib', \&AxKit2::Config::TAKE1,
+ sub {
+ my ($config, $package) = @_;
+ eval "require $package;";
+ die $@ if $@;
+ $package->register();
+ }
+ );
+
sub new {
my $class = shift;
@@ -40,6 +50,8 @@
my $rc = eval { $package->$cv($self->client, $dom); };
die $@ if $@;
+ $self->client->headers_out->code($rc);
+
return $dom;
}
@@ -58,7 +70,12 @@
my $to_eval = $parser->parse($processor->dom);
eval $to_eval;
- die $@ if $@;
+ if ($@) {
+ open(my $fh, ">/tmp/bad.xsp");
+ print $fh $to_eval;
+ close($fh);
+ die $@;
+ }
}
sub register {
@@ -768,6 +785,7 @@
'sub xml_generator {',
'my $class = shift;',
'my ($cgi, $document, $parent) = @_;',
+ 'my $client = $cgi;',
"\n",
);
$e->{XSP_User_Root} = 1;
@@ -1701,4 +1719,4 @@
=cut
-1;
\ No newline at end of file
+1;