diff options
-rw-r--r-- | IkiWiki.pm | 13 | ||||
-rw-r--r-- | debian/changelog | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index 668de7e93..bd804269d 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1106,6 +1106,8 @@ sub add_depends ($$) { #{{{ my $page=shift; my $pagespec=shift; + return unless pagespec_valid($pagespec); + if (! exists $depends{$page}) { $depends{$page}=$pagespec; } @@ -1234,6 +1236,17 @@ sub pagespec_match ($$;@) { #{{{ return $ret; } #}}} +sub pagespec_valid ($) { #{{{ + my $spec=shift; + + # used by generated code + my $page=""; + my @params; + + eval pagespec_translate($spec); + return ! $@; +} #}}} + package IkiWiki::FailReason; use overload ( #{{{ diff --git a/debian/changelog b/debian/changelog index c9fd64a2a..dc950790f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -45,6 +45,8 @@ ikiwiki (2.41) UNRELEASED; urgency=low * external: Add getargv and setargv methods to allow access to ikiwiki's @ARGV. * Correct bug in encoding of %pagestate keys, fixes edittemplate. + * Detect invalid pagespecs and do not merge them in add_depends, + as that can result in a broken merged pagespec that matches nothing. -- martin f. krafft <madduck@debian.org> Sun, 02 Mar 2008 17:46:38 +0100 |