-+ my($sum4, $sum5);
-+ while (1) {
-+ while (sysread(IN, $_, 64*1024)) {
-+ $md4->add($_);
-+ $md5->add($_);
-+ }
-+ $sum4 = $md4->hexdigest;
-+ $sum5 = $md5->hexdigest;
-+ print " $sum4 $sum5" if $verbosity > 2;
-+ print " $fn\n" if $verbosity > 1;
-+ my($size2,$mtime2,$ctime2,$inode2) = (stat(IN))[7,9,10,1];
-+ if ($ignore_ctime_and_inode) {
-+ $ctime = $ctime2;
-+ $inode = $inode2;
-+ }
-+ last if $size == $size2 && $mtime == $mtime2
-+ && $ctime == $ctime2 && $inode == $inode2;
-+ $size = $size2;
-+ $mtime = $mtime2;
-+ $ctime = $ctime2;
-+ $inode = $inode2;
-+ sysseek(IN, 0, 0);
++ close IN;
++
++ if ($check_opt) {
++ my $dif;
++ if (!defined $ref) {
++ $dif = 'MISSING';
++ } elsif ($sum4 ne $$ref[1] || $sum5 ne $$ref[2]) {
++ $dif = 'FAILED';
++ } else {
++ print " OK\n" if $verbosity > 1;
++ next;
++ }
++ if ($verbosity < 2) {
++ print $verbosity ? ' ' : "$reldir/";
++ print $fn;