From: Jakub Narebski Date: Sat, 24 Apr 2010 13:53:19 +0000 (+0200) Subject: gitweb: href(..., -path_info => 0|1) X-Git-Url: https://git.ladys.computer/Gitweb/commitdiff_plain/fbc3414a4451668c69325c4f048e60264ad9e527332f4609988ec1f8a461640c gitweb: href(..., -path_info => 0|1) If named boolean option -path_info is passed to href() subroutine, it would use its value to decide whether to generate path_info URL form. If this option is not passed, href() queries 'pathinfo' feature to check whether to generate path_info URL (if generating path_info link is possible at all). href(-replay=>1, -path_info=>0) is meant to be used to generate a key for caching gitweb output; alternate solution would be to use freeze() from Storable (core module) on %input_params hash (or its reference), e.g.: $key = freeze \%input_params; or other serialization of %input_params. While at it document extra options/flags to href(). Signed-off-by: Jakub Narebski Acked-by: Petr Baudis Signed-off-by: Junio C Hamano --- diff --git a/gitweb.perl b/gitweb.perl index d2bb028..875e982 100755 --- a/gitweb.perl +++ b/gitweb.perl @@ -978,6 +978,10 @@ exit; ## ====================================================================== ## action links +# possible values of extra options +# -full => 0|1 - use absolute/full URL ($my_uri/$my_url as base) +# -replay => 1 - start from a current view (replay with modifications) +# -path_info => 0|1 - don't use/use path_info URL (if possible) sub href { my %params = @_; # default is to use -absolute url() i.e. $my_uri @@ -994,7 +998,8 @@ sub href { } my $use_pathinfo = gitweb_check_feature('pathinfo'); - if ($use_pathinfo and defined $params{'project'}) { + if (defined $params{'project'} && + (exists $params{-path_info} ? $params{-path_info} : $use_pathinfo)) { # try to put as many parameters as possible in PATH_INFO: # - project name # - action