diff options
-rw-r--r-- | IkiWiki.pm | 21 | ||||
-rw-r--r-- | IkiWiki/Plugin/meta.pm | 4 |
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"); } } |