[PATCH 2/2] gitweb: Sort CGI parameters returned by href()
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Aug 22, 2006, 17:05 UTC
- Message-ID
- <11562663261084-git-send-email-jnareb@gmail.com>
- In-Reply-To
- <200608211739.32993.jnareb@gmail.com>
Restore pre-1c2a4f5addce479c619057c6cdc841802139982f ordering of CGI parameters.
Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net> --- gitweb/gitweb.perl | 22 ++++++++++++---------- 1 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 89ef5e7..da0630e 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -260,7 +260,9 @@ ## ===================================== ## action links sub href(%) { - my %mapping = ( + my %params = @_; + + my @mapping = ( action => "a", project => "p", file_name => "f", @@ -271,18 +273,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); }
-- 1.4.1.1