X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/83b880c6505a20247239d897b7387bba37942993..60b64ffc3468579183abc1bac0179943d782a52e:/apt-inst/deb/debfile.cc diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index 3803329fa..a8bf754e4 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -124,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()); } @@ -201,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; @@ -230,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];