Code

Merge branch 'jn/maint-do-not-match-with-unsanitized-searchtext'
authorJunio C Hamano <gitster@pobox.com>
Thu, 8 Mar 2012 21:04:49 +0000 (13:04 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 8 Mar 2012 21:04:49 +0000 (13:04 -0800)
By Jakub Narebski
* jn/maint-do-not-match-with-unsanitized-searchtext:
  gitweb: Fix fixed string (non-regexp) project search

Conflicts:
gitweb/gitweb.perl

1  2 
gitweb/gitweb.perl

index cd98888a9325889ce1c8e06124c31ea5da2eea87,a7e0d8f6887c7a9cf2671d9d419c8728a3924fcf..a8b5fad26631207fcc17a6339ba735877c0902bd
@@@ -3073,15 -2905,11 +3073,15 @@@ sub filter_forks_from_projects_list 
  sub search_projects_list {
        my ($projlist, %opts) = @_;
        my $tagfilter  = $opts{'tagfilter'};
-       my $searchtext = $opts{'searchtext'};
+       my $search_re = $opts{'search_regexp'};
  
        return @$projlist
-               unless ($tagfilter || $searchtext);
+               unless ($tagfilter || $search_re);
  
-                              $searchtext ? ('path', 'descr') : ());
 +      # searching projects require filling to be run before it;
 +      fill_project_list_info($projlist,
 +                             $tagfilter  ? 'ctags' : (),
++                             $search_re ? ('path', 'descr') : ());
        my @projects;
   PROJECT:
        foreach my $pr (@$projlist) {
@@@ -5482,20 -5087,19 +5482,20 @@@ sub git_project_list_body 
  
        my $check_forks = gitweb_check_feature('forks');
        my $show_ctags  = gitweb_check_feature('ctags');
 -      my $tagfilter = $show_ctags ? $cgi->param('by_tag') : undef;
 +      my $tagfilter = $show_ctags ? $input_params{'ctag'} : undef;
        $check_forks = undef
-               if ($tagfilter || $searchtext);
+               if ($tagfilter || $search_regexp);
  
        # filtering out forks before filling info allows to do less work
        @projects = filter_forks_from_projects_list(\@projects)
                if ($check_forks);
 -      @projects = fill_project_list_info(\@projects);
 -      # searching projects require filling to be run before it
 +      # search_projects_list pre-fills required info
        @projects = search_projects_list(\@projects,
-                                        'searchtext' => $searchtext,
+                                        'search_regexp' => $search_regexp,
                                         'tagfilter'  => $tagfilter)
-               if ($tagfilter || $searchtext);
+               if ($tagfilter || $search_regexp);
 +      # fill the rest
 +      @projects = fill_project_list_info(\@projects);
  
        $order ||= $default_projects_order;
        $from = 0 unless defined $from;