Re: [PATCH (BUGFIX)] gitweb: Fix fixed string (non-regexp) project search
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Mar 4, 2012, 18:00 UTC
- Message-ID
- <201203041900.32114.jnareb@gmail.com>
- In-Reply-To
- <201203031156.00948.jnareb@gmail.com>
Jakub Narebski wrote:
Show 45 quoted lines
> On Sat, 3 Mar 2012, Junio C Hamano wrote: >> Jakub Narebski <jnareb@gmail.com> writes: >> >>> Use $search_regexp, where regex metacharacters are quoted, for >>> searching projects list, rather than $searchtext, which contains >>> original search term. >>> >>> Reported-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> >>> Signed-off-by: Jakub Narebski <jnareb@gmail.com> >>> --- >>> I think this bug was here from the very beginning of adding project >>> search, i.e. from v1.6.0.2-446-g0d1d154 (gitweb: Support for simple >>> project search form, 2008-10-03) which was present since 1.6.1 >>> >>> On Fri, 2 Mar 2012, Ramsay Jones wrote: >>> >>>> This patch solves the problem for me when using a regex search >>>> (re checkbox checked), but *not* for a non-regex search. >>>> >> >> This patch depends on the more recent changes than the regexp fix, no? I >> was hoping that we could merge the earlier fix for the regexp case to >> older maintenance tracks later, but if we were going to do so, we would >> want to do the same for a fix for fixed-string case. > > The regexp and non-regexp bugs and fixes are different. > > The regexp "bug" was just us forgetting that regexp is provided by user > input, and should be validated. The bug as reported by Ramsay was here > from the very beginning, i.e. commit 0e55991 (gitweb: Clearly distinguish > regexp / exact match searches, 2008-02-26), which was present in v1.5.1 > if I have checked correctly. The fix is about adding new code and should > apply cleanly to 'maint' and even to older versions; the only trouble > with older version might be whitespace issue related to refactoring > code into subroutines. > > The non-regexp project search bug was using $searchtext instead of > $search_regexp as search regexp in gitweb. The bug was present from > the very addition of project search, namely commit 0d1d154 (gitweb: > Support for simple project search form, 2008-10-03), which was present > in v1.5.1 if I have checked correctly. Unfortunately the fix affects > code that was changed recently in a1e1b2d (gitweb: improve usability > of projects search form, 2012-01-31); I'll try to come up with equivalent > patch to 'maint' soon (if the current one does not apply, and I guess it > doesn't).
In other words: while "*foo" is invalid regular expression, it is perfectly valid fixed string search term (which translates to "\*foo" regexp).
-- Jakub Narebski Poland