- if (!RegexEngine.empty())
- {
- if (RegexEngine == newrxengine)
- return;
-
- ServerInstance->SNO->WriteToSnoMask('x', "Dumping all R-Lines due to regex engine change (was '%s', now '%s')", RegexEngine.c_str(), newrxengine.c_str());
- ServerInstance->XLines->DelAll("R");
- }
- rxengine = 0;
- RegexEngine = newrxengine;
- modulelist* ml = ServerInstance->Modules->FindInterface("RegularExpression");
- if (ml)
- {
- for (modulelist::iterator i = ml->begin(); i != ml->end(); ++i)
- {
- if (RegexNameRequest(this, *i).Send() == newrxengine)
- {
- ServerInstance->SNO->WriteToSnoMask('x', "R-Line now using engine '%s'", RegexEngine.c_str());
- rxengine = *i;
- }
- }
- }
- if (!rxengine)
+ if (newrxengine.empty())
+ rxfactory.SetProvider("regex");
+ else
+ rxfactory.SetProvider("regex/" + newrxengine);
+ if (!rxfactory)