summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/stdalgo.h12
-rw-r--r--src/configparser.cpp2
-rw-r--r--src/logger.cpp2
-rw-r--r--src/modules.cpp2
-rw-r--r--src/modules/m_showfile.cpp2
5 files changed, 16 insertions, 4 deletions
diff --git a/include/stdalgo.h b/include/stdalgo.h
index cb01a250a..3e00a4cdc 100644
--- a/include/stdalgo.h
+++ b/include/stdalgo.h
@@ -112,4 +112,16 @@ namespace stdalgo
}
return false;
}
+
+ /**
+ * Check if an element with the given value is in a container. Equivalent to (std::find(cont.begin(), cont.end(), val) != cont.end()).
+ * @param cont Container to find the element in
+ * @param val Value of the element to look for
+ * @return True if the element was found in the container, false otherwise
+ */
+ template <template<typename, typename> class Cont, typename T, typename Alloc>
+ inline bool isin(const Cont<T, Alloc>& cont, const T& val)
+ {
+ return (std::find(cont.begin(), cont.end(), val) != cont.end());
+ }
}
diff --git a/src/configparser.cpp b/src/configparser.cpp
index 89ad6493a..6b0d8fa04 100644
--- a/src/configparser.cpp
+++ b/src/configparser.cpp
@@ -367,7 +367,7 @@ void ParseStack::DoReadFile(const std::string& key, const std::string& name, int
bool ParseStack::ParseFile(const std::string& path, int flags, const std::string& mandatory_tag, bool isexec)
{
ServerInstance->Logs->Log("CONFIG", LOG_DEBUG, "Reading (isexec=%d) %s", isexec, path.c_str());
- if (std::find(reading.begin(), reading.end(), path) != reading.end())
+ if (stdalgo::isin(reading, path))
throw CoreException((isexec ? "Executable " : "File ") + path + " is included recursively (looped inclusion)");
/* It's not already included, add it to the list of files we've loaded */
diff --git a/src/logger.cpp b/src/logger.cpp
index 61f1eb179..8bd5f7f88 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -288,7 +288,7 @@ void LogManager::Log(const std::string &type, LogLevel loglevel, const std::stri
for (std::map<LogStream *, std::vector<std::string> >::iterator gi = GlobalLogStreams.begin(); gi != GlobalLogStreams.end(); ++gi)
{
- if (std::find(gi->second.begin(), gi->second.end(), type) != gi->second.end())
+ if (stdalgo::isin(gi->second, type))
{
continue;
}
diff --git a/src/modules.cpp b/src/modules.cpp
index 4c0af3bac..05a1552f4 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -178,7 +178,7 @@ ModuleManager::~ModuleManager()
bool ModuleManager::Attach(Implementation i, Module* mod)
{
- if (std::find(EventHandlers[i].begin(), EventHandlers[i].end(), mod) != EventHandlers[i].end())
+ if (stdalgo::isin(EventHandlers[i], mod))
return false;
EventHandlers[i].push_back(mod);
diff --git a/src/modules/m_showfile.cpp b/src/modules/m_showfile.cpp
index 132a22267..cb51c4387 100644
--- a/src/modules/m_showfile.cpp
+++ b/src/modules/m_showfile.cpp
@@ -113,7 +113,7 @@ class ModuleShowFile : public Module
// This is our command, make sure we don't have the same entry twice
sfcmd = static_cast<CommandShowFile*>(handler);
- if (std::find(newcmds.begin(), newcmds.end(), sfcmd) != newcmds.end())
+ if (stdalgo::isin(newcmds, sfcmd))
throw ModuleException("Command " + cmdname + " is already used in a <showfile> tag");
}
else