]> git.saurik.com Git - apt.git/blobdiff - apt-inst/deb/debfile.cc
guard ABI changes for LFS in apt-inst
[apt.git] / apt-inst / deb / debfile.cc
index 3803329fa37eb3f4f135f0011ed33fd2a32f6be7..a8bf754e4e46fc0adea263ea14250b8658629281 100644 (file)
@@ -124,8 +124,10 @@ bool debDebFile::ExtractTarMember(pkgDirStream &Stream,const char *Name)
    {
       std::string ext = std::string(Name) + ".{";
       for (std::vector<APT::Configuration::Compressor>::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];