]> git.saurik.com Git - apt-legacy.git/blobdiff - apt-pkg/deb/deblistparser.h
I hate std::string: the concept is great, the implementation is shit.
[apt-legacy.git] / apt-pkg / deb / deblistparser.h
index a7b7373b6b5a0f0fcba2645e405c0c218a8de67d..bd97f8b6173221fab891badc1cb718b0cc418451 100644 (file)
@@ -33,6 +33,7 @@ class debListParser : public pkgCacheGenerator::ListParser
    unsigned long iOffset;
    string Arch;
    
+   unsigned long FindTagWrite(const char *Tag);
    unsigned long UniqFindTagWrite(const char *Tag);
    bool ParseStatus(pkgCache::PkgIterator Pkg,pkgCache::VerIterator Ver);
    bool ParseDepends(pkgCache::VerIterator Ver,const char *Tag,
@@ -40,9 +41,22 @@ class debListParser : public pkgCacheGenerator::ListParser
    bool ParseProvides(pkgCache::VerIterator Ver);
    bool ParseTag(pkgCache::PkgIterator Pkg);
    static bool GrabWord(string Word,WordList *List,unsigned char &Out);
+   static bool GrabWord(const srkString &Word,WordList *List,unsigned char &Out);
    
    public:
 
+   srkString Find(const char *Tag) {
+      srkString S;
+      const char *Stop;
+      if (Section.Find(Tag, S.Start, Stop))
+         S.Size = Stop - S.Start;
+      else {
+         S.Start = NULL;
+         S.Size = 0;
+      }
+      return S;
+   }
+
    static unsigned char GetPrio(string Str);
       
    // These all operate against the current section
@@ -50,6 +64,7 @@ class debListParser : public pkgCacheGenerator::ListParser
    virtual string Version();
    virtual bool NewVersion(pkgCache::VerIterator Ver);
    virtual string Description();
+   void Description(srkString &Str);
    virtual string DescriptionLanguage();
    virtual MD5SumValue Description_md5();
    virtual unsigned short VersionHash();
@@ -66,6 +81,9 @@ class debListParser : public pkgCacheGenerator::ListParser
    static const char *ParseDepends(const char *Start,const char *Stop,
                            string &Package,string &Ver,unsigned int &Op,
                            bool ParseArchFlags = false);
+   static const char *ParseDepends(const char *Start,const char *Stop,
+                           srkString &Package,srkString &Ver,unsigned int &Op,
+                           bool ParseArchFlags = false);
    static const char *ConvertRelation(const char *I,unsigned int &Op);
 
    debListParser(FileFd *File);