diff options
Diffstat (limited to 'apt-pkg/deb')
-rw-r--r-- | apt-pkg/deb/debrecords.cc | 58 | ||||
-rw-r--r-- | apt-pkg/deb/debrecords.h | 17 |
2 files changed, 72 insertions, 3 deletions
diff --git a/apt-pkg/deb/debrecords.cc b/apt-pkg/deb/debrecords.cc index ae0acce18..c28e11afb 100644 --- a/apt-pkg/deb/debrecords.cc +++ b/apt-pkg/deb/debrecords.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: debrecords.cc,v 1.1 1998/08/09 00:51:36 jgg Exp $ +// $Id: debrecords.cc,v 1.2 1998/10/08 04:55:02 jgg Exp $ /* ###################################################################### Debian Package Records - Parser for debian package records @@ -30,3 +30,59 @@ bool debRecordParser::Jump(pkgCache::VerFileIterator &Ver) return Tags.Jump(Section,Ver->Offset); } /*}}}*/ +// RecordParser::FindTag - Locate a tag and return a string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::FindTag(const char *Tag) +{ + const char *Start; + const char *Stop; + if (Section.Find(Tag,Start,Stop) == false) + return string(); + return string(Start,Stop - Start); +} + /*}}}*/ +// RecordParser::FileName - Return the archive filename on the site /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::FileName() +{ + return FindTag("Filename"); +} + /*}}}*/ +// RecordParser::MD5Hash - Return the archive hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::MD5Hash() +{ + return FindTag("MD5sum"); +} + /*}}}*/ +// RecordParser::Maintainer - Return the maintainer email /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::Maintainer() +{ + return FindTag("Maintainer"); +} + /*}}}*/ +// RecordParser::ShortDesc - Return a 1 line description /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::ShortDesc() +{ + string Res = FindTag("Description"); + string::size_type Pos = Res.find('\n'); + if (Pos == string::npos) + return Res; + return string(Res,0,Pos); +} + /*}}}*/ +// RecordParser::LongDesc - Return a longer description /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::LongDesc() +{ + return string(); +} + /*}}}*/ diff --git a/apt-pkg/deb/debrecords.h b/apt-pkg/deb/debrecords.h index 0bd8da921..6255d79ed 100644 --- a/apt-pkg/deb/debrecords.h +++ b/apt-pkg/deb/debrecords.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: debrecords.h,v 1.1 1998/08/09 00:51:36 jgg Exp $ +// $Id: debrecords.h,v 1.2 1998/10/08 04:55:04 jgg Exp $ /* ###################################################################### Debian Package Records - Parser for debian package records @@ -26,10 +26,23 @@ class debRecordParser : public pkgRecords::Parser { pkgTagFile Tags; pkgTagSection Section; + + string FindTag(const char *Tag); + + protected: + + virtual bool Jump(pkgCache::VerFileIterator &Ver); public: + + // These refer to the archive file for the Version + virtual string FileName(); + virtual string MD5Hash(); - virtual bool Jump(pkgCache::VerFileIterator &Ver); + // These are some general stats about the package + virtual string Maintainer(); + virtual string ShortDesc(); + virtual string LongDesc(); debRecordParser(FileFd &File); }; |