diff options
Diffstat (limited to 'LedgerSMB/Template/LaTeX.pm')
-rwxr-xr-x | LedgerSMB/Template/LaTeX.pm | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/LedgerSMB/Template/LaTeX.pm b/LedgerSMB/Template/LaTeX.pm index 06c4b8c4..973cb724 100755 --- a/LedgerSMB/Template/LaTeX.pm +++ b/LedgerSMB/Template/LaTeX.pm @@ -47,6 +47,9 @@ holders, see the CONTRIBUTORS file. package LedgerSMB::Template::LaTeX; +use warnings; +use strict; + use Error qw(:try); use Template::Latex; use LedgerSMB::Template::TTI18N; @@ -62,15 +65,20 @@ sub preprocess { my $type = ref $rawvars; return $rawvars if $type =~ /^LedgerSMB::Locale/; + return unless defined $type; if ($type eq 'ARRAY') { for (@{$rawvars}) { push @{$vars}, preprocess($_); } - } elsif (!$type) { + } elsif (!$type or $type eq 'SCALAR') { + if ($type eq 'SCALAR') { + $vars = $$rawvars; + } else { + $vars = $rawvars; + } #XXX Fix escaping - $rawvars =~ s/([&\$\\_<>~^#\%\{\}])/\\$1/g; - $rawvars =~ s/"(.*)"/``$1''/gs; - return $rawvars; + $vars =~ s/([&\$\\_<>~^#\%\{\}])/\\$1/g; + $vars =~ s/"(.*)"/``$1''/gs; } else { for ( keys %{$rawvars} ) { $vars->{$_} = preprocess($rawvars->{$_}); |