]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/configparser.cpp
Keep multiple IOHookProvider references in class ListenSocket
[user/henk/code/inspircd.git] / src / configparser.cpp
index 1c406f218f793079875b625f2b841c255ad6d069..3be1ac9c53d39ce44f0a79dcd6d81defa55735f9 100644 (file)
@@ -155,7 +155,7 @@ struct Parser
                                }
                                else
                                {
-                                       std::map<std::string, std::string>::iterator var = stack.vars.find(varname);
+                                       insp::flat_map<std::string, std::string>::iterator var = stack.vars.find(varname);
                                        if (var == stack.vars.end())
                                                throw CoreException("Undefined XML entity reference '&" + varname + ";'");
                                        value.append(var->second);
@@ -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 */
@@ -385,17 +385,6 @@ bool ParseStack::ParseFile(const std::string& path, int flags, const std::string
 
 bool ConfigTag::readString(const std::string& key, std::string& value, bool allow_lf)
 {
-#ifdef __clang__
-# pragma clang diagnostic push
-# pragma clang diagnostic ignored "-Wunknown-pragmas"
-# pragma clang diagnostic ignored "-Wundefined-bool-conversion"
-#endif
-       // TODO: this is undefined behaviour but changing the API is too risky for 2.0.
-       if (!this)
-               return false;
-#ifdef __clang__
-# pragma clang diagnostic pop
-#endif
        for(std::vector<KeyVal>::iterator j = items.begin(); j != items.end(); ++j)
        {
                if(j->first != key)