]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/tagfile.cc
Move sysconf(_SC_OPEN_MAX); out of the for() loop to avoid unneeded syscalls
[apt.git] / apt-pkg / tagfile.cc
index b92b2c15ab86674fff11e94545e50b2c7f3fc759..bf865bdc46eea80357be7c0de85b31e51feeac8f 100644 (file)
@@ -21,6 +21,8 @@
 #include <string>
 #include <stdio.h>
 #include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
 
 #include <apti18n.h>
                                                                        /*}}}*/
@@ -83,7 +85,7 @@ pkgTagFile::~pkgTagFile()
 }
                                                                        /*}}}*/
 // TagFile::Offset - Return the current offset in the buffer           /*{{{*/
-unsigned long pkgTagFile::Offset()
+APT_PURE unsigned long pkgTagFile::Offset()
 {
    return d->iOffset;
 }
@@ -207,7 +209,11 @@ bool pkgTagFile::Jump(pkgTagSection &Tag,unsigned long long Offset)
       unsigned long long Dist = Offset - d->iOffset;
       d->Start += Dist;
       d->iOffset += Dist;
-      return Step(Tag);
+      // if we have seen the end, don't ask for more
+      if (d->Done == true)
+        return Tag.Scan(d->Start, d->End - d->Start);
+      else
+        return Step(Tag);
    }
 
    // Reposition and reload..
@@ -467,7 +473,7 @@ bool pkgTagSection::FindFlag(const char *Tag,unsigned long &Flags,
       return true;
    return FindFlag(Flags, Flag, Start, Stop);
 }
-bool const pkgTagSection::FindFlag(unsigned long &Flags, unsigned long Flag,
+bool pkgTagSection::FindFlag(unsigned long &Flags, unsigned long Flag,
                                        char const* Start, char const* Stop)
 {
    switch (StringToBool(string(Start, Stop)))
@@ -520,7 +526,7 @@ static const char *iTFRewritePackageOrder[] = {
                           "Conffiles",
                           "Filename",
                           "Size",
-                          "MD5Sum",
+                          "MD5sum",
                           "SHA1",
                           "SHA256",
                           "SHA512",