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.
$code.="IkiWiki::PageSpec::match_$1(\$page, ".safequote($2).", \@_)";
}
else {
- $code.=' 0';
+ $code.="IkiWiki::FailReason->new(".safequote(qq{unknown function in pagespec "$word"}).")";
}
}
else {
}
if (! length $code) {
- $code=0;
+ $code="IkiWiki::FailReason->new('empty pagespec')";
}
no warnings;