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;


Reply via email to