]> git.saurik.com Git - apt.git/blobdiff - apt-inst/contrib/extracttar.h
merge debian/sid into debian/experimental
[apt.git] / apt-inst / contrib / extracttar.h
index aaca987f279f72430448076bec0f4423a7be4c6c..57be956bd0649fe6b0b54292374dbd65fe9570e5 100644 (file)
 #ifndef PKGLIB_EXTRACTTAR_H
 #define PKGLIB_EXTRACTTAR_H
 
-#ifdef __GNUG__
-#pragma interface "apt-pkg/extracttar.h"
-#endif
-
 #include <apt-pkg/fileutl.h>
+#include <apt-pkg/macros.h>
+
+#include <string>
+
+#ifndef APT_8_CLEANER_HEADERS
 #include <apt-pkg/dirstream.h>
+#include <algorithm>
+using std::min;
+#endif
+
+class pkgDirStream;
 
 class ExtractTar
 {
@@ -34,10 +40,15 @@ class ExtractTar
                   GNU_LongLink = 'K',GNU_LongName = 'L'};
 
    FileFd &File;
+#if APT_PKG_ABI >= 413
+   unsigned long long MaxInSize;
+#else
    unsigned long MaxInSize;
+#endif
    int GZPid;
    FileFd InFd;
    bool Eof;
+   std::string DecompressProg;
    
    // Fork and reap gzip
    bool StartGzip();
@@ -46,8 +57,12 @@ class ExtractTar
    public:
 
    bool Go(pkgDirStream &Stream);
-   
-   ExtractTar(FileFd &Fd,unsigned long Max);
+
+#if APT_PKG_ABI >= 413
+   ExtractTar(FileFd &Fd,unsigned long long Max,std::string DecompressionProgram);
+#else
+   ExtractTar(FileFd &Fd,unsigned long Max,std::string DecompressionProgram);
+#endif
    virtual ~ExtractTar();
 };