MCPcopy Create free account
hub / github.com/DFHack/dfhack / enableFilter

Function enableFilter

plugins/debug.cpp:919–956  ·  view source on GitHub ↗

Handler for debugfilter enable

Source from the content-addressed store, hash-verified

917
918//! Handler for debugfilter enable
919static command_result enableFilter(color_ostream& out,
920 std::vector<std::string>& parameters)
921{
922 std::set<DebugCategory*> modified;
923 bool mustSave = false;
924 return applyFilterIds(out,parameters,"enable",
925 // Per item
926 [&modified,&mustSave](FilterManager::iterator& iter) -> bool {
927 Filter& filter = iter->second;
928 bool enabled = filter.enabled();
929 if (enabled == true)
930 return true;
931 filter.enabled(true);
932 auto& catMan = DebugManager::getInstance();
933 for (DebugCategory* cat: catMan) {
934 if (filter.applyAgain(*cat)) {
935 modified.emplace(cat);
936 filter.addMatch();
937 }
938 }
939 mustSave = mustSave || filter.persistent();
940 return false;
941 },
942 // After list
943 [&modified,&mustSave,&out]() {
944 for (DebugCategory* cat: modified) {
945 // Reset filtering back to default
946 cat->allowed(DebugCategory::LWARNING);
947 auto& filMan = FilterManager::getInstance();
948 // Reapply all remaining filters
949 for (auto& filterPair: filMan)
950 filterPair.second.applyAgain(*cat);
951 }
952 if (mustSave)
953 return FilterManager::getInstance().saveConfig(out);
954 return CR_OK;
955 });
956}
957
958//! Handler for debugfilter unset
959static command_result unsetFilter(color_ostream& out,

Callers

nothing calls this directly

Calls 7

applyFilterIdsFunction · 0.85
applyAgainMethod · 0.80
addMatchMethod · 0.80
persistentMethod · 0.80
allowedMethod · 0.80
saveConfigMethod · 0.80
enabledMethod · 0.45

Tested by

no test coverage detected