author | tille <tille> | 2002-07-24 11:22:45 (UTC) |
---|---|---|
committer | tille <tille> | 2002-07-24 11:22:45 (UTC) |
commit | 0948a167e4e46e6d2082809ec47be6a08a5de9d7 (patch) (side-by-side diff) | |
tree | 31d9da85c68da2f2d4ca99a7ca3aaacce5ed72be | |
parent | 17068d35cc662a1cace883cfa98bb1f21534cb41 (diff) | |
download | opie-0948a167e4e46e6d2082809ec47be6a08a5de9d7.zip opie-0948a167e4e46e6d2082809ec47be6a08a5de9d7.tar.gz opie-0948a167e4e46e6d2082809ec47be6a08a5de9d7.tar.bz2 |
fix #136 -- parse packagelist without a nl at eof
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.cpp | 13 |
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 @@ -155,67 +155,78 @@ void PackageList::updateSections( Package* pack ) sections += s; QString ss = pack->subSection(); if ( ss.isEmpty() || ss == "" ) return; if ( !subSections[s] ) { subSections.insert( s, new QStringList() ); QStringList *subsecs = subSections[s]; *subsecs += "All"; } QStringList *subsecs = subSections[s]; *subsecs += ss; if ( !subSections["All"] ) subSections.insert( "All", new QStringList() ); subsecs = subSections["All"]; *subsecs += ss; } void PackageList::readFileEntries( QString filename, QString dest ) { pvDebug(5,"PackageList::readFileEntries "+filename+" dest "+dest); QStringList packEntry; QFile f( filename ); if ( !f.open(IO_ReadOnly) ) return; QTextStream *statusStream = new QTextStream( &f ); while ( !statusStream ->eof() ) - { + { QString line = statusStream->readLine(); if ( line.find(QRegExp("[\n\t ]*")) || line == "" ) { //end of package if ( ! packEntry.isEmpty() ) { Package *p = new Package( packEntry, settings ); if ( p ) { p->setDest( dest ); insertPackage( p ); packEntry.clear(); } } }else{ packEntry << line; }; } + //there might be no nl at the end of the package file + if ( ! packEntry.isEmpty() ) + { + Package *p = new Package( packEntry, settings ); + if ( p ) + { + p->setDest( dest ); + insertPackage( p ); + packEntry.clear(); + } + } delete statusStream; return; } void PackageList::setSettings( PackageManagerSettings *s ) { settings = s; } Package* PackageList::getByName( QString n ) { return origPackageList[n]; } void PackageList::clear() { origPackageList.clear(); packageList.clear(); } void PackageList::allPackages() { packageList.clear(); QDictIterator<Package> filterIter( origPackageList ); |