From: Joey Hess Date: Tue, 20 Jan 2009 21:30:59 +0000 (-0500) Subject: add human-readable error when unknown pagespec function is called X-Git-Tag: 3.03~55 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b4bbddbf3e3d8f188f161098166fb4a27207ad2b;p=ikiwiki.git add human-readable error when unknown pagespec function is called It used to replace unknown functions with "0" when translating a pagespec. Instead, replace it with a FailReason object. This way, the pagespec will still evaluate as before (possibly successfully if other terminals exist), but a human-readable error will be shown if the result is displayed. Also, an empty pagespec used to be replaced with "0", to avoid a eval error. Also use a FailReason here. --- diff --git a/IkiWiki.pm b/IkiWiki.pm index ca483a111..4d8415ffd 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1729,7 +1729,7 @@ sub pagespec_translate ($) { $code.="IkiWiki::PageSpec::match_$1(\$page, ".safequote($2).", \@_)"; } else { - $code.=' 0'; + $code.="IkiWiki::FailReason->new(".safequote(qq{unknown function in pagespec "$word"}).")"; } } else { @@ -1738,7 +1738,7 @@ sub pagespec_translate ($) { } if (! length $code) { - $code=0; + $code="IkiWiki::FailReason->new('empty pagespec')"; } no warnings;