Subject: Re: [PATCH 5/6] gitweb: remove PATH_INFO from $my_url and $my_uri

From: Jakub Narebski <[email-masked]>
Date: Mon, 29 Sep 2008 10:33:33 +0200

On Sun, 21 Sep 2008, Giuseppe Bilotta wrote:

> This patch (combined with appropriate server configuration) allows usage
> of the gitweb CGI script as DirectoryIndex for the server root even when
> the pathinfo feature is enabled.
>

This is IMHO a bugfix for a path_info handling bug, for which there
was an ugly workaround of specifying base URL ($my_url and $my_uri)
explicitly in gitweb configuration (GITWEB_CONFIG).

Therefore I think that this patch should have been sent outside of
the rest of "new path_info features" series, as a separate single
patch, and now that it is there it really should be applied, perhaps
even to the 'maint' branch.

> Signed-off-by: Giuseppe Bilotta <[email-masked]>

Acked-by: Jakub Narebski <[email-masked]>
(for what is worth)

> ---
>  gitweb/gitweb.perl |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 0dd2526..4a91d07 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -26,6 +26,10 @@ our $cgi = new CGI;
>  our $version = "++GIT_VERSION++";
>  our $my_url = $cgi->url();
>  our $my_uri = $cgi->url(-absolute => 1);

Perhaps some comment here?

> +if (my $path_info = $ENV{"PATH_INFO"}) {
> +	$my_url =~ s,$path_info$,,;
> +	$my_uri =~ s,$path_info$,,;

+	$my_url =~ s,\Q$path_info\E$,,;
+	$my_uri =~ s,\Q$path_info\E$,,;

Just in case.

> +}
>  
>  # core git executable to use
>  # this can just be "git" if your webserver has a sensible PATH

I was wondering if $path_info should be global variable, but then
I checked that $path_info is local to evaluate_path_info() subroutine.
So it is good as it is now, but with quoting regular expression
metacharacters.

-- 
Jakub Narebski
Poland