Browse Source

Merge branch 'gfi-maint' into gfi-master

* gfi-maint:
  Teach import-tars about GNU tar's @LongLink extension.
maint
Shawn O. Pearce 18 years ago
parent
commit
db81e67a7d
  1. 19
      contrib/fast-import/import-tars.perl

19
contrib/fast-import/import-tars.perl

@ -52,6 +52,25 @@ foreach my $tar_file (@ARGV) @@ -52,6 +52,25 @@ foreach my $tar_file (@ARGV)
Z8 Z1 Z100 Z6
Z2 Z32 Z32 Z8 Z8 Z*', $_;
last unless $name;
if ($name eq '././@LongLink') {
# GNU tar extension
if (read(I, $_, 512) != 512) {
die ('Short archive');
}
$name = unpack 'Z257', $_;
next unless $name;

my $dummy;
if (read(I, $_, 512) != 512) {
die ('Short archive');
}
($dummy, $mode, $uid, $gid, $size, $mtime,
$chksum, $typeflag, $linkname, $magic,
$version, $uname, $gname, $devmajor, $devminor,
$prefix) = unpack 'Z100 Z8 Z8 Z8 Z12 Z12
Z8 Z1 Z100 Z6
Z2 Z32 Z32 Z8 Z8 Z*', $_;
}
next if $name =~ m{/\z};
$mode = oct $mode;
$size = oct $size;

Loading…
Cancel
Save