- std::vector<std::string> mytargets = parsePlusMinusOptions("target", Options, alltargets);
- if (mytargets.empty() == false)
- for (auto const &target : alltargets)
- {
- std::map<std::string, std::string>::const_iterator const opt = Options.find(target);
- if (opt == Options.end())
- continue;
- auto const tarItr = std::find(mytargets.begin(), mytargets.end(), target);
- bool const optValue = StringToBool(opt->second);
- if (optValue == true && tarItr == mytargets.end())
- mytargets.push_back(target);
- else if (optValue == false && tarItr != mytargets.end())
- mytargets.erase(std::remove(mytargets.begin(), mytargets.end(), target), mytargets.end());
- }
+ std::vector<std::string> deftargets;
+ deftargets.reserve(alltargets.size());
+ std::copy_if(alltargets.begin(), alltargets.end(), std::back_inserter(deftargets), [&](std::string const &t) {
+ std::string c = "Acquire::IndexTargets::";
+ c.append(Name).append("::").append(t).append("::DefaultEnabled");
+ return _config->FindB(c, true);
+ });
+ std::vector<std::string> mytargets = parsePlusMinusOptions("target", Options, deftargets);
+ for (auto const &target : alltargets)
+ {
+ std::map<std::string, std::string>::const_iterator const opt = Options.find(target);
+ if (opt == Options.end())
+ continue;
+ auto const tarItr = std::find(mytargets.begin(), mytargets.end(), target);
+ bool const optValue = StringToBool(opt->second);
+ if (optValue == true && tarItr == mytargets.end())
+ mytargets.push_back(target);
+ else if (optValue == false && tarItr != mytargets.end())
+ mytargets.erase(std::remove(mytargets.begin(), mytargets.end(), target), mytargets.end());
+ }
+