dupemerge: clean up stats_blob output if --progress
[dupemerge] / faster-dupemerge
index 9920a26bf2bb531bd2a22f2339b83c601aee2cb3..fe433f79283d5646cb5c3781aae75505f6710940 100755 (executable)
@@ -340,10 +340,11 @@ hash_file:
                        print STDERR "\t\tDigesting file $filename\n" if $debug;
                        if ((-l $filename) || ! -f _) {
                                warn "Bogon file " . tick_quote($filename);
-                               $surprises++;
+                               $input_bogons++;
+                               delete $inode_to_file_name{$candidate}->{$filename};
                                next;
                        }
-                       eval { 
+                       eval {
                                $digest = digest($filename); 
                        };
                        if ($@) {
@@ -562,10 +563,10 @@ candidate_file:
                        delete $inode_to_file_name{$candidate};
                }
        }
+       print STDERR '.' if $progress;
 
 end_merge:
 
-       print STDERR '.' if $progress;
        print STDERR "Merge done.\n" if $debug;
        undef %inode_to_file_name;
 }
@@ -578,12 +579,6 @@ while (<FIND>) {
 
        print STDERR "weak_key=$weak_key inode=$inode name=$name\n" if $debug;
 
-       unless (! (-l $name) && (-f _)) {
-               warn "Bogon file " . tick_quote($name);
-               $input_bogons++;
-               next;
-       }
-
        $input_links++;
        merge_files if $weak_key ne $current_key;
        $current_key = $weak_key;
@@ -642,6 +637,7 @@ if ($humane) {
 
 $stats_blob =~ s/([^\n]*\n[^\n]*? )(\s+)( [^\n]*\n)/$1 . ('.' x length($2)) . $3/oemg;
 
+print STDERR "\n" if $progress;
 print STDERR $stats_blob;
 
 exit(0);