X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fblosxom.git;a=blobdiff_plain;f=blosxom.cgi;h=4e19e64a27e20e423427d02a3fdf93045d616553;hp=3bd3ae9a1510a91caba0f6c4f5e4dc7988631dda;hb=e9efcd432994620d4294f322ff04152134a1c1f4;hpb=86608a808dd5465a2f186b51c46f8aa786679bd6 diff --git a/blosxom.cgi b/blosxom.cgi index 3bd3ae9..4e19e64 100755 --- a/blosxom.cgi +++ b/blosxom.cgi @@ -293,6 +293,8 @@ foreach my $plugin (@plugin_list) { my $on_off = $off eq '_' ? -1 : 1; # Allow perl module plugins + # The -z test is a hack to allow a zero-length placeholder file in a + # $plugin_path directory to indicate an @INC module should be loaded if ( $plugin =~ m/::/ && ( $plugin_list || -z $plugin_hash{$plugin} ) ) { # For Blosxom::Plugin::Foo style plugins, we need to use a string require @@ -508,10 +510,10 @@ sub generate { # Define default interpolation subroutine $interpolate = sub { - package blosxom; my $template = shift; - $template =~ s/(\$\w+(?:::\w+)*)/"defined $1 ? $1 : ''"/gee; + # Interpolate scalars, namespaced scalars, and hash/hashref scalars + $template =~ s/(\$\w+(?:::\w+)*(?:(?:->)?{(['"]?)[-\w]+\2})?)/"defined $1 ? $1 : ''"/gee; return $template; }; @@ -724,7 +726,7 @@ html content_type text/html; charset=$blog_encoding html head html head html head -html head +html head html head $blog_title $path_info_da $path_info_mo $path_info_yr html head html head