author | kergoth <kergoth> | 2003-03-27 18:41:00 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-03-27 18:41:00 (UTC) |
commit | bff145f5cced95c742deefcd607932a9f3728dd3 (patch) (side-by-side diff) | |
tree | c1d533d21e78fb0d45e94490f055651c9e5e3156 | |
parent | 390a5a0c332c8c6fb380c1ed4cd6adae3e544a08 (diff) | |
download | opie-bff145f5cced95c742deefcd607932a9f3728dd3.zip opie-bff145f5cced95c742deefcd607932a9f3728dd3.tar.gz opie-bff145f5cced95c742deefcd607932a9f3728dd3.tar.bz2 |
Slower, but more appropriate status parser. Now identifies the state_status column and compares against installed.. This fixes the bug introduced where it hit 'ok installed' but not 'prefer installed', both of which are valid entries.
-rw-r--r-- | noncore/settings/aqpkg/package.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/noncore/settings/aqpkg/package.cpp b/noncore/settings/aqpkg/package.cpp index 99187ac..83e0706 100644 --- a/noncore/settings/aqpkg/package.cpp +++ b/noncore/settings/aqpkg/package.cpp @@ -49,51 +49,59 @@ Package::Package( char *name ) packageStoredLocally = false; installedToRoot = false; installed = false; installedTo = 0; } Package::~Package() { } QString Package :: toString() { QString ret = "Package - " + getPackageName() + "\n version - " + getVersion(); if ( localPackage ) ret += "\n inst version - " + localPackage->getVersion(); return ret; } void Package :: setStatus( const QString &s ) { - status = s; + QString state_status; + int two, three; - if ( status.find( "ok installed" ) != -1 ) + status = s.simplifyWhiteSpace( ); + + two = status.find( " " ); // find second column + three = status.find( " ", two + 1 ); // find third column + + state_status = status.mid( three ).stripWhiteSpace( ); + + if ( state_status == "installed" ) installed = true; } void Package :: setLocalPackage( Package *p ) { localPackage = p; if ( localPackage ) if ( localPackage->getVersion() != getVersion() ) differentVersionAvailable = true; else differentVersionAvailable = false; } void Package :: setVersion( const QString &v ) { version = v; if ( localPackage ) if ( localPackage->getVersion() != getVersion() ) differentVersionAvailable = true; else differentVersionAvailable = false; } |