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;