summaryrefslogtreecommitdiff
authortille <tille>2002-07-24 11:22:45 (UTC)
committer tille <tille>2002-07-24 11:22:45 (UTC)
commit0948a167e4e46e6d2082809ec47be6a08a5de9d7 (patch) (unidiff)
tree31d9da85c68da2f2d4ca99a7ca3aaacce5ed72be
parent17068d35cc662a1cace883cfa98bb1f21534cb41 (diff)
downloadopie-0948a167e4e46e6d2082809ec47be6a08a5de9d7.zip
opie-0948a167e4e46e6d2082809ec47be6a08a5de9d7.tar.gz
opie-0948a167e4e46e6d2082809ec47be6a08a5de9d7.tar.bz2
fix #136 -- parse packagelist without a nl at eof
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/packagelist.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp
index 844f43f..998dae9 100644
--- a/noncore/unsupported/oipkg/packagelist.cpp
+++ b/noncore/unsupported/oipkg/packagelist.cpp
@@ -83,148 +83,159 @@ void PackageList::insertPackage( Package* pack )
83 empty=false; 83 empty=false;
84 updateSections( pack ); 84 updateSections( pack );
85} 85}
86 86
87void PackageList::filterPackages( QString f ) 87void PackageList::filterPackages( QString f )
88 { 88 {
89 packageList.clear(); 89 packageList.clear();
90 QDictIterator<Package> filterIter( origPackageList ); 90 QDictIterator<Package> filterIter( origPackageList );
91 filterIter.toFirst(); 91 filterIter.toFirst();
92 Package *pack= filterIter.current() ; 92 Package *pack= filterIter.current() ;
93 while ( pack ) 93 while ( pack )
94 { 94 {
95 if ( 95 if (
96 ((aktSection=="All")||(pack->section()==aktSection)) && 96 ((aktSection=="All")||(pack->section()==aktSection)) &&
97 ((aktSubSection=="All")||(pack->subSection()==aktSubSection)) && 97 ((aktSubSection=="All")||(pack->subSection()==aktSubSection)) &&
98 pack->name().contains( f ) 98 pack->name().contains( f )
99 ) 99 )
100 { 100 {
101 packageList.insert( pack->name(), pack ); 101 packageList.insert( pack->name(), pack );
102 } 102 }
103 ++filterIter; 103 ++filterIter;
104 pack = filterIter.current(); 104 pack = filterIter.current();
105 } 105 }
106} 106}
107 107
108Package* PackageList::find( QString n ) 108Package* PackageList::find( QString n )
109{ 109{
110 return packageList.find( n ); 110 return packageList.find( n );
111} 111}
112 112
113Package* PackageList::first() 113Package* PackageList::first()
114 { 114 {
115 packageIter.toFirst(); 115 packageIter.toFirst();
116 return packageIter.current(); 116 return packageIter.current();
117} 117}
118 118
119Package* PackageList::next() 119Package* PackageList::next()
120{ 120{
121 ++packageIter; 121 ++packageIter;
122 return packageIter.current(); 122 return packageIter.current();
123} 123}
124 124
125QStringList PackageList::getSections() 125QStringList PackageList::getSections()
126{ 126{
127 sections.sort(); 127 sections.sort();
128 return sections; 128 return sections;
129} 129}
130 130
131QStringList PackageList::getSubSections() 131QStringList PackageList::getSubSections()
132{ 132{
133 QStringList ss; 133 QStringList ss;
134 if ( !subSections[aktSection] ) return ss; 134 if ( !subSections[aktSection] ) return ss;
135 ss = *subSections[aktSection]; 135 ss = *subSections[aktSection];
136 ss.sort(); 136 ss.sort();
137 return ss; 137 return ss;
138} 138}
139 139
140void PackageList::setSection( QString sec ) 140void PackageList::setSection( QString sec )
141{ 141{
142 aktSection = sec; 142 aktSection = sec;
143} 143}
144 144
145void PackageList::setSubSection( QString ssec ) 145void PackageList::setSubSection( QString ssec )
146{ 146{
147 aktSubSection = ssec; 147 aktSubSection = ssec;
148} 148}
149 149
150void PackageList::updateSections( Package* pack ) 150void PackageList::updateSections( Package* pack )
151{ 151{
152 QString s = pack->section(); 152 QString s = pack->section();
153 if ( s.isEmpty() || s == "") return; 153 if ( s.isEmpty() || s == "") return;
154 if ( sections.contains(s) ) return; 154 if ( sections.contains(s) ) return;
155 sections += s; 155 sections += s;
156 QString ss = pack->subSection(); 156 QString ss = pack->subSection();
157 if ( ss.isEmpty() || ss == "" ) return; 157 if ( ss.isEmpty() || ss == "" ) return;
158 if ( !subSections[s] ) { 158 if ( !subSections[s] ) {
159 subSections.insert( s, new QStringList() ); 159 subSections.insert( s, new QStringList() );
160 QStringList *subsecs = subSections[s]; 160 QStringList *subsecs = subSections[s];
161 *subsecs += "All"; 161 *subsecs += "All";
162 } 162 }
163 QStringList *subsecs = subSections[s]; 163 QStringList *subsecs = subSections[s];
164 *subsecs += ss; 164 *subsecs += ss;
165 if ( !subSections["All"] ) subSections.insert( "All", new QStringList() ); 165 if ( !subSections["All"] ) subSections.insert( "All", new QStringList() );
166 subsecs = subSections["All"]; 166 subsecs = subSections["All"];
167 *subsecs += ss; 167 *subsecs += ss;
168} 168}
169 169
170 170
171void PackageList::readFileEntries( QString filename, QString dest ) 171void PackageList::readFileEntries( QString filename, QString dest )
172 { 172 {
173 pvDebug(5,"PackageList::readFileEntries "+filename+" dest "+dest); 173 pvDebug(5,"PackageList::readFileEntries "+filename+" dest "+dest);
174 QStringList packEntry; 174 QStringList packEntry;
175 QFile f( filename ); 175 QFile f( filename );
176 if ( !f.open(IO_ReadOnly) ) return; 176 if ( !f.open(IO_ReadOnly) ) return;
177 QTextStream *statusStream = new QTextStream( &f ); 177 QTextStream *statusStream = new QTextStream( &f );
178 while ( !statusStream ->eof() ) 178 while ( !statusStream ->eof() )
179 { 179 {
180 QString line = statusStream->readLine(); 180 QString line = statusStream->readLine();
181 if ( line.find(QRegExp("[\n\t ]*")) || line == "" ) 181 if ( line.find(QRegExp("[\n\t ]*")) || line == "" )
182 { 182 {
183 //end of package 183 //end of package
184 if ( ! packEntry.isEmpty() ) 184 if ( ! packEntry.isEmpty() )
185 { 185 {
186 Package *p = new Package( packEntry, settings ); 186 Package *p = new Package( packEntry, settings );
187 if ( p ) 187 if ( p )
188 { 188 {
189 p->setDest( dest ); 189 p->setDest( dest );
190 insertPackage( p ); 190 insertPackage( p );
191 packEntry.clear(); 191 packEntry.clear();
192 } 192 }
193 } 193 }
194 }else{ 194 }else{
195 packEntry << line; 195 packEntry << line;
196 }; 196 };
197 } 197 }
198 //there might be no nl at the end of the package file
199 if ( ! packEntry.isEmpty() )
200 {
201 Package *p = new Package( packEntry, settings );
202 if ( p )
203 {
204 p->setDest( dest );
205 insertPackage( p );
206 packEntry.clear();
207 }
208 }
198 delete statusStream; 209 delete statusStream;
199 return; 210 return;
200} 211}
201 212
202void PackageList::setSettings( PackageManagerSettings *s ) 213void PackageList::setSettings( PackageManagerSettings *s )
203{ 214{
204 settings = s; 215 settings = s;
205} 216}
206 217
207Package* PackageList::getByName( QString n ) 218Package* PackageList::getByName( QString n )
208{ 219{
209 return origPackageList[n]; 220 return origPackageList[n];
210} 221}
211 222
212void PackageList::clear() 223void PackageList::clear()
213{ 224{
214 origPackageList.clear(); 225 origPackageList.clear();
215 packageList.clear(); 226 packageList.clear();
216} 227}
217 228
218void PackageList::allPackages() 229void PackageList::allPackages()
219{ 230{
220 packageList.clear(); 231 packageList.clear();
221 QDictIterator<Package> filterIter( origPackageList ); 232 QDictIterator<Package> filterIter( origPackageList );
222 filterIter.toFirst(); 233 filterIter.toFirst();
223 Package *pack= filterIter.current() ; 234 Package *pack= filterIter.current() ;
224 while ( pack ) 235 while ( pack )
225 { 236 {
226 packageList.insert( pack->name(), pack ); 237 packageList.insert( pack->name(), pack );
227 ++filterIter; 238 ++filterIter;
228 pack = filterIter.current(); 239 pack = filterIter.current();
229 } 240 }
230} 241}