projects
/
matthijs
/
upstream
/
blosxom.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add $path_info_full variable to blosxom.cgi.
[matthijs/upstream/blosxom.git]
/
blosxom.cgi
diff --git
a/blosxom.cgi
b/blosxom.cgi
index 3bd3ae9a1510a91caba0f6c4f5e4dc7988631dda..ffa2a828cd59ccf10f49999b82907be42ed8a28c 100755
(executable)
--- a/
blosxom.cgi
+++ b/
blosxom.cgi
@@
-79,7
+79,7
@@
$static_entries = 0;
# --------------------------------
use vars
# --------------------------------
use vars
- qw! $version $blog_title $blog_description $blog_language $blog_encoding $datadir $url %template $template $depth $num_entries $file_extension $default_flavour $static_or_dynamic $config_dir $plugin_list $plugin_path $plugin_dir $plugin_state_dir @plugins %plugins $static_dir $static_password @static_flavours $static_entries $path_info
$path_info_yr $path_info_mo $path_info_da $path_info_mo_num $flavour $static_or_dynamic %month2num @num2month $interpolate $entries $output $header $show_future_entries %files %indexes %other
s !;
+ qw! $version $blog_title $blog_description $blog_language $blog_encoding $datadir $url %template $template $depth $num_entries $file_extension $default_flavour $static_or_dynamic $config_dir $plugin_list $plugin_path $plugin_dir $plugin_state_dir @plugins %plugins $static_dir $static_password @static_flavours $static_entries $path_info
_full $path_info $path_info_yr $path_info_mo $path_info_da $path_info_mo_num $flavour $static_or_dynamic %month2num @num2month $interpolate $entries $output $header $show_future_entries %files %indexes %others $encode_xml_entitie
s !;
use strict;
use FileHandle;
use strict;
use FileHandle;
@@
-90,6
+90,9
@@
use CGI qw/:standard :netscape/;
$version = "2.0.2";
$version = "2.0.2";
+# Should I encode entities for xml content-types? (plugins can turn this off if they do it themselves)
+$encode_xml_entities = 1;
+
# Load configuration from $ENV{BLOSXOM_CONFIG_DIR}/blosxom.conf, if it exists
my $blosxom_config;
if ( $ENV{BLOSXOM_CONFIG_FILE} && -r $ENV{BLOSXOM_CONFIG_FILE} ) {
# Load configuration from $ENV{BLOSXOM_CONFIG_DIR}/blosxom.conf, if it exists
my $blosxom_config;
if ( $ENV{BLOSXOM_CONFIG_FILE} && -r $ENV{BLOSXOM_CONFIG_FILE} ) {
@@
-180,6
+183,7
@@
else {
# Path Info Magic
# Take a gander at HTTP's PATH_INFO for optional blog name, archive yr/mo/day
my @path_info = split m{/}, path_info() || param('path');
# Path Info Magic
# Take a gander at HTTP's PATH_INFO for optional blog name, archive yr/mo/day
my @path_info = split m{/}, path_info() || param('path');
+$path_info_full = join '/', @path_info; # Equivalent to $ENV{PATH_INFO}
shift @path_info;
while ( $path_info[0]
shift @path_info;
while ( $path_info[0]
@@
-293,6
+297,8
@@
foreach my $plugin (@plugin_list) {
my $on_off = $off eq '_' ? -1 : 1;
# Allow perl module plugins
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
if ( $plugin =~ m/::/ && ( $plugin_list || -z $plugin_hash{$plugin} ) ) {
# For Blosxom::Plugin::Foo style plugins, we need to use a string require
@@
-508,10
+514,10
@@
sub generate {
# Define default interpolation subroutine
$interpolate = sub {
# Define default interpolation subroutine
$interpolate = sub {
-
package blosxom;
my $template = shift;
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;
};
return $template;
};
@@
-646,7
+652,7
@@
sub generate {
}
}
}
}
- if ( $content_type =~ m{\bxml\b} ) {
+ if ( $
encode_xml_entities && $
content_type =~ m{\bxml\b} ) {
# Escape <, >, and &, and to produce valid RSS
my %escape = (
# Escape <, >, and &, and to produce valid RSS
my %escape = (
@@
-724,7
+730,7
@@
html content_type text/html; charset=$blog_encoding
html head <html>
html head <head>
html head <meta http-equiv="content-type" content="text/html;charset=$blog_encoding" />
html head <html>
html head <head>
html head <meta http-equiv="content-type" content="text/html;charset=$blog_encoding" />
-html head <link rel="alternate" type="
type="
application/rss+xml" title="RSS" href="$url/index.rss" />
+html head <link rel="alternate" type="application/rss+xml" title="RSS" href="$url/index.rss" />
html head <title>$blog_title $path_info_da $path_info_mo $path_info_yr
html head </title>
html head </head>
html head <title>$blog_title $path_info_da $path_info_mo $path_info_yr
html head </title>
html head </head>