diff -ru ../orca-0.26/lib/Orca/OpenFileHash.pm ./lib/Orca/OpenFileHash.pm --- ../orca-0.26/lib/Orca/OpenFileHash.pm Thu Mar 9 12:27:11 2000 +++ ./lib/Orca/OpenFileHash.pm Sat Aug 25 13:21:15 2001 @@ -212,6 +212,16 @@ } } +sub is_pipe { + my ($self, $fid) = @_; + + if (defined (my $ref = $self->[I_HASH]{$fid})) { + return $ref->[I_FID_IS_PIPE]; + } else { + return; + } +} + sub is_open { defined $_[0]->[I_HASH]{$_[1]}; } diff -ru ../orca-0.26/lib/Orca/SourceFile.pm ./lib/Orca/SourceFile.pm --- ../orca-0.26/lib/Orca/SourceFile.pm Thu Mar 2 11:05:23 2000 +++ ./lib/Orca/SourceFile.pm Sat Aug 25 13:24:12 2001 @@ -870,7 +870,9 @@ $self->[I_LAST_READ_TIME] = -1; $number_added += $self->load_new_data; } - } elsif ($close_once_done or $self->[I_REOPEN]) { + } elsif ($close_once_done or + $self->[I_REOPEN] or + $open_file_cache->is_pipe($fid)) { $open_file_cache->close($fid) or warn "$0: warning: cannot close `$sfile_fids[$fid]' for reading: $!\n"; }