X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/9951060f624b69053cff2bba88dab6e0ed8eec10..b28323e76a98d56fa4af813338a134dea0106626:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 14f6f9d5f..49d080c16 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -517,7 +517,7 @@ sub link_types_changed ($$) { my $old = shift; return 0 if !defined $new && !defined $old; - return 1 if !defined $new || !defined $old; + return 1 if (!defined $new && %$old) || (!defined $old && %$new); while (my ($type, $links) = each %$new) { foreach my $link (keys %$links) { @@ -681,28 +681,36 @@ sub gen_autofile ($$$) { my $autofile=shift; my $pages=shift; my $del=shift; - - if (srcfile($autofile, 1) || file_pruned($autofile)) { + + if (file_pruned($autofile)) { return; } - - my $file="$config{srcdir}/$autofile" =~ /$config{wiki_file_regexp}/; # untaint - if (! defined $file || -l $file || -d _ || -e _) { + + my ($file)="$config{srcdir}/$autofile" =~ /$config{wiki_file_regexp}/; # untaint + if (! defined $file) { + return; + } + + # Remember autofiles that were tried, and never try them again later. + if (exists $wikistate{$autofiles{$autofile}{plugin}}{autofile}{$autofile}) { return; } + $wikistate{$autofiles{$autofile}{plugin}}{autofile}{$autofile}=1; - if ((!defined $file) || - (exists $wikistate{$autofiles{$autofile}{plugin}}{autofile_deleted})) { + if (srcfile($autofile, 1) || file_pruned($autofile)) { return; } + if (-l $file || -d _ || -e _) { + return; + } + my $page = pagename($file); if ($pages->{$page}) { return; } - if (grep { $_ eq $file } @$del) { - $wikistate{$autofiles{$autofile}{plugin}}{autofile_deleted}=1; + if (grep { $_ eq $autofile } @$del) { return; }