Man page: Move the description of --info=progress2 to a better place.
[rsync/rsync.git] / support / file-attr-restore
index 8c25310..a053e1d 100755 (executable)
@@ -32,15 +32,15 @@ my $detail_line = qr{
     \d+ \s+                   # ignore size
     ([-bcdlps])               # 1. File type
     ( [-r][-w][-xsS]          # 2. user-permissions
-      [-r][-w][-xsS]          # 3. group-permissions
-      [-r][-w][-xtT] ) \s+    # 4. other-permissions
+      [-r][-w][-xsS]          #    group-permissions
+      [-r][-w][-xtT] ) \s+    #    other-permissions
     \d+ \s+                   # ignore number of links
-    (\S+) \s+                 # 5. owner
-    (\S+) \s+                 # 6. group
+    (\S+) \s+                 # 3. owner
+    (\S+) \s+                 # 4. group
     (?: \d+ \s+ )?            # ignore size (when present)
     \w+ \s+ \d+ \s+           # ignore month and date
     \d+ (?: : \d+ )? \s+      # ignore time or year
-    ([^\r\n]+) $              # 7. name
+    ([^\r\n]+) $              # 5. name
 }x;
 
 while (<>) {
@@ -48,8 +48,7 @@ while (<>) {
     die "Invalid input line $.:\n$_" unless defined $name;
     die "A filename is not properly escaped:\n$_" unless $name =~ /^[^"\\]*(\\(\d\d\d|\D)[^"\\]*)*$/;
     my $fn = $name;
-    $fn =~ s/([\$\@\%])/\\$1/g;
-    $fn = eval "\"$fn\"";
+    $fn =~ s/\\(\d+|.)/ eval "\"\\$1\"" /eg;
     if ($type eq '-') {
        undef $type unless -f $fn;
     } elsif ($type eq 'd') {