summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/CPAN/Tarzip.pm
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-04-23 21:46:20 +0000
committerKarl Berry <karl@freefriends.org>2014-04-23 21:46:20 +0000
commit300c1eb6d37d46078d448d6d58938d5a80cd68ff (patch)
tree23a0a8b9f8f5460b405119c4d3c163d2d488ca5e /Master/tlpkg/tlperl/lib/CPAN/Tarzip.pm
parented55d86b7c5e18f6eccce80a1fb1423ca40a23b5 (diff)
(tl)perl 5.18.2 for windows from siep
git-svn-id: svn://tug.org/texlive/trunk@33648 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/CPAN/Tarzip.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Tarzip.pm18
1 files changed, 16 insertions, 2 deletions
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Tarzip.pm b/Master/tlpkg/tlperl/lib/CPAN/Tarzip.pm
index 972df6ca06f..708a5794f34 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Tarzip.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Tarzip.pm
@@ -343,10 +343,20 @@ Can't continue cutting file '$file'.
}
$system = qq{$tarcommand x${tar_verb}f "$file"};
$CPAN::Frontend->myprint(qq{Using Tar:$system:\n});
- if (system($system)==0) {
+ my $ret = system($system);
+ if ($ret==0) {
$CPAN::Frontend->myprint(qq{Untarred $file successfully\n});
} else {
- $CPAN::Frontend->mydie(qq{Couldn\'t untar $file\n});
+ if ($? == -1) {
+ $CPAN::Frontend->mydie(sprintf qq{Couldn\'t untar %s: '%s'\n},
+ $file, $!);
+ } elsif ($? & 127) {
+ $CPAN::Frontend->mydie(sprintf qq{Couldn\'t untar %s: child died with signal %d, %s coredump\n},
+ $file, ($? & 127), ($? & 128) ? 'with' : 'without');
+ } else {
+ $CPAN::Frontend->mydie(sprintf qq{Couldn\'t untar %s: child exited with value %d\n},
+ $file, $? >> 8);
+ }
}
return 1;
} else {
@@ -450,6 +460,10 @@ END
__END__
+=head1 NAME
+
+CPAN::Tarzip - internal handling of tar archives for CPAN.pm
+
=head1 LICENSE
This program is free software; you can redistribute it and/or