diff options
author | Jakub Narebski <jnareb@gmail.com> | 2006-08-22 19:05:25 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-08-22 16:12:27 -0700 |
commit | 498fe00201401b766a200cf423a8ec42b5d5643e (patch) | |
tree | 9c3b5a6198a862286b64fff4db78f20c9eceff1b /gitweb | |
parent | 1149fecfc270a2effc344897989f40afe449a72c (diff) | |
download | git-498fe00201401b766a200cf423a8ec42b5d5643e.tar.gz |
gitweb: Sort CGI parameters returned by href()
Restore pre-1c2a4f5addce479c619057c6cdc841802139982f
ordering of CGI parameters.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'gitweb')
-rwxr-xr-x | gitweb/gitweb.perl | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 43b1600486..50083e3011 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -267,7 +267,9 @@ exit; ## action links sub href(%) { - my %mapping = ( + my %params = @_; + + my @mapping = ( action => "a", project => "p", file_name => "f", @@ -278,18 +280,18 @@ sub href(%) { page => "pg", searchtext => "s", ); + my %mapping = @mapping; - my %params = @_; $params{"project"} ||= $project; - my $href = "$my_uri?"; - $href .= esc_param( join(";", - map { - defined $params{$_} ? "$mapping{$_}=$params{$_}" : () - } keys %params - ) ); - - return $href; + my @result = (); + for (my $i = 0; $i < @mapping; $i += 2) { + my ($name, $symbol) = ($mapping[$i], $mapping[$i+1]); + if (defined $params{$name}) { + push @result, $symbol . "=" . esc_param($params{$name}); + } + } + return "$my_uri?" . join(';', @result); } |