author | andyq <andyq> | 2002-10-17 22:52:44 (UTC) |
---|---|---|
committer | andyq <andyq> | 2002-10-17 22:52:44 (UTC) |
commit | e38ea35a5bbfae58a9d4cb66cfdf557d606921cd (patch) (side-by-side diff) | |
tree | 4526e3e7a8540bbc81baa25c629bfda2f76e56bd /noncore/settings/aqpkg/server.cpp | |
parent | b61a21e46590228b6c5800d168fc57789ce733f6 (diff) | |
download | opie-e38ea35a5bbfae58a9d4cb66cfdf557d606921cd.zip opie-e38ea35a5bbfae58a9d4cb66cfdf557d606921cd.tar.gz opie-e38ea35a5bbfae58a9d4cb66cfdf557d606921cd.tar.bz2 |
Now sets the destination a package was installed to
Diffstat (limited to 'noncore/settings/aqpkg/server.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/aqpkg/server.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/noncore/settings/aqpkg/server.cpp b/noncore/settings/aqpkg/server.cpp index 0069a60..7d103a2 100644 --- a/noncore/settings/aqpkg/server.cpp +++ b/noncore/settings/aqpkg/server.cpp @@ -69,25 +69,25 @@ void Server :: readStatusFile( vector<Destination> &destList ) QString path = dit->getDestinationPath(); if ( path.right( 1 ) != "/" ) path += "/"; if ( path == "/" ) { rootRead = true; installingToRoot = true; } packageFile = path + "usr/lib/ipkg/status"; - readPackageFile( 0, false, installingToRoot ); + readPackageFile( 0, false, installingToRoot, dit ); } // Ensure that the root status file is read if ( !rootRead ) { cout << "Reading status file " << "/usr/lib/ipkg/status" << endl; packageFile = "/usr/lib/ipkg/status"; readPackageFile( 0, false, true ); } } void Server :: readLocalIpks( Server *local ) @@ -130,25 +130,25 @@ void Server :: readLocalIpks( Server *local ) packageList.push_back( Package( tmp ) ); int p2 = file.find( "_", p+1 ); tmp = file.mid( p+1, p2-(p+1) ); packageList.back().setVersion( tmp ); packageList.back().setPackageStoredLocally( true ); } #endif // build local packages buildLocalPackages( local ); } -void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot ) +void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot, Destination *dest ) { ifstream in( packageFile ); if ( !in.is_open() ) return; char line[1001]; char k[21]; char v[1001]; QString key; QString value; if ( clearAll ) @@ -159,38 +159,45 @@ void Server :: readPackageFile( Server *local, bool clearAll, bool installingToR do { in.getline( line, 1000 ); if ( in.eof() ) continue; k[0] = '\0'; v[0] = '\0'; sscanf( line, "%[^:]: %[^\n]", k, v ); key = k; value = v; - key.stripWhiteSpace(); + key = key.stripWhiteSpace(); + value = value.stripWhiteSpace(); if ( key == "Package" && newPackage ) { newPackage = false; currPackage = getPackage( value ); if ( !currPackage ) { packageList.push_back( Package( value ) ); currPackage = &(packageList.back()); + currPackage->setInstalledTo( dest ); if ( installingToRoot ) currPackage->setInstalledToRoot( true ); } + else + { + if (currPackage->getStatus().find( "deinstall" ) != -1 ) + currPackage->setInstalledTo( dest ); + } } else if ( key == "Version" ) { if ( currPackage ) currPackage->setVersion( value ); } else if ( key == "Status" ) { if ( currPackage ) currPackage->setStatus( value ); } else if ( key == "Description" ) |