X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/655122418d714f342b5d9789f45f8035f3fe8b9a..60b64ffc3468579183abc1bac0179943d782a52e:/apt-inst/deb/debfile.cc diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index 8684f03f7..a8bf754e4 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -21,11 +21,17 @@ #include #include #include -#include #include - +#include +#include +#include +#include + +#include +#include +#include #include -#include + #include /*}}}*/ @@ -118,8 +124,10 @@ bool debDebFile::ExtractTarMember(pkgDirStream &Stream,const char *Name) { std::string ext = std::string(Name) + ".{"; for (std::vector::const_iterator c = compressor.begin(); - c != compressor.end(); ++c) - ext.append(c->Extension.substr(1)); + c != compressor.end(); ++c) { + if (!c->Extension.empty()) + ext.append(c->Extension.substr(1)); + } ext.append("}"); return _error->Error(_("Internal error, could not locate member %s"), ext.c_str()); } @@ -195,7 +203,11 @@ bool debDebFile::MemControlExtract::DoItem(Item &Itm,int &Fd) /* Just memcopy the block from the tar extractor and put it in the right place in the pre-allocated memory block. */ bool debDebFile::MemControlExtract::Process(Item &/*Itm*/,const unsigned char *Data, +#if APT_PKG_ABI >= 413 + unsigned long long Size,unsigned long long Pos) +#else unsigned long Size,unsigned long Pos) +#endif { memcpy(Control + Pos, Data,Size); return true; @@ -224,7 +236,11 @@ bool debDebFile::MemControlExtract::Read(debDebFile &Deb) // --------------------------------------------------------------------- /* The given memory block is loaded into the parser and parsed as a control record. */ +#if APT_PKG_ABI >= 413 +bool debDebFile::MemControlExtract::TakeControl(const void *Data,unsigned long long Size) +#else bool debDebFile::MemControlExtract::TakeControl(const void *Data,unsigned long Size) +#endif { delete [] Control; Control = new char[Size+2];