X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fperl%2FCGI.pm;h=024a14518a64d6f727a1f2a8d63769cb5fada6bb;hb=01b75c67c2e67525c5d16c5bd942aaa8d42d251d;hp=286bca52f7a4fa0c5636de9be6891b3b68e8fcd2;hpb=b0e111a2b5c5ebcb15e71359e4c5775d0d6a1fcc;p=libucw.git diff --git a/lib/perl/CGI.pm b/lib/perl/CGI.pm index 286bca52..024a1451 100644 --- a/lib/perl/CGI.pm +++ b/lib/perl/CGI.pm @@ -23,8 +23,7 @@ BEGIN { sub url_escape($) { my $x = shift @_; - $x =~ s/([^-\$_.+!*'(),0-9A-Za-z\x80-\xff ])/"%".unpack('H2',$1)/ge; - $x =~ s/ /+/g; + $x =~ s/([^-\$_.!*'(),0-9A-Za-z\x80-\xff])/"%".unpack('H2',$1)/ge; return $x; } @@ -42,7 +41,7 @@ our $arg_table; sub parse_arg_string($) { my ($s) = @_; $s =~ s/\s+//; - foreach $_ (split /&/,$s) { + foreach $_ (split /[&:]/,$s) { (/^([^=]+)=(.*)$/) or next; my $arg = $arg_table->{$1} or next; $_ = $2; @@ -106,7 +105,7 @@ sub make_out_args($) { sub self_ref(@) { my %h = @_; my $out = make_out_args(\%h); - return "?" . join('&', map { "$_=" . url_escape($out->{$_}) } sort keys %$out); + return "?" . join(':', map { "$_=" . url_escape($out->{$_}) } sort keys %$out); } sub self_form(@) {