X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/06bba740f0085bcd6262cece62dcff266d8efe95..a789b983b99696793857dd58f6d4ea1efe17470e:/apt-pkg/deb/debrecords.cc diff --git a/apt-pkg/deb/debrecords.cc b/apt-pkg/deb/debrecords.cc index b3f91a840..6652a6ad9 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.5 1999/02/22 03:30:06 jgg Exp $ +// $Id: debrecords.cc,v 1.10 2001/03/13 06:51:46 jgg Exp $ /* ###################################################################### Debian Package Records - Parser for debian package records @@ -18,8 +18,9 @@ // RecordParser::debRecordParser - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -debRecordParser::debRecordParser(FileFd &File,pkgCache &Cache) : - Tags(File,Cache.Head().MaxVerFileSize + 20) +debRecordParser::debRecordParser(string FileName,pkgCache &Cache) : + File(FileName,FileFd::ReadOnly), + Tags(&File,Cache.Head().MaxVerFileSize + 200) { } /*}}}*/ @@ -31,24 +32,20 @@ bool debRecordParser::Jump(pkgCache::VerFileIterator const &Ver) return Tags.Jump(Section,Ver->Offset); } /*}}}*/ -// RecordParser::FindTag - Locate a tag and return a string /*{{{*/ +// RecordParser::FileName - Return the archive filename on the site /*{{{*/ // --------------------------------------------------------------------- /* */ -string debRecordParser::FindTag(const char *Tag) +string debRecordParser::FileName() { - const char *Start; - const char *Stop; - if (Section.Find(Tag,Start,Stop) == false) - return string(); - return string(Start,Stop - Start); + return Section.FindS("Filename"); } /*}}}*/ -// RecordParser::FileName - Return the archive filename on the site /*{{{*/ +// RecordParser::Name - Return the package name /*{{{*/ // --------------------------------------------------------------------- /* */ -string debRecordParser::FileName() +string debRecordParser::Name() { - return FindTag("Filename"); + return Section.FindS("Package"); } /*}}}*/ // RecordParser::MD5Hash - Return the archive hash /*{{{*/ @@ -56,7 +53,15 @@ string debRecordParser::FileName() /* */ string debRecordParser::MD5Hash() { - return FindTag("MD5sum"); + return Section.FindS("MD5Sum"); +} + /*}}}*/ +// RecordParser::SHA1Hash - Return the archive hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::SHA1Hash() +{ + return Section.FindS("SHA1Sum"); } /*}}}*/ // RecordParser::Maintainer - Return the maintainer email /*{{{*/ @@ -64,7 +69,7 @@ string debRecordParser::MD5Hash() /* */ string debRecordParser::Maintainer() { - return FindTag("Maintainer"); + return Section.FindS("Maintainer"); } /*}}}*/ // RecordParser::ShortDesc - Return a 1 line description /*{{{*/ @@ -72,7 +77,7 @@ string debRecordParser::Maintainer() /* */ string debRecordParser::ShortDesc() { - string Res = FindTag("Description"); + string Res = Section.FindS("Description"); string::size_type Pos = Res.find('\n'); if (Pos == string::npos) return Res; @@ -84,6 +89,26 @@ string debRecordParser::ShortDesc() /* */ string debRecordParser::LongDesc() { - return FindTag("Description"); + return Section.FindS("Description"); +} + /*}}}*/ +// RecordParser::SourcePkg - Return the source package name if any /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::SourcePkg() +{ + string Res = Section.FindS("Source"); + string::size_type Pos = Res.find(' '); + if (Pos == string::npos) + return Res; + return string(Res,0,Pos); +} + /*}}}*/ +// RecordParser::GetRec - Return the whole record /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void debRecordParser::GetRec(const char *&Start,const char *&Stop) +{ + Section.GetSection(Start,Stop); } /*}}}*/