summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki.pm21
-rw-r--r--IkiWiki/Plugin/meta.pm4
2 files changed, 16 insertions, 9 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index c250d50ad..2064c881a 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1789,13 +1789,12 @@ sub add_depends ($$;@) {
}
# Analyse the pagespec, and match it against all pages
- # to get a list of influences, and add explicit
- # content dependencies for those.
+ # to get a list of influences, and add explicit dependencies
+ # for those.
my $sub=pagespec_translate($pagespec);
return if $@;
foreach my $p (keys %pagesources) {
my $r=$sub->($p, location => $page );
- next unless $r;
my %i=$r->influences;
foreach my $i (keys %i) {
$depends_simple{$page}{lc $i} |= $i{$i};
@@ -2026,7 +2025,13 @@ sub new {
}
sub influences {
- return %{$_[0][1]};
+ my $this=shift;
+ if (! @_) {
+ return %{$this->[1]};
+ }
+ else {
+ $this->[1]={@_};
+ }
}
sub merge_influences {
@@ -2090,7 +2095,7 @@ sub match_link ($$;@) {
my $from=exists $params{location} ? $params{location} : '';
my $links = $IkiWiki::links{$page};
- return IkiWiki::FailReason->new("$page has no links", $page => $IkiWiki::DEPEND_LINKS)
+ return IkiWiki::FailReason->new("$page has no links")
unless $links && @{$links};
my $bestlink = IkiWiki::bestlink($from, $link);
foreach my $p (@{$links}) {
@@ -2107,11 +2112,13 @@ sub match_link ($$;@) {
if match_glob($p_rel, $link, %params);
}
}
- return IkiWiki::FailReason->new("$page does not link to $link", $page => $IkiWiki::DEPEND_LINKS);
+ return IkiWiki::FailReason->new("$page does not link to $link");
}
sub match_backlink ($$;@) {
- return match_link($_[1], $_[0], @_);
+ my $ret=match_link($_[1], $_[0], @_);
+ $ret->influences($_[1] => $IkiWiki::DEPEND_LINKS);
+ return $ret;
}
sub match_created_before ($$;@) {
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index c160e7eba..da3e62233 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -294,11 +294,11 @@ sub match {
return IkiWiki::SuccessReason->new("$re matches $field of $page", $page => $IkiWiki::DEPEND_CONTENT);
}
else {
- return IkiWiki::FailReason->new("$re does not match $field of $page", $page => $IkiWiki::DEPEND_CONTENT);
+ return IkiWiki::FailReason->new("$re does not match $field of $page");
}
}
else {
- return IkiWiki::FailReason->new("$page does not have a $field", $page => $IkiWiki::DEPEND_CONTENT);
+ return IkiWiki::FailReason->new("$page does not have a $field");
}
}