summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg/packagelist.cpp
Unidiff
Diffstat (limited to 'noncore/unsupported/oipkg/packagelist.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/packagelist.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp
index b892b30..be20c71 100644
--- a/noncore/unsupported/oipkg/packagelist.cpp
+++ b/noncore/unsupported/oipkg/packagelist.cpp
@@ -33,17 +33,26 @@ PackageList::~PackageList()
33/** Inserts a package into the list */ 33/** Inserts a package into the list */
34void PackageList::insertPackage( Package* pack ) 34void PackageList::insertPackage( Package* pack )
35{ 35{
36 if (!pack) return;
36 Package* p = packageList.find( pack->name() ); 37 Package* p = packageList.find( pack->name() );
37 if ( p ) 38 if ( p )
38 { 39 {
39 p->copyValues( pack ); 40 if ( p->version() == pack->version() )
40 delete pack; 41 {
41 pack = p; 42 p->copyValues( pack );
43 delete pack;
44 pack = p;
45 } else {
46 p->setName( pack->name()+"["+p->version()+"]" );
47 pack->setName( pack->name()+"["+pack->version()+"]" );
48 packageList.insert( pack->name(), pack );
49 origPackageList.insert( pack->name(), pack );
50 }
42 }else{ 51 }else{
43 packageList.insert( pack->name(), pack ); 52 packageList.insert( pack->name(), pack );
44 origPackageList.insert( pack->name(), pack ); 53 origPackageList.insert( pack->name(), pack );
45 empty=false;
46 }; 54 };
55 empty=false;
47 updateSections( pack ); 56 updateSections( pack );
48} 57}
49 58