Code

gitweb: use_pathinfo filenames start with /
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Tue, 21 Oct 2008 19:34:52 +0000 (21:34 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 25 Oct 2008 19:25:14 +0000 (12:25 -0700)
Generate PATH_INFO URLs in the form project/action/hash_base:/filename
rather than project/action/hash_base:filename (the latter form is still
accepted in input).

This minimal change allows relative navigation to work properly when
viewing HTML files in raw ('blob_plain') mode.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl

index 50604e0a0c25da6b04068ca339f3ac113c8a62b1..f8021da967ee1ccf1bf64139582c6042a2656a20 100755 (executable)
@@ -734,7 +734,7 @@ sub href (%) {
                # try to put as many parameters as possible in PATH_INFO:
                #   - project name
                #   - action
-               #   - hash or hash_base:filename
+               #   - hash or hash_base:/filename
 
                # When the script is the root DirectoryIndex for the domain,
                # $href here would be something like http://gitweb.example.com/
@@ -753,11 +753,11 @@ sub href (%) {
                        delete $params{'action'};
                }
 
-               # Finally, we put either hash_base:file_name or hash
+               # Finally, we put either hash_base:/file_name or hash
                if (defined $params{'hash_base'}) {
                        $href .= "/".esc_url($params{'hash_base'});
                        if (defined $params{'file_name'}) {
-                               $href .= ":".esc_url($params{'file_name'});
+                               $href .= ":/".esc_url($params{'file_name'});
                                delete $params{'file_name'};
                        }
                        delete $params{'hash'};