Revert the effects of find_del_files() for (re)autoadded files.
authorDavid Riebenbauer <davrieb@liegesta.at>
Tue, 2 Feb 2010 10:01:24 +0000 (11:01 +0100)
committerDavid Riebenbauer <davrieb@liegesta.at>
Tue, 2 Feb 2010 13:04:39 +0000 (14:04 +0100)
This also means that if autoadded files are deleted they will just be
recreated.

IkiWiki.pm
IkiWiki/Render.pm

index 115c512d3eba06395390dce71734b49e3eb94c37..ad9fb7c7907bc68d8162340378a891396dd7416b 100644 (file)
@@ -14,7 +14,8 @@ use open qw{:utf8 :std};
 use vars qw{%config %links %oldlinks %pagemtime %pagectime %pagecase
            %pagestate %wikistate %renderedfiles %oldrenderedfiles
            %pagesources %destsources %depends %depends_simple %hooks
-           %forcerebuild %loaded_plugins @autofiles};
+           %forcerebuild %loaded_plugins @autofiles %dellinks
+           %delrenderedfiles};
 
 use Exporter q{import};
 our @EXPORT = qw(hook debug error template htmlpage deptype
index dd4d9ca0cfe4994544b6d2a0ddebb57a7fc52e8e..d2fa80fbb8fa5f1678627415548fa474ad11d0b0 100644 (file)
@@ -392,7 +392,9 @@ sub find_del_files ($) {
                        else {
                                push @del, $pagesources{$page};
                        }
+                       $dellinks{$page}= $links{$page};
                        $links{$page}=[];
+                       $delrenderedfiles{$page}= $renderedfiles{$page};
                        $renderedfiles{$page}=[];
                        $pagemtime{$page}=0;
                }
@@ -642,8 +644,14 @@ sub refresh () {
                scan($file);
        }
 
+       my %del_hash = map {$_, 1} @$del;
        while (my $autofile = shift (@autofiles)) {
                my $page=pagename($autofile);
+    if (exists $del_hash{$page}) {
+                       $links{$page}= $dellinks{$page};
+                       $renderedfiles{$page}= $delrenderedfiles{$page};
+                       delete $del_hash{$page};
+               }
                if ($pages->{$page}) {
                        debug(sprintf(gettext("%s has multiple possible source pages"), $page));
                }
@@ -655,6 +663,7 @@ sub refresh () {
 
                scan($autofile);
        }
+       $del = [keys %del_hash];
 
        calculate_links();