X-Git-Url: http://git.rot13.org//?a=blobdiff_plain;f=lib%2FBackupPC%2FFileZIO.pm;h=d9206752f0a43a8d12c92bf455bf441699591467;hb=66d662b5a21271649aad1562bd931beab0c0deb3;hp=0b2387334dbc2b7a150be3058604deeaf83fd24b;hpb=89175f12447774d75a0926230615bfa900bb62d9;p=BackupPC.git diff --git a/lib/BackupPC/FileZIO.pm b/lib/BackupPC/FileZIO.pm index 0b23873..d920675 100644 --- a/lib/BackupPC/FileZIO.pm +++ b/lib/BackupPC/FileZIO.pm @@ -43,6 +43,7 @@ use vars qw( $CompZlibOK ); use Carp; use File::Path; use File::Copy; +use Encode; # # For compressed files we have a to careful about running out of memory @@ -126,6 +127,16 @@ sub compOk return $CompZlibOK; } +# +# Request utf8 strings with readLine interface +# +sub utf8 +{ + my($self, $mode) = @_; + + $self->{utf8} = $mode; +} + sub myDeflateInit { my $self = shift; @@ -226,6 +237,7 @@ sub readLine if ( $str eq "" ) { $str = $self->{readLineFrag}; $self->{readLineFrag} = ""; + $str = decode_utf8($str) if ( $self->{utf8} ); return $str; } @{$self->{readLineBuf}} = split(/\n/, $self->{readLineFrag} . $str); @@ -235,7 +247,9 @@ sub readLine $self->{readLineFrag} = ""; } } - return shift(@{$self->{readLineBuf}}) . "\n"; + $str = shift(@{$self->{readLineBuf}}) . "\n"; + $str = decode_utf8($str) if ( $self->{utf8} ); + return $str; } sub rewind