aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/extra
diff options
context:
space:
mode:
authorGravatar Sadie Powell2018-07-31 03:14:09 +0100
committerGravatar Sadie Powell2019-01-25 02:52:28 +0000
commit97aba4f8a57877ab68ddd618b96f52342970f998 (patch)
treec8e162e21d563dd631db80460dc04003ba6653c4 /src/modules/extra
parentReplace the override macro with the override keyword. (diff)
Move m_regex_stdlib out of extras now it can always be built.
Diffstat (limited to 'src/modules/extra')
-rw-r--r--src/modules/extra/m_regex_stdlib.cpp96
1 files changed, 0 insertions, 96 deletions
diff --git a/src/modules/extra/m_regex_stdlib.cpp b/src/modules/extra/m_regex_stdlib.cpp
deleted file mode 100644
index 4065ec014..000000000
--- a/src/modules/extra/m_regex_stdlib.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2012 ChrisTX <chris@rev-crew.info>
- *
- * This file is part of InspIRCd. InspIRCd is free software: you can
- * redistribute it and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation, version 2.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/// $CompilerFlags: -std=c++11
-
-
-#include "inspircd.h"
-#include "modules/regex.h"
-#include <regex>
-
-class StdRegex : public Regex
-{
- std::regex regexcl;
-
- public:
- StdRegex(const std::string& rx, std::regex::flag_type fltype) : Regex(rx)
- {
- try{
- regexcl.assign(rx, fltype | std::regex::optimize);
- }
- catch(std::regex_error rxerr)
- {
- throw RegexException(rx, rxerr.what());
- }
- }
-
- bool Matches(const std::string& text) override
- {
- return std::regex_search(text, regexcl);
- }
-};
-
-class StdRegexFactory : public RegexFactory
-{
- public:
- std::regex::flag_type regextype;
- StdRegexFactory(Module* m) : RegexFactory(m, "regex/stdregex") {}
- Regex* Create(const std::string& expr) override
- {
- return new StdRegex(expr, regextype);
- }
-};
-
-class ModuleRegexStd : public Module
-{
-public:
- StdRegexFactory ref;
- ModuleRegexStd() : ref(this)
- {
- }
-
- Version GetVersion() override
- {
- return Version("Regex Provider Module for std::regex", VF_VENDOR);
- }
-
- void ReadConfig(ConfigStatus& status) override
- {
- ConfigTag* Conf = ServerInstance->Config->ConfValue("stdregex");
- std::string regextype = Conf->getString("type", "ecmascript");
-
- if (stdalgo::string::equalsci(regextype, "bre"))
- ref.regextype = std::regex::basic;
- else if (stdalgo::string::equalsci(regextype, "ere"))
- ref.regextype = std::regex::extended;
- else if (stdalgo::string::equalsci(regextype, "awk"))
- ref.regextype = std::regex::awk;
- else if (stdalgo::string::equalsci(regextype, "grep"))
- ref.regextype = std::regex::grep;
- else if (stdalgo::string::equalsci(regextype, "egrep"))
- ref.regextype = std::regex::egrep;
- else
- {
- if (!stdalgo::string::equalsci(regextype, "ecmascript"))
- ServerInstance->SNO->WriteToSnoMask('a', "WARNING: Non-existent regex engine '%s' specified. Falling back to ECMAScript.", regextype.c_str());
- ref.regextype = std::regex::ECMAScript;
- }
- }
-};
-
-MODULE_INIT(ModuleRegexStd)