Jeff King <peff@xxxxxxxx> writes: > On Thu, Nov 08, 2012 at 08:40:11PM -0800, Junio C Hamano wrote: > >> Looking at the code before this part: >> >> 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/); >> >> the new code is munding the $hi and $mi parts, while the mistaken >> configuration this patch is trying to correct is about the $lo part, >> and possibly the $hi part, but never the $mi part. > > Good catch. I think the "return" in the existing code suffers from the > same problem: it will bail on non-word characters in the $mi part, but > that part should allow arbitrary characters. I am tired of keeping the "expecting reroll" entries and having to worry about them, so let's do this -- >8 -- Subject: [squash] gitweb: make remote_heads config setting work Only the top-level and bottom-level names are case insensitive and spelled without "_". Protect future support of subsection names from name mangling. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- gitweb/gitweb.perl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git c/gitweb/gitweb.perl w/gitweb/gitweb.perl index f2144c8..c421fa4 100755 --- c/gitweb/gitweb.perl +++ w/gitweb/gitweb.perl @@ -2697,13 +2697,15 @@ sub git_get_project_config { # only subsection, if exists, is case sensitive, # and not lowercased by 'git config -z -l' if (my ($hi, $mi, $lo) = ($key =~ /^([^.]*)\.(.*)\.([^.]*)$/)) { + $lo =~ s/_//g; $key = join(".", lc($hi), $mi, lc($lo)); + return if ($lo =~ /\W/ || $hi =~ /\W/); } else { $key = lc($key); + $key =~ s/_//g; + return if ($key =~ /\W/); } $key =~ s/^gitweb\.//; - $key =~ s/_//g; - return if ($key =~ m/\W/); # type sanity check if (defined $type) { -- 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