mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
Merge branch 'gfi-maint' into gfi-master
* gfi-maint: Teach import-tars about GNU tar's @LongLink extension.
This commit is contained in:
commit
db81e67a7d
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue