* Added BackupPC::Xfer::Protocol as a common class for each Xfer
[BackupPC.git] / lib / BackupPC / Attrib.pm
index e38f7cb..046cf87 100644 (file)
@@ -12,7 +12,7 @@
 #   Craig Barratt  <cbarratt@users.sourceforge.net>
 #
 # COPYRIGHT
-#   Copyright (C) 2001-2003  Craig Barratt
+#   Copyright (C) 2001-2007  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
@@ -30,7 +30,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0alpha, released 23 Jan 2006.
+# Version 3.1.0, released 25 Nov 2007.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -43,6 +43,7 @@ use strict;
 use Carp;
 use File::Path;
 use BackupPC::FileZIO;
+use Encode qw/from_to/;
 require Exporter;
 
 use vars qw( @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS );
@@ -198,6 +199,8 @@ sub read
     my($data);
 
     $file = $a->fileName($dir, $file);
+    from_to($file, "utf8", $a->{charsetLegacy})
+                    if ( $a->{charsetLegacy} ne "" );
     my $fd = BackupPC::FileZIO->open($file, 0, $a->{compress});
     if ( !$fd ) {
        $a->{_errStr} = "Can't open $file";
@@ -240,6 +243,9 @@ sub read
            }
        }
        (my $fileName, $data) = unpack("a$len a*", $data);
+
+        from_to($fileName, $a->{charsetLegacy}, "utf8")
+                        if ( $a->{charsetLegacy} ne "" );
        my $nFldsW = @FldsUnixW;
        my $nFldsN = @FldsUnixN;
        if ( length($data) < 5 * $nFldsW + 4 * $nFldsN ) {