Merge branch 'gfi-maint' into gfi-master

* gfi-maint:
  Teach import-tars about GNU tar's @LongLink extension.
This commit is contained in:
Shawn O. Pearce 2007-05-02 13:24:10 -04:00
commit db81e67a7d

View file

@ -52,6 +52,25 @@
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;