From 8a29361c321b54607ba5b4a7675508325b450110 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 17 Mar 2008 14:04:59 -0400 Subject: * Detect invalid pagespecs and do not merge them in add_depends, as that can result in a broken merged pagespec that matches nothing. --- IkiWiki.pm | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'IkiWiki.pm') 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 ( #{{{ -- cgit v1.2.3