#!/usr/bin/perl
# Blosxom
-# Author: Rael Dornfest <rael@oreilly.com>
+# Author: Rael Dornfest (2003), The Blosxom Development Team (2005-2008)
# Version: 2.1.0
# Home/Docs/Licensing: http://blosxom.sourceforge.net/
# Development/Downloads: http://sourceforge.net/projects/blosxom
}
if ( $encode_xml_entities && $content_type =~ m{\bxml\b} ) {
+ # Escape special characters inside the <link> container
+
+ # The following line should be moved more towards to top for
+ # performance reasons -- Axel Beckert, 2008-07-22
+ my $url_escape_re = qr([^-/a-zA-Z0-9:._]);
+
+ $url =~ s($url_escape_re)(sprintf('%%%02X', ord($&)))eg;
+ $path =~ s($url_escape_re)(sprintf('%%%02X', ord($&)))eg;
+ $fn =~ s($url_escape_re)(sprintf('%%%02X', ord($&)))eg;
# Escape <, >, and &, and to produce valid RSS
my %escape = (
'<' => '<',
'>' => '>',
'&' => '&',
- '"' => '"'
+ '"' => '"',
+ "'" => '''
);
my $escape_re = join '|' => keys %escape;
$title =~ s/($escape_re)/$escape{$1}/g;
$body =~ s/($escape_re)/$escape{$1}/g;
+ $url =~ s/($escape_re)/$escape{$1}/g;
+ $path =~ s/($escape_re)/$escape{$1}/g;
+ $fn =~ s/($escape_re)/$escape{$1}/g;
}
$story = &$interpolate($story);