]> git.saurik.com Git - apt.git/blame - apt-pkg/deb/debrecords.cc
Sync with Michael
[apt.git] / apt-pkg / deb / debrecords.cc
CommitLineData
f55ece0e
AL
1// -*- mode: cpp; mode: fold -*-
2// Description /*{{{*/
a7c835af 3// $Id: debrecords.cc,v 1.10 2001/03/13 06:51:46 jgg Exp $
f55ece0e
AL
4/* ######################################################################
5
6 Debian Package Records - Parser for debian package records
7
8 ##################################################################### */
9 /*}}}*/
10// Include Files /*{{{*/
11#ifdef __GNUG__
12#pragma implementation "apt-pkg/debrecords.h"
13#endif
14#include <apt-pkg/debrecords.h>
15#include <apt-pkg/error.h>
16 /*}}}*/
17
18// RecordParser::debRecordParser - Constructor /*{{{*/
19// ---------------------------------------------------------------------
20/* */
b2e465d6
AL
21debRecordParser::debRecordParser(string FileName,pkgCache &Cache) :
22 File(FileName,FileFd::ReadOnly),
23 Tags(&File,Cache.Head().MaxVerFileSize + 200)
f55ece0e
AL
24{
25}
26 /*}}}*/
27// RecordParser::Jump - Jump to a specific record /*{{{*/
28// ---------------------------------------------------------------------
29/* */
03e39e59 30bool debRecordParser::Jump(pkgCache::VerFileIterator const &Ver)
f55ece0e
AL
31{
32 return Tags.Jump(Section,Ver->Offset);
33}
34 /*}}}*/
7e798dd7
AL
35// RecordParser::FileName - Return the archive filename on the site /*{{{*/
36// ---------------------------------------------------------------------
37/* */
38string debRecordParser::FileName()
39{
7974b907 40 return Section.FindS("Filename");
7e798dd7
AL
41}
42 /*}}}*/
b2e465d6
AL
43// RecordParser::Name - Return the package name /*{{{*/
44// ---------------------------------------------------------------------
45/* */
46string debRecordParser::Name()
47{
48 return Section.FindS("Package");
49}
50 /*}}}*/
7e798dd7
AL
51// RecordParser::MD5Hash - Return the archive hash /*{{{*/
52// ---------------------------------------------------------------------
53/* */
54string debRecordParser::MD5Hash()
55{
a7c835af
AL
56 return Section.FindS("MD5Sum");
57}
58 /*}}}*/
59// RecordParser::SHA1Hash - Return the archive hash /*{{{*/
60// ---------------------------------------------------------------------
61/* */
62string debRecordParser::SHA1Hash()
63{
64 return Section.FindS("SHA1Sum");
7e798dd7
AL
65}
66 /*}}}*/
67// RecordParser::Maintainer - Return the maintainer email /*{{{*/
68// ---------------------------------------------------------------------
69/* */
70string debRecordParser::Maintainer()
71{
7974b907 72 return Section.FindS("Maintainer");
7e798dd7
AL
73}
74 /*}}}*/
75// RecordParser::ShortDesc - Return a 1 line description /*{{{*/
76// ---------------------------------------------------------------------
77/* */
78string debRecordParser::ShortDesc()
79{
7974b907 80 string Res = Section.FindS("Description");
7e798dd7
AL
81 string::size_type Pos = Res.find('\n');
82 if (Pos == string::npos)
83 return Res;
84 return string(Res,0,Pos);
85}
86 /*}}}*/
87// RecordParser::LongDesc - Return a longer description /*{{{*/
88// ---------------------------------------------------------------------
89/* */
90string debRecordParser::LongDesc()
91{
7974b907 92 return Section.FindS("Description");
7e798dd7
AL
93}
94 /*}}}*/
04f232fc 95// RecordParser::SourcePkg - Return the source package name if any /*{{{*/
36375005
AL
96// ---------------------------------------------------------------------
97/* */
98string debRecordParser::SourcePkg()
99{
04f232fc
AL
100 string Res = Section.FindS("Source");
101 string::size_type Pos = Res.find(' ');
102 if (Pos == string::npos)
103 return Res;
104 return string(Res,0,Pos);
36375005
AL
105}
106 /*}}}*/
b2e465d6
AL
107// RecordParser::GetRec - Return the whole record /*{{{*/
108// ---------------------------------------------------------------------
109/* */
110void debRecordParser::GetRec(const char *&Start,const char *&Stop)
111{
112 Section.GetSection(Start,Stop);
113}
114 /*}}}*/