X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FFileZIO.pm;h=ca3d1a93de194576278c5dc96a0a2fb854bff07f;hp=d9206752f0a43a8d12c92bf455bf441699591467;hb=c895c85bd282936cd38d900904bd94734fdc8248;hpb=66d662b5a21271649aad1562bd931beab0c0deb3 diff --git a/lib/BackupPC/FileZIO.pm b/lib/BackupPC/FileZIO.pm index d920675..ca3d1a9 100644 --- a/lib/BackupPC/FileZIO.pm +++ b/lib/BackupPC/FileZIO.pm @@ -11,7 +11,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001-2003 Craig Barratt +# Copyright (C) 2001-2009 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 3.0.0alpha, released 23 Jan 2006. +# Version 3.2.0, released 31 Jul 2010. # # See http://backuppc.sourceforge.net. # @@ -173,13 +173,13 @@ sub read my $chr = substr($self->{dataIn}, 0, 1); $self->{inflateStart} = 0; - if ( $chr eq chr(0xd6) ) { + if ( $chr eq chr(0xd6) || $chr eq chr(0xd7) ) { # - # Flag 0xd6 means this is a compressed file with + # Flag 0xd6 or 0xd7 means this is a compressed file with # appended md4 block checksums for rsync. Change # the first byte back to 0x78 and proceed. # - ##print("Got 0xd6 block: normal\n"); + ##print("Got 0xd6/0xd7 block: normal\n"); substr($self->{dataIn}, 0, 1) = chr(0x78); } elsif ( $chr eq chr(0xb3) ) { # @@ -248,7 +248,11 @@ sub readLine } } $str = shift(@{$self->{readLineBuf}}) . "\n"; - $str = decode_utf8($str) if ( $self->{utf8} ); + if ( $self->{utf8} ) { + my $strUtf8 = decode_utf8($str, 0); + $strUtf8 = $str if ( length($strUtf8) == 0 ); + return $strUtf8; + } return $str; }