diff options
Diffstat (limited to 'apt-inst/contrib')
-rw-r--r-- | apt-inst/contrib/arfile.h | 5 | ||||
-rw-r--r-- | apt-inst/contrib/extracttar.cc | 18 | ||||
-rw-r--r-- | apt-inst/contrib/extracttar.h | 11 |
3 files changed, 26 insertions, 8 deletions
diff --git a/apt-inst/contrib/arfile.h b/apt-inst/contrib/arfile.h index 0f62a34a0..f53356847 100644 --- a/apt-inst/contrib/arfile.h +++ b/apt-inst/contrib/arfile.h @@ -17,6 +17,7 @@ #include <string> +#include <apt-pkg/macros.h> #ifndef APT_8_CLEANER_HEADERS #include <apt-pkg/fileutl.h> #endif @@ -61,7 +62,11 @@ struct ARArchive::Member unsigned long long Size; // Location of the data. +#if APT_PKG_ABI >= 413 + unsigned long long Start; +#else unsigned long Start; +#endif Member *Next; Member() : Start(0), Next(0) {}; diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc index 0ba3f0521..be0b69d96 100644 --- a/apt-inst/contrib/extracttar.cc +++ b/apt-inst/contrib/extracttar.cc @@ -60,9 +60,13 @@ struct ExtractTar::TarHeader // ExtractTar::ExtractTar - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -ExtractTar::ExtractTar(FileFd &Fd,unsigned long Max,string DecompressionProgram) : File(Fd), - MaxInSize(Max), DecompressProg(DecompressionProgram) - +#if APT_PKG_ABI >= 413 +ExtractTar::ExtractTar(FileFd &Fd,unsigned long long Max,string DecompressionProgram) + : File(Fd), MaxInSize(Max), DecompressProg(DecompressionProgram) +#else +ExtractTar::ExtractTar(FileFd &Fd,unsigned long Max,string DecompressionProgram) + : File(Fd), MaxInSize(Max), DecompressProg(DecompressionProgram) +#endif { GZPid = -1; Eof = false; @@ -267,7 +271,7 @@ bool ExtractTar::Go(pkgDirStream &Stream) case GNU_LongLink: { - unsigned long Length = Itm.Size; + unsigned long long Length = Itm.Size; unsigned char Block[512]; while (Length > 0) { @@ -286,7 +290,7 @@ bool ExtractTar::Go(pkgDirStream &Stream) case GNU_LongName: { - unsigned long Length = Itm.Size; + unsigned long long Length = Itm.Size; unsigned char Block[512]; while (Length > 0) { @@ -315,11 +319,11 @@ bool ExtractTar::Go(pkgDirStream &Stream) return false; // Copy the file over the FD - unsigned long Size = Itm.Size; + unsigned long long Size = Itm.Size; while (Size != 0) { unsigned char Junk[32*1024]; - unsigned long Read = min(Size,(unsigned long)sizeof(Junk)); + unsigned long Read = min(Size, (unsigned long long)sizeof(Junk)); if (InFd.Read(Junk,((Read+511)/512)*512) == false) return false; diff --git a/apt-inst/contrib/extracttar.h b/apt-inst/contrib/extracttar.h index 4b29df314..57be956bd 100644 --- a/apt-inst/contrib/extracttar.h +++ b/apt-inst/contrib/extracttar.h @@ -15,6 +15,7 @@ #define PKGLIB_EXTRACTTAR_H #include <apt-pkg/fileutl.h> +#include <apt-pkg/macros.h> #include <string> @@ -39,7 +40,11 @@ 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; @@ -52,8 +57,12 @@ class ExtractTar public: bool Go(pkgDirStream &Stream); - + +#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(); }; |