diff options
Diffstat (limited to 'include/configparser.h')
-rw-r--r-- | include/configparser.h | 46 |
1 files changed, 3 insertions, 43 deletions
diff --git a/include/configparser.h b/include/configparser.h index 999d79e24..680f11a61 100644 --- a/include/configparser.h +++ b/include/configparser.h @@ -17,29 +17,12 @@ */ -struct fpos -{ - std::string filename; - int line; - int col; - fpos(const std::string& name, int l = 1, int c = 1) : filename(name), line(l), col(c) {} - std::string str() - { - return filename + ":" + ConvToStr(line) + ":" + ConvToStr(col); - } -}; - -enum ParseFlags -{ - FLAG_USE_XML = 1, - FLAG_NO_EXEC = 2, - FLAG_NO_INC = 4 -}; +#pragma once struct ParseStack { std::vector<std::string> reading; - std::map<std::string, std::string> vars; + insp::flat_map<std::string, std::string, irc::insensitive_swo> vars; ConfigDataHash& output; ConfigFileCache& FilesOutput; std::stringstream& errstr; @@ -51,30 +34,7 @@ struct ParseStack vars["quot"] = "\""; vars["newline"] = vars["nl"] = "\n"; } - bool ParseFile(const std::string& name, int flags, const std::string& mandatory_tag = ""); - bool ParseExec(const std::string& name, int flags, const std::string& mandatory_tag = ""); + bool ParseFile(const std::string& name, int flags, const std::string& mandatory_tag = std::string(), bool isexec = false); void DoInclude(ConfigTag* includeTag, int flags); void DoReadFile(const std::string& key, const std::string& file, int flags, bool exec); }; - -/** RAII wrapper on FILE* to close files on exceptions */ -struct FileWrapper -{ - FILE* const f; - bool close_with_pclose; - FileWrapper(FILE* file, bool use_pclose = false) : f(file), close_with_pclose(use_pclose) {} - operator bool() { return (f != NULL); } - operator FILE*() { return f; } - ~FileWrapper() - { - if (f) - { - if (close_with_pclose) - pclose(f); - else - fclose(f); - } - } -}; - - |