remember autofiles that were tried and failed to be added

This way, if an autofile is registered for a file that already exists,
it is remembered that it was tried, and it doesn't get recreated when
removed.
master
Joey Hess 2010-04-21 16:41:36 -04:00
parent fd6fb4c507
commit 167964b686
1 changed files with 16 additions and 8 deletions

View File

@ -682,17 +682,26 @@ sub gen_autofile ($$$) {
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 _) {
if (! defined $file) {
return;
}
if ((!defined $file) ||
(exists $wikistate{$autofiles{$autofile}{plugin}}{autofile}{$autofile})) {
# 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 (srcfile($autofile, 1) || file_pruned($autofile)) {
return;
}
if (-l $file || -d _ || -e _) {
return;
}
@ -706,7 +715,6 @@ sub gen_autofile ($$$) {
}
$autofiles{$autofile}{generator}->();
$wikistate{$autofiles{$autofile}{plugin}}{autofile}{$autofile}=1;
$pages->{$page}=1;
return 1;
}