+ for(StringList::iterator i=warnings.begin(); i!=warnings.end(); ++i)
+ {
+ bool flag = i->compare(0, 3, "no-");
+
+ string warn = (flag ? *i : i->substr(3));
+ string no_warn = "no-"+warn;
+
+ for(StringList::iterator j=i; j!=warnings.end();)
+ {
+ if(j!=i && (*j==warn || *j==no_warn))
+ {
+ flag = (*j==warn);
+ j = warnings.erase(j);
+ }
+ else
+ ++j;
+ }
+
+ *i = (flag ? warn : no_warn);
+ }