summaryrefslogtreecommitdiff
path: root/modules/m_regex_stdlib.cpp
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-01-24 12:01:50 +0000
committerSadie Powell <sadie@witchery.services>2024-01-24 12:22:51 +0000
commit7ac1fe58478d58e2480b6919c4abf3a82929169c (patch)
tree198ad9a6e23d4c189dce57fd95306b6b22d8c23f /modules/m_regex_stdlib.cpp
parent72acef4e159df5dcdb93b3c13b2f9d2e5e4c21a9 (diff)
Rename several modules to remove the m_ prefix.
Diffstat (limited to 'modules/m_regex_stdlib.cpp')
-rw-r--r--modules/m_regex_stdlib.cpp107
1 files changed, 0 insertions, 107 deletions
diff --git a/modules/m_regex_stdlib.cpp b/modules/m_regex_stdlib.cpp
deleted file mode 100644
index d759cc8fd..000000000
--- a/modules/m_regex_stdlib.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- *
- * (C) 2012-2024 Anope Team
- * Contact us at team@anope.org
- *
- * Please read COPYING and README for further details.
- */
-
-#include "module.h"
-
-#include <regex>
-
-class StdLibRegex final
- : public Regex
-{
-private:
- std::regex regex;
-
-public:
- StdLibRegex(const Anope::string &expr, std::regex::flag_type type)
- : Regex(expr)
- {
- try
- {
- regex.assign(expr.str(), type | std::regex::optimize);
- }
- catch (const std::regex_error& error)
- {
- throw RegexException("Error in regex " + expr + ": " + error.what());
- }
- }
-
- bool Matches(const Anope::string &str)
- {
- return std::regex_search(str.str(), regex);
- }
-};
-
-class StdLibRegexProvider final
- : public RegexProvider
-{
-public:
- std::regex_constants::syntax_option_type type;
-
- StdLibRegexProvider(Module *creator)
- : RegexProvider(creator, "regex/stdlib")
- {
- }
-
- Regex *Compile(const Anope::string &expression) override
- {
- return new StdLibRegex(expression, type);
- }
-};
-
-class ModuleRegexStdLib final
- : public Module
-{
-private:
- StdLibRegexProvider stdlib_regex_provider;
-
-public:
- ModuleRegexStdLib(const Anope::string &modname, const Anope::string &creator)
- : Module(modname, creator, EXTRA | VENDOR)
- , stdlib_regex_provider(this)
- {
- this->SetPermanent(true);
- }
-
- void OnReload(Configuration::Conf *conf) override
- {
- Configuration::Block *block = conf->GetModule(this);
-
- const Anope::string syntax = block->Get<const Anope::string>("syntax", "ecmascript");
- if (syntax == "awk")
- stdlib_regex_provider.type = std::regex::awk;
- else if (syntax == "basic")
- stdlib_regex_provider.type = std::regex::basic;
- else if (syntax == "ecmascript")
- stdlib_regex_provider.type = std::regex::ECMAScript;
- else if (syntax == "egrep")
- stdlib_regex_provider.type = std::regex::egrep;
- else if (syntax == "extended")
- stdlib_regex_provider.type = std::regex::extended;
- else if (syntax == "grep")
- stdlib_regex_provider.type = std::regex::grep;
- else
- throw ConfigException(this->name + ": syntax must be set to awk, basic, ecmascript, egrep, extended, or grep.");
- }
-
- ~ModuleRegexStdLib()
- {
- for (auto *xlm : XLineManager::XLineManagers)
- {
- for (auto *x : xlm->GetList())
- {
- if (x->regex && dynamic_cast<StdLibRegex *>(x->regex))
- {
- delete x->regex;
- x->regex = NULL;
- }
- }
- }
- }
-};
-
-MODULE_INIT(ModuleRegexStdLib)