Code

gitweb: Git config keys are case insensitive, make config search too
authorJakub Narebski <jnareb@gmail.com>
Thu, 28 Jul 2011 21:38:03 +0000 (23:38 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 1 Aug 2011 01:39:19 +0000 (18:39 -0700)
"git config -z -l" that gitweb uses in git_parse_project_config() to
populate %config hash returns section and key names of config
variables in lowercase (they are case insensitive).  When checking
%config in git_get_project_config() we have to take it into account.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl

index 81dacf2b6a5d98550fa56adac9450560c550eee1..73492771d2ba4056b6f371328313d623a9550a0e 100755 (executable)
@@ -2510,6 +2510,13 @@ sub git_get_project_config {
 
        # key sanity check
        return unless ($key);
+       # only subsection, if exists, is case sensitive,
+       # and not lowercased by 'git config -z -l'
+       if (my ($hi, $mi, $lo) = ($key =~ /^([^.]*)\.(.*)\.([^.]*)$/)) {
+               $key = join(".", lc($hi), $mi, lc($lo));
+       } else {
+               $key = lc($key);
+       }
        $key =~ s/^gitweb\.//;
        return if ($key =~ m/\W/);