X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fconfigparser.h;h=6326792187246e2b30f83b2c198a6f403a763605;hb=31897d26f2ae1f0fc794a5af512dd4e81053611b;hp=f46d143aeac86485a9e12f1263b43a1a059b30d3;hpb=f3c6c6123da841537b10598e766e1b61a7e66b54;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/configparser.h b/include/configparser.h index f46d143ae..632679218 100644 --- a/include/configparser.h +++ b/include/configparser.h @@ -1,7 +1,10 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2014 Attila Molnar + * Copyright (C) 2013, 2016 Sadie Powell + * Copyright (C) 2012 Robby + * Copyright (C) 2009-2010 Daniel De Graaf * * 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 @@ -19,29 +22,10 @@ #pragma once -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_COMPAT = 1, - FLAG_NO_EXEC = 2, - FLAG_NO_INC = 4 -}; - struct ParseStack { std::vector reading; - std::map vars; + insp::flat_map vars; ConfigDataHash& output; ConfigFileCache& FilesOutput; std::stringstream& errstr; @@ -57,23 +41,3 @@ struct ParseStack 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); - } - } -};