]> git.tdb.fi Git - poefilter.git/blobdiff - source/filter.cpp
Tighten some parameters and return values
[poefilter.git] / source / filter.cpp
index 0f7a20e99ec929d03a2b2c5b07cfc52bbe4d71c7..2a173de7be5ab1d2514150c5482868310358aed4 100644 (file)
@@ -66,6 +66,7 @@ Filter::Loader::Loader(Filter &f, const PoeFilter &p):
        poe(p)
 {
        add("abstract", &Filter::abstract);
+       add("cancel", &Loader::cancel);
        add("hide", &Loader::hide);
        add("include", &Loader::include);
        add("show", &Loader::show);
@@ -94,7 +95,7 @@ bool Filter::Loader::category_order(const Category *c1, const Category *c2)
 
 void Filter::Loader::add_categories(const string &name, bool show)
 {
-       list<const Category *> categs;
+       vector<const Category *> categs;
        if(name.find('*')!=string::npos)
        {
                poe.find_categories(glob_to_re(name), categs);
@@ -102,12 +103,12 @@ void Filter::Loader::add_categories(const string &name, bool show)
                if(categs.empty())
                        throw key_error(name);
 
-               categs.sort(&category_order);
+               sort(categs, &category_order);
        }
        else
                categs.push_back(&poe.get_category(name));
 
-       for(list<const Category *>::const_iterator i=categs.begin(); i!=categs.end(); ++i)
+       for(vector<const Category *>::const_iterator i=categs.begin(); i!=categs.end(); ++i)
        {
                bool found = false;
                for(list<Block>::const_iterator j=obj.blocks.begin(); (!found && j!=obj.blocks.end()); ++j)
@@ -128,7 +129,7 @@ void Filter::Loader::add_categories(const string &name, bool show)
 
 void Filter::Loader::cancel(const string &name)
 {
-       list<const Category *> categs;
+       vector<const Category *> categs;
        if(name.find('*')!=string::npos)
        {
                poe.find_categories(glob_to_re(name), categs);
@@ -139,7 +140,7 @@ void Filter::Loader::cancel(const string &name)
        else
                categs.push_back(&poe.get_category(name));
 
-       for(list<const Category *>::const_iterator i=categs.begin(); i!=categs.end(); ++i)
+       for(vector<const Category *>::const_iterator i=categs.begin(); i!=categs.end(); ++i)
                for(list<Block>::iterator j=obj.blocks.begin(); j!=obj.blocks.end(); ++j)
                        if(j->category==*i)
                        {