X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FView.pm;h=d879de2a5b827e55303827fb8c9686262e446e93;hp=6dc0f8d4c408cc4c4cfd72a5d8588c5304cca176;hb=bb34218a2b83c9b18460b35e0e34bd48d0e07694;hpb=546f9691f118c9ea2d164f377994b4a018a60d02 diff --git a/lib/BackupPC/View.pm b/lib/BackupPC/View.pm index 6dc0f8d..d879de2 100644 --- a/lib/BackupPC/View.pm +++ b/lib/BackupPC/View.pm @@ -31,7 +31,7 @@ # #======================================================================== # -# Version 2.1.0, released 20 Jun 2004. +# Version 3.0.0beta0, released 11 Jul 2006. # # See http://backuppc.sourceforge.net. # @@ -252,7 +252,9 @@ sub shareList $file = $1 if ( $file =~ /(.*)/ ); next if ( $file eq "attrib" && $mangle || $file eq "." - || $file eq ".." ); + || $file eq ".." + || $file eq "backupInfo" + ); my $fileUM = $file; $fileUM = $m->{bpc}->fileNameUnmangle($fileUM) if ( $mangle ); push(@shareList, $fileUM); @@ -456,6 +458,17 @@ sub dirHistory $files->{$fileUM}[$i]{inode} = $s[1]; } + # + # Flag deleted files + # + if ( defined($attr) ) { + my $a = $attr->get; + foreach my $fileUM ( keys(%$a) ) { + next if ( $a->{$fileUM}{type} != BPC_FTYPE_DELETED ); + $files->{$fileUM}[$i]{type} = BPC_FTYPE_DELETED; + } + } + # # Merge old backups. Don't merge directories from old # backups because every backup has an accurate directory @@ -471,18 +484,19 @@ sub dirHistory $files->{$fileUM}[$i] = $files->{$fileUM}[$k]; } } + } - # - # Finally, remove deleted files - # - if ( defined($attr) ) { - my $a = $attr->get; - foreach my $fileUM ( keys(%$a) ) { - next if ( $a->{$fileUM}{type} != BPC_FTYPE_DELETED ); - $files->{$fileUM}[$i] = undef if ( defined($files->{$fileUM}) ); - } - } + # + # Remove deleted files + # + for ( $i = 0 ; $i < @{$m->{backups}} ; $i++ ) { + foreach my $fileUM ( keys(%$files) ) { + next if ( !defined($files->{$fileUM}[$i]) + || $files->{$fileUM}[$i]{type} != BPC_FTYPE_DELETED ); + $files->{$fileUM}[$i] = undef; + } } + #print STDERR "Returning:\n", Dumper($files); return $files; }