]> git.sesse.net Git - xml-template/commitdiff
Revert the deferred stuff; it doesn't work as long as Expat isn't reentrant.
authorsgunderson@bigfoot.com <>
Thu, 1 Mar 2007 15:57:56 +0000 (16:57 +0100)
committersgunderson@bigfoot.com <>
Thu, 1 Mar 2007 15:57:56 +0000 (16:57 +0100)
perl-sax/XML/TemplateSAX.pm
perl-sax/XML/TemplateSAX/Deferred.pm [deleted file]
perl-sax/XML/TemplateSAX/Handler.pm
perl-sax/include.pl

index 04403976a3a4e1e902385ed4a9234744a1e842f1..aba8c216af0a5e425ce86cc52612527166341c5d 100644 (file)
@@ -23,7 +23,6 @@ use XML::SAX::Expat;
 use XML::SAX::Writer;
 use XML::TemplateSAX::Buffer;
 use XML::TemplateSAX::Cleaner;
-use XML::TemplateSAX::Deferred;
 use XML::TemplateSAX::Handler;
 
 package XML::TemplateSAX;
@@ -33,6 +32,7 @@ sub process_file_to_handler {
        $clean = 1 unless (defined($clean));
 
        my ($cleaner, $filter, $parser);
+       my $str = '';
 
        if ($clean) {
                $cleaner = XML::TemplateSAX::Cleaner->new(Handler => $handler);
@@ -44,6 +44,8 @@ sub process_file_to_handler {
        # FIXME: hardcoding expat = not good?
        $parser = XML::SAX::Expat->new(Handler => $filter);
        $parser->parse_file($filename);
+
+       return $str;
 }
 
 sub process_file {
@@ -66,12 +68,6 @@ sub process_file_to_buffer {
        return $buffer;
 }
 
-sub process_file_to_placeholder {
-       my ($filename, $obj, $clean) = @_;
-
-       return XML::TemplateSAX::Deferred->new($filename, $obj, $clean);
-}
-
 sub alternate {
        my ($tag, $array, @elems) = @_;
 
diff --git a/perl-sax/XML/TemplateSAX/Deferred.pm b/perl-sax/XML/TemplateSAX/Deferred.pm
deleted file mode 100644 (file)
index 6ed9d3e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#! /usr/bin/perl
-
-use strict;
-use warnings;
-use XML::TemplateSAX;
-use Data::Dumper;
-package XML::TemplateSAX::Deferred;
-
-sub new {
-       my $class = shift;
-       my ($filename, $obj, $clean) = @_;
-
-       my $self = {
-               filename => $filename,
-               obj => $obj,
-               clean => $clean
-       };
-       bless($self, $class);
-       return $self;
-}
-
-sub parse {
-       my ($self, $handler) = @_;
-
-       my $buf = XML::TemplateSAX::process_file_to_buffer($self->{'filename'}, $self->{'obj'}, $self->{'clean'});
-       $buf->replay($handler);
-       
-       # XML::TemplateSAX::process_file_to_handler($self->{'filename'}, $handler, $self->{'obj'}, $self->{'clean'});
-}
-
-1;
index 319883bfd6ad883938bbab26d64a42bc5d6352ed..b684c93fbf53b3f8011558d4f503623a27deb773 100644 (file)
@@ -113,12 +113,9 @@ sub start_element {
                        if (ref($match) eq 'XML::TemplateSAX::Buffer') {
                                $match->replay($self);
                                $self->{'obj'} = undef;
-                       } elsif (ref($match) eq 'XML::TemplateSAX::Deferred') {
-                               $match->parse($self);
-                               $self->{'obj'} = undef;
-                       } else {
-                               $self->{'obj'} = $match;
                        }
+                       
+                       $self->{'obj'} = $match;
                        return;
                }
        }
index dc26562d5ed286eb51b3935391ebb67483e5271b..287351b2773f6cf587462bedf4cc9286a9fbd577 100644 (file)
@@ -1,7 +1,7 @@
 #! /usr/bin/perl
 use XML::TemplateSAX;
 
-my $doc = XML::TemplateSAX::process_file_to_placeholder('../xml/included.xml', {
+my $doc = XML::TemplateSAX::process_file_to_buffer('../xml/included.xml', {
        'color' => 'red'
 }, 0);
 my $master = XML::TemplateSAX::process_file('../xml/master.xml', {