diff options
author | Daniel Hartwig <mandyke@gmail.com> | 2012-03-18 05:13:21 +0800 |
---|---|---|
committer | Daniel Hartwig <mandyke@gmail.com> | 2012-03-18 05:13:21 +0800 |
commit | 56ed52277ce732a42e5e84e5fe319a5e1c4a8a64 (patch) | |
tree | 1c997e2268c7da206f4b9a3ecc51e875d3af07c8 /src | |
parent | 5194533b54a8e3452802a416202032b133e273aa (diff) | |
download | aptitude-56ed52277ce732a42e5e84e5fe319a5e1c4a8a64.tar.gz |
Use libraries (liba, libb, etc.) with 'firstchar' grouping policy
Diffstat (limited to 'src')
-rw-r--r-- | src/pkg_grouppolicy.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/pkg_grouppolicy.cc b/src/pkg_grouppolicy.cc index 58803dea..84b158fc 100644 --- a/src/pkg_grouppolicy.cc +++ b/src/pkg_grouppolicy.cc @@ -696,7 +696,7 @@ class pkg_grouppolicy_firstchar:public pkg_grouppolicy { pkg_grouppolicy_factory *chain; - typedef map<char, pair<pkg_grouppolicy *, pkg_subtree *> > childmap; + typedef map<string, pair<pkg_grouppolicy *, pkg_subtree *> > childmap; // Store the child group policies and their associated subtrees. childmap children; public: @@ -716,22 +716,23 @@ public: { eassert(pkg.Name()); - char firstchar=toupper(pkg.Name()[0]); + string treename; + if(strncmp(pkg.Name(), "lib", 3) == 0) + treename = string(pkg.Name(), 4); + else + treename = pkg.Name()[0]; - childmap::iterator found=children.find(firstchar); + childmap::iterator found=children.find(treename); if(found!=children.end()) found->second.first->add_package(pkg, found->second.second); else { - string treename; - treename+=firstchar; - pkg_subtree *newtree=new pkg_subtree(cw::util::transcode(treename), L"", get_desc_sig()); pkg_grouppolicy *newchild=chain->instantiate(get_sig(), get_desc_sig()); - children[firstchar].first=newchild; - children[firstchar].second=newtree; + children[treename].first=newchild; + children[treename].second=newtree; root->add_child(newtree); newtree->set_num_packages_parent(root); |