Instead of providing the project as a ?p= parameter it is simply appended to the base URI. All other parameters are appended to that, except for ?a=summary which is the default and can be omitted. Signed-off-by: Martin Waitz <tali@xxxxxxxxxxxxxx> --- gitweb/gitweb.perl | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 597d29f..e507ce9 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -355,6 +355,7 @@ ## action links sub href(%) { my %params = @_; + my $href; my @mapping = ( project => "p", @@ -373,6 +374,16 @@ sub href(%) { $params{'project'} = $project unless exists $params{'project'}; + # first encode base url and project + $href = "$my_uri/$params{'project'}"; + delete $params{'project'}; + + # Summary just uses the project path URL + if ($params{'action'} eq 'summary') { + return $href; + } + + # now encode the parameters explicitly my @result = (); for (my $i = 0; $i < @mapping; $i += 2) { my ($name, $symbol) = ($mapping[$i], $mapping[$i+1]); @@ -380,7 +391,9 @@ sub href(%) { push @result, $symbol . "=" . esc_param($params{$name}); } } - return "$my_uri?" . join(';', @result); + $href .= "?" . join(';', @result); + + return $href; } -- 1.4.2.gb8b6b -- Martin Waitz - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html