From aaa72a3a80f89da0aec59360db11c7aa219058a7 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 21 Mar 2012 15:47:34 -0400 Subject: [PATCH] inline: When the pagenames list includes pages that do not exist, skip them. bestlink returns '' if no existing page matches a link. This propigated through inline and other plugins, causing uninitialized value warnings, and in some cases (when filecheck was enabled) making the whole directive fail. Skipping the empty results fixes that, but this is papering over another problem: If the missing page is later added, there is not dependency information to know that the inline needs to be updated. Perhaps smcv will fix that later. --- IkiWiki/Plugin/inline.pm | 22 +++------------------- debian/changelog | 2 ++ 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index 687c8a48f..62910972f 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -19,7 +19,7 @@ sub import { hook(type => "checkconfig", id => "inline", call => \&checkconfig); hook(type => "sessioncgi", id => "inline", call => \&sessioncgi); hook(type => "preprocess", id => "inline", - call => \&IkiWiki::preprocess_inline, scan => 1); + call => \&IkiWiki::preprocess_inline); hook(type => "pagetemplate", id => "inline", call => \&IkiWiki::pagetemplate_inline); hook(type => "format", id => "inline", call => \&format, first => 1); @@ -155,23 +155,6 @@ sub preprocess_inline (@) { if (! exists $params{pages} && ! exists $params{pagenames}) { error gettext("missing pages parameter"); } - - if (! defined wantarray) { - # Running in scan mode: only do the essentials - - if (yesno($params{trail}) && IkiWiki::Plugin::trail->can("preprocess_trailitems")) { - # default to sorting age, the same as inline itself, - # but let the params override that - IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age', %params); - } - - return; - } - - if (yesno($params{trail}) && IkiWiki::Plugin::trail->can("preprocess_trailitems")) { - scalar IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age', %params); - } - my $raw=yesno($params{raw}); my $archive=yesno($params{archive}); my $rss=(($config{rss} || $config{allowrss}) && exists $params{rss}) ? yesno($params{rss}) : $config{rss}; @@ -211,7 +194,8 @@ sub preprocess_inline (@) { } } - @list = map { bestlink($params{page}, $_) } + @list = grep { $_ ne '' } + map { bestlink($params{page}, $_) } split ' ', $params{pagenames}; if (yesno($params{reverse})) { diff --git a/debian/changelog b/debian/changelog index 5820009ef..0eca18aed 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ ikiwiki (3.20120204) UNRELEASED; urgency=low * Remove dead link from plugins/teximg. Closes: #664885 + * inline: When the pagenames list includes pages that do not exist, skip + them. -- Joey Hess Wed, 21 Mar 2012 14:33:14 -0400 -- 2.32.0.93.g670b81a890