summaryrefslogtreecommitdiff
path: root/apt-inst/contrib/extracttar.cc
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2014-02-23 00:45:56 +0100
committerMichael Vogt <mvo@debian.org>2014-02-23 00:45:56 +0100
commiteccff323a093d91fff379e7c8460d7e5c8db8ad1 (patch)
treed539d21c6716af3122edabae91feadccfb3c12ad /apt-inst/contrib/extracttar.cc
parent2c678b0a026ac9d44c8ade07aa8bf318faf5a9e2 (diff)
parentb7ed961b8099c05f65e18d4c73ead50cc5c8bff1 (diff)
Merge branch 'debian/sid' into ubuntu/master
Conflicts: debian/changelog
Diffstat (limited to 'apt-inst/contrib/extracttar.cc')
-rw-r--r--apt-inst/contrib/extracttar.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc
index fb4db42f8..41301d1a6 100644
--- a/apt-inst/contrib/extracttar.cc
+++ b/apt-inst/contrib/extracttar.cc
@@ -6,7 +6,7 @@
Extract a Tar - Tar Extractor
Some performance measurements showed that zlib performed quite poorly
- in comparision to a forked gzip process. This tar extractor makes use
+ in comparison to a forked gzip process. This tar extractor makes use
of the fact that dup'd file descriptors have the same seek pointer
and that gzip will not read past the end of a compressed stream,
even if there is more data. We use the dup property to track extraction
@@ -111,6 +111,12 @@ bool ExtractTar::Done(bool Force)
gzip will efficiently ignore the extra bits. */
bool ExtractTar::StartGzip()
{
+ if (DecompressProg.empty())
+ {
+ InFd.OpenDescriptor(File.Fd(), FileFd::ReadOnly, FileFd::None, false);
+ return true;
+ }
+
int Pipes[2];
if (pipe(Pipes) != 0)
return _error->Errno("pipe",_("Failed to create pipes"));