diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/File/Cache/Parsed.pm | 2 | ||||
-rw-r--r-- | lib/WebCoso/Common.pm | 2 | ||||
-rw-r--r-- | lib/WebCoso/XSLT.pm | 3 |
3 files changed, 5 insertions, 2 deletions
diff --git a/lib/File/Cache/Parsed.pm b/lib/File/Cache/Parsed.pm index 34f5aed..280dab7 100644 --- a/lib/File/Cache/Parsed.pm +++ b/lib/File/Cache/Parsed.pm @@ -78,6 +78,8 @@ sub get { $filename=abs_path($filename); } + return unless $filename; + return $self->{cache}{$filename} if exists $self->{cache}{$filename}; my $contents=eval {file($filename)->slurp}; diff --git a/lib/WebCoso/Common.pm b/lib/WebCoso/Common.pm index 30b18fe..5420063 100644 --- a/lib/WebCoso/Common.pm +++ b/lib/WebCoso/Common.pm @@ -86,7 +86,7 @@ sub getTitleFor { my $doc=$fc->get($doc_name); unless ($doc) { LOGWARN("No document for <$doc_name>, returning <$name>"); - return $name; + return "$name"; # force it to a string, since it might be an XML Node } my $title=$xpath->findnodes( q{/document/title}, diff --git a/lib/WebCoso/XSLT.pm b/lib/WebCoso/XSLT.pm index 40c945b..cc64cfb 100644 --- a/lib/WebCoso/XSLT.pm +++ b/lib/WebCoso/XSLT.pm @@ -24,7 +24,8 @@ sub new { $self->{xslt_proc}->register_function($NS,'dates-for', sub{$self->getDatesXML(WebCoso::Common::getDatesFor($self->{fc},@_))}); $self->{xslt_proc}->register_function($NS,'document', - sub{$self->{fc}->get(WebCoso::Common::srcXMLFor(@_))}); + sub{$self->{fc}->get(WebCoso::Common::srcXMLFor(@_)) + || XML::LibXML::Document->new('1.0','utf-8')}); $self->{xslt_proc}->register_function($NS,'message', sub{DEBUG($_[0],' ',$_[1]->get_node(0)->toString());return ''}); $self->{xslt_proc}->debug_callback(sub{DEBUG(@_)}); |