aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2010-04-12 12:41:32 -0400
committerJoey Hess <joey@gnu.kitenet.net>2010-04-12 12:41:32 -0400
commitd50bd08439d5df17855b62f7c4d658027f93792d (patch)
treedda586c8949aa58057b0e86dae8d8e4ec0ee3b4a
parent0bfc364a7df124509855b8ed0b1b33ab5bc9ebbb (diff)
downloadikiwiki-d50bd08439d5df17855b62f7c4d658027f93792d.tar
ikiwiki-d50bd08439d5df17855b62f7c4d658027f93792d.tar.gz
refactor sortspec translation
-rw-r--r--IkiWiki.pm19
1 files changed, 9 insertions, 10 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 74d452c50..1730e476a 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -2102,6 +2102,8 @@ sub pagespec_match_list ($$;@) {
my $sub=pagespec_translate($pagespec);
error "syntax error in pagespec \"$pagespec\""
if ! defined $sub;
+ my $sort=sortspec_translate($params{sort}, $params{reverse})
+ if defined $params{sort};
my @candidates;
if (exists $params{list}) {
@@ -2115,21 +2117,18 @@ sub pagespec_match_list ($$;@) {
: keys %pagesources;
}
+ # clear params, remainder is passed to pagespec
+ $depends{$page}{$pagespec} |= ($params{deptype} || $DEPEND_CONTENT);
my $num=$params{num};
- my $sort=$params{sort};
- my $reverse=$params{reverse};
+ delete @params{qw{num deptype reverse sort filter list}};
+
# when only the top matches will be returned, it's efficient to
# sort before matching to pagespec,
if (defined $num && defined $sort) {
@candidates=IkiWiki::SortSpec::sort_pages(
- $sort, $reverse, @candidates);
+ $sort, @candidates);
}
- $depends{$page}{$pagespec} |= ($params{deptype} || $DEPEND_CONTENT);
-
- # clear params, remainder is passed to pagespec
- delete @params{qw{num deptype reverse sort filter list}};
-
my @matches;
my $firstfail;
my $count=0;
@@ -2155,7 +2154,7 @@ sub pagespec_match_list ($$;@) {
# sort after matching
if (! defined $num && defined $sort) {
return IkiWiki::SortSpec::sort_pages(
- $sort, $reverse, @matches);
+ $sort, @matches);
}
else {
return @matches;
@@ -2452,7 +2451,7 @@ package IkiWiki::SortSpec;
# This is in the SortSpec namespace so that the $a and $b that sort() uses
# are easily available in this namespace, for cmp functions to use them.
sub sort_pages {
- my $f=IkiWiki::sortspec_translate(shift, shift);
+ my $f=shift;
sort $f @_
}