X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FBackupPC%2FFileZIO.pm;h=4bae50a0ce97572309466fa018ae4e38b8b8c1de;hb=a7690ea45972ea3db587bd94fa573edf20d75c91;hp=05f28e6f4797ecf6e786f2038fcad7d86ca4b4cb;hpb=e9453b7611be63303572ae443d5fb56b73364678;p=BackupPC.git diff --git a/lib/BackupPC/FileZIO.pm b/lib/BackupPC/FileZIO.pm index 05f28e6..4bae50a 100644 --- a/lib/BackupPC/FileZIO.pm +++ b/lib/BackupPC/FileZIO.pm @@ -11,7 +11,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001 Craig Barratt +# Copyright (C) 2001-2003 Craig Barratt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ # #======================================================================== # -# Version 1.6.0_CVS, released 10 Dec 2002. +# Version 2.1.0_CVS, released 3 Jul 2003. # # See http://backuppc.sourceforge.net. # @@ -95,10 +95,11 @@ sub open $fh = $fileName; } else { if ( $write ) { - open(FH, ">$fileName") || return; + open(FH, ">", $fileName) || return; } else { - open(FH, "<$fileName") || return; + open(FH, "<", $fileName) || return; } + binmode(FH); $fh = *FH; } $compLevel = 0 if ( !$CompZlibOK ); @@ -246,6 +247,7 @@ sub write my $n = length($$dataRef); return if ( !$self->{write} ); + print($$dataRef) if ( $self->{writeTeeStdout} ); return 0 if ( $n == 0 ); if ( !$self->{compress} ) { # @@ -303,6 +305,14 @@ sub name return $self->{name}; } +sub writeTeeStdout +{ + my($self, $param) = @_; + + $self->{writeTeeStdout} = $param if ( defined($param) ); + return $self->{writeTeeStdout}; +} + sub close { my($self) = @_; @@ -343,7 +353,8 @@ sub compressCopy if ( $CompZlibOK && $compress > 0 ) { my $fh = BackupPC::FileZIO->open($destFileZ, 1, $compress); my $data; - if ( defined($fh) && open(LOG, $srcFile) ) { + if ( defined($fh) && open(LOG, "<", $srcFile) ) { + binmode(LOG); while ( sysread(LOG, $data, 65536) > 0 ) { $fh->write(\$data); }