diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-03-17 14:04:59 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-03-17 14:04:59 -0400 |
commit | 8a29361c321b54607ba5b4a7675508325b450110 (patch) | |
tree | 3f4936d273ab9e79530f6e7c260d14216f11a14e /IkiWiki.pm | |
parent | 6ce7454cc33e94e22490c202210eff481acfd0c1 (diff) | |
download | ikiwiki-8a29361c321b54607ba5b4a7675508325b450110.tar ikiwiki-8a29361c321b54607ba5b4a7675508325b450110.tar.gz |
* Detect invalid pagespecs and do not merge them in add_depends,
as that can result in a broken merged pagespec that matches nothing.
Diffstat (limited to 'IkiWiki.pm')
-rw-r--r-- | IkiWiki.pm | 13 |
1 files changed, 13 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 ( #{{{ |