From: Joey Hess Date: Thu, 23 Apr 2009 20:20:18 +0000 (-0400) Subject: pagespec_match_list * optimisation X-Git-Tag: 3.11~41 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/2f96c49bd1826ecb213ae025ad456a714aa04863?ds=sidebyside pagespec_match_list * optimisation Add an optimisation for the semi-common case of a "*" pagespec. Can avoid doing any real processing in this case. --- diff --git a/IkiWiki.pm b/IkiWiki.pm index e260fffea..e8c0c7abc 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1837,6 +1837,8 @@ sub pagespec_match_list ($$;@) { my $spec=shift; my @params=@_; + return @$pages if $spec eq '*'; # optimisation + my $sub=pagespec_translate($spec); error "syntax error in pagespec \"$spec\"" if $@ || ! defined $sub; diff --git a/IkiWiki/Plugin/pagecount.pm b/IkiWiki/Plugin/pagecount.pm index f8881a04b..a561e58e5 100644 --- a/IkiWiki/Plugin/pagecount.pm +++ b/IkiWiki/Plugin/pagecount.pm @@ -26,9 +26,7 @@ sub preprocess (@) { # register a dependency. add_depends($params{page}, $params{pages}); - my @pages=keys %pagesources; - @pages=pagespec_match_list(\@pages, $params{pages}, location => $params{page}) - if $params{pages} ne "*"; # optimisation; + my @pages=pagespec_match_list([keys %pagesources], $params{pages}, location => $params{page}); return $#pages+1; }