use list instead of set, we cannot assume tag files cannot have duplicates, capabilit...
authorDuncan Mac-Vicar P <dmacvicar@suse.de>
Wed, 1 Feb 2006 11:50:31 +0000 (11:50 +0000)
committerDuncan Mac-Vicar P <dmacvicar@suse.de>
Wed, 1 Feb 2006 11:50:31 +0000 (11:50 +0000)
zypp/parser/tagfile/TagFileParser.cc
zypp/parser/tagfile/TagFileParser.h
zypp/source/susetags/PackagesParser.cc
zypp/source/susetags/SelectionSelFileParser.cc
zypp/source/susetags/SuseTagsSelectionImpl.h

index ef4d1d7..4eb6729 100644 (file)
@@ -106,7 +106,7 @@ namespace zypp
             // while we dont find the list terminator
             while( ! boost::regex_match(element, element_what, boost::regex("^\\-([^[:space:]^\\.]+)(\\.([^[:space:]]+))?:$"), boost::match_extra))
             {
-              tag.values.insert(element);
+              tag.values.push_back(element);
               XXX << element << std::endl;
               getline(file, element);
               //dumpRegexpResults(element_what);
index 45b3e05..4412cfe 100644 (file)
@@ -13,7 +13,6 @@
 #define ZYPP_PARSER_TAGFILE2_H
 
 #include <iosfwd>
-#include <set>
 #include <map>
 #include <list>
 
@@ -42,7 +41,7 @@ namespace zypp
         {
           std::string name;
           std::string modifier;
-          std::set<std::string> values;
+          std::list<std::string> values;
         };
 
         struct SingleTag
index 7167891..d7b98fa 100644 (file)
@@ -62,9 +62,9 @@ namespace zypp
           collectPkg( shared_ptr<source::susetags::SuseTagsPackageImpl>(new source::susetags::SuseTagsPackageImpl(_source)) );
         }
 
-        void collectDeps( const std::set<std::string> & depstr_r, CapSet & capset )
+        void collectDeps( const std::list<std::string> & depstr_r, CapSet & capset )
         {
-          for ( std::set<std::string>::const_iterator it = depstr_r.begin();
+          for ( std::list<std::string>::const_iterator it = depstr_r.begin();
                 it != depstr_r.end(); ++it )
             {
               capset.insert( CapFactory().parse( ResTraits<Package>::kind, *it ) );
@@ -152,12 +152,12 @@ namespace zypp
             }
           else if ( mtag_r.name == "Key" )
             {
-               pkgImpl->_keywords = std::list<std::string>(mtag_r.values.begin(), mtag_r.values.end());
+               pkgImpl->_keywords = mtag_r.values;
             }
           else if ( mtag_r.name == "Aut" )
             {
               // MultiTag is a Set but author is a list
-              pkgImpl->_authors = std::list<std::string>(mtag_r.values.begin(), mtag_r.values.end());
+              pkgImpl->_authors = mtag_r.values;
             }
         }
 
index dafbae1..64355cb 100644 (file)
@@ -113,25 +113,25 @@ namespace zypp
         CapFactory _f;
        Dependencies _deps;
 
-        for (std::set<std::string>::const_iterator it = selImpl->_inspacks[LanguageCode()].begin(); it != selImpl->_inspacks[LanguageCode()].end(); it++)
+        for (std::list<std::string>::const_iterator it = selImpl->_inspacks[LanguageCode()].begin(); it != selImpl->_inspacks[LanguageCode()].end(); it++)
         {
           Capability _cap = _f.parse( ResTraits<Package>::kind, *it);
          _deps[Dep::REQUIRES].insert(_cap);
         }
         
-        for (std::set<std::string>::const_iterator it = selImpl->_recommends.begin(); it != selImpl->_recommends.end(); it++)
+        for (std::list<std::string>::const_iterator it = selImpl->_recommends.begin(); it != selImpl->_recommends.end(); it++)
         {
           Capability _cap = _f.parse( ResTraits<Selection>::kind, *it );
          _deps[Dep::RECOMMENDS].insert(_cap);
         }
 
-        for (std::set<std::string>::const_iterator it = selImpl->_requires.begin(); it != selImpl->_requires.end(); it++)
+        for (std::list<std::string>::const_iterator it = selImpl->_requires.begin(); it != selImpl->_requires.end(); it++)
         {
           Capability _cap = _f.parse( ResTraits<Selection>::kind, *it );
          _deps[Dep::REQUIRES].insert(_cap);
         }
 
-        for (std::set<std::string>::const_iterator it = selImpl->_conflicts.begin(); it != selImpl->_conflicts.end(); it++)
+        for (std::list<std::string>::const_iterator it = selImpl->_conflicts.begin(); it != selImpl->_conflicts.end(); it++)
         {
           Capability _cap = _f.parse( ResTraits<Selection>::kind, *it );
          _deps[Dep::CONFLICTS].insert(_cap);
index ea22709..41f6b51 100644 (file)
@@ -73,15 +73,15 @@ namespace zypp
       std::string _category;
       bool _visible;
 
-      std::set<std::string> _suggests;
-      std::set<std::string> _recommends;
-      std::set<std::string> _requires;
-      std::set<std::string> _conflicts;
-      std::set<std::string> _supported_locales;
-      std::map< LanguageCode, std::set<std::string> > _insnotify;
-      std::map< LanguageCode, std::set<std::string> > _delnotify;
-      std::map< LanguageCode, std::set<std::string> > _inspacks;
-      std::map< LanguageCode, std::set<std::string> > _delpacks;
+      std::list<std::string> _suggests;
+      std::list<std::string> _recommends;
+      std::list<std::string> _requires;
+      std::list<std::string> _conflicts;
+      std::list<std::string> _supported_locales;
+      std::map< LanguageCode, std::list<std::string> > _insnotify;
+      std::map< LanguageCode, std::list<std::string> > _delnotify;
+      std::map< LanguageCode, std::list<std::string> > _inspacks;
+      std::map< LanguageCode, std::list<std::string> > _delpacks;
       
     };
     ///////////////////////////////////////////////////////////////////