Unescape url returned from CGI::url to match PATH_INFO escaping.
authorGavin Carr <gonzai@users.sourceforge.net>
Wed, 26 Mar 2008 19:02:31 +0000 (19:02 +0000)
committerGavin Carr <gonzai@users.sourceforge.net>
Wed, 26 Mar 2008 19:02:31 +0000 (19:02 +0000)
ChangeLog
blosxom.cgi

index a2a2679..5a05b0c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,5 @@
 v2.0.3
 v2.0.3
+    * unescape url returned from CGI.pm to match PATH_INFO escaping
     * redo path_info handling with much stricter date tests
     * added support for multiple plugin directories using $plugin_path
        * changed plugin loading to use @INC instead of hardcoded 
     * redo path_info handling with much stricter date tests
     * added support for multiple plugin directories using $plugin_path
        * changed plugin loading to use @INC instead of hardcoded 
index ee9bebc..29b9a54 100755 (executable)
@@ -144,6 +144,8 @@ my $fh = new FileHandle;
 
 # Use the stated preferred URL or figure it out automatically
 $url ||= url( -path_info => 1 );
 
 # Use the stated preferred URL or figure it out automatically
 $url ||= url( -path_info => 1 );
+# Unescape %XX hex codes (from URI::Escape::uri_unescape)
+$url =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;      
 $url =~ s/^included:/http:/ if $ENV{SERVER_PROTOCOL} eq 'INCLUDED';
 
 # NOTE: Since v3.12, it looks as if CGI.pm misbehaves for SSIs and
 $url =~ s/^included:/http:/ if $ENV{SERVER_PROTOCOL} eq 'INCLUDED';
 
 # NOTE: Since v3.12, it looks as if CGI.pm misbehaves for SSIs and