diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-03-05 10:41:31 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2020-03-05 11:01:25 +0100 |
commit | f7c87ed3dd29884445a760cbe57404e139c76407 (patch) | |
tree | 5f2fccb90e8c12fed143d4ecf50d1ac28d46c614 | |
parent | 6d269dbf5667bcee0597c42d1099d2e54c5663b9 (diff) |
ConfigFile: Improve error messages and complete docs
-rw-r--r-- | core/io/config_file.cpp | 18 | ||||
-rw-r--r-- | core/io/config_file.h | 2 | ||||
-rw-r--r-- | doc/classes/ConfigFile.xml | 25 |
3 files changed, 26 insertions, 19 deletions
diff --git a/core/io/config_file.cpp b/core/io/config_file.cpp index b44ac16a87..531467ecd6 100644 --- a/core/io/config_file.cpp +++ b/core/io/config_file.cpp @@ -86,7 +86,8 @@ void ConfigFile::set_value(const String &p_section, const String &p_key, const V Variant ConfigFile::get_value(const String &p_section, const String &p_key, Variant p_default) const { if (!values.has(p_section) || !values[p_section].has(p_key)) { - ERR_FAIL_COND_V_MSG(p_default.get_type() == Variant::NIL, Variant(), "Couldn't find the given section '" + p_section + "', key '" + p_key + "' and no default was given."); + ERR_FAIL_COND_V_MSG(p_default.get_type() == Variant::NIL, Variant(), + vformat("Couldn't find the given section \"%s\" and key \"%s\", and no default was given.", p_section, p_key)); return p_default; } @@ -112,7 +113,7 @@ void ConfigFile::get_sections(List<String> *r_sections) const { } void ConfigFile::get_section_keys(const String &p_section, List<String> *r_keys) const { - ERR_FAIL_COND_MSG(!values.has(p_section), "Cannont get keys from nonexistent section '" + p_section + "'."); + ERR_FAIL_COND_MSG(!values.has(p_section), vformat("Cannot get keys from nonexistent section \"%s\".", p_section)); for (OrderedHashMap<String, Variant>::ConstElement E = values[p_section].front(); E; E = E.next()) { r_keys->push_back(E.key()); @@ -121,12 +122,14 @@ void ConfigFile::get_section_keys(const String &p_section, List<String> *r_keys) void ConfigFile::erase_section(const String &p_section) { + ERR_FAIL_COND_MSG(!values.has(p_section), vformat("Cannot erase nonexistent section \"%s\".", p_section)); values.erase(p_section); } void ConfigFile::erase_section_key(const String &p_section, const String &p_key) { - ERR_FAIL_COND_MSG(!values.has(p_section), "Cannot erase key from nonexistent section '" + p_section + "'."); + ERR_FAIL_COND_MSG(!values.has(p_section), vformat("Cannot erase key \"%s\" from nonexistent section \"%s\".", p_key, p_section)); + ERR_FAIL_COND_MSG(!values[p_section].has(p_key), vformat("Cannot erase nonexistent key \"%s\" from section \"%s\".", p_key, p_section)); values[p_section].erase(p_key); } @@ -291,7 +294,7 @@ Error ConfigFile::_parse(const String &p_path, VariantParser::Stream *p_stream) if (err == ERR_FILE_EOF) { return OK; } else if (err != OK) { - ERR_PRINT("ConfgFile - " + p_path + ":" + itos(lines) + " error: " + error_text + "."); + ERR_PRINT(vformat("ConfigFile parse error at %s:%d: %s.", p_path, lines, error_text)); return err; } @@ -324,11 +327,8 @@ void ConfigFile::_bind_methods() { ClassDB::bind_method(D_METHOD("save", "path"), &ConfigFile::save); ClassDB::bind_method(D_METHOD("load_encrypted", "path", "key"), &ConfigFile::load_encrypted); - ClassDB::bind_method(D_METHOD("load_encrypted_pass", "path", "pass"), &ConfigFile::load_encrypted_pass); + ClassDB::bind_method(D_METHOD("load_encrypted_pass", "path", "password"), &ConfigFile::load_encrypted_pass); ClassDB::bind_method(D_METHOD("save_encrypted", "path", "key"), &ConfigFile::save_encrypted); - ClassDB::bind_method(D_METHOD("save_encrypted_pass", "path", "pass"), &ConfigFile::save_encrypted_pass); -} - -ConfigFile::ConfigFile() { + ClassDB::bind_method(D_METHOD("save_encrypted_pass", "path", "password"), &ConfigFile::save_encrypted_pass); } diff --git a/core/io/config_file.h b/core/io/config_file.h index 150fd24693..7efcb5a04c 100644 --- a/core/io/config_file.h +++ b/core/io/config_file.h @@ -74,8 +74,6 @@ public: Error save_encrypted(const String &p_path, const Vector<uint8_t> &p_key); Error save_encrypted_pass(const String &p_path, const String &p_pass); - - ConfigFile(); }; #endif // CONFIG_FILE_H diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml index 00d98130f3..a16326d55a 100644 --- a/doc/classes/ConfigFile.xml +++ b/doc/classes/ConfigFile.xml @@ -37,7 +37,7 @@ <argument index="0" name="section" type="String"> </argument> <description> - Deletes the specified section along with all the key-value pairs inside. + Deletes the specified section along with all the key-value pairs inside. Raises an error if the section does not exist. </description> </method> <method name="erase_section_key"> @@ -48,6 +48,7 @@ <argument index="1" name="key" type="String"> </argument> <description> + Deletes the specified key in a section. Raises an error if either the section or the key do not exist. </description> </method> <method name="get_section_keys" qualifiers="const"> @@ -56,7 +57,7 @@ <argument index="0" name="section" type="String"> </argument> <description> - Returns an array of all defined key identifiers in the specified section. + Returns an array of all defined key identifiers in the specified section. Raises an error and returns an empty array if the section does not exist. </description> </method> <method name="get_sections" qualifiers="const"> @@ -76,7 +77,7 @@ <argument index="2" name="default" type="Variant" default="null"> </argument> <description> - Returns the current value for the specified section and key. If the section and/or the key do not exist, the method returns the value of the optional [code]default[/code] argument, or [code]null[/code] if it is omitted. + Returns the current value for the specified section and key. If either the section or the key do not exist, the method returns the fallback [code]default[/code] value. If [code]default[/code] is not specified or set to [code]null[/code], an error is also raised. </description> </method> <method name="has_section" qualifiers="const"> @@ -105,7 +106,7 @@ <argument index="0" name="path" type="String"> </argument> <description> - Loads the config file specified as a parameter. The file's contents are parsed and loaded in the ConfigFile object which the method was called on. + Loads the config file specified as a parameter. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on. Returns one of the [enum Error] code constants ([code]OK[/code] on success). </description> </method> @@ -117,6 +118,8 @@ <argument index="1" name="key" type="PackedByteArray"> </argument> <description> + Loads the encrypted config file specified as a parameter, using the provided [code]key[/code] to decrypt it. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on. + Returns one of the [enum Error] code constants ([code]OK[/code] on success). </description> </method> <method name="load_encrypted_pass"> @@ -124,9 +127,11 @@ </return> <argument index="0" name="path" type="String"> </argument> - <argument index="1" name="pass" type="String"> + <argument index="1" name="password" type="String"> </argument> <description> + Loads the encrypted config file specified as a parameter, using the provided [code]password[/code] to decrypt it. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on. + Returns one of the [enum Error] code constants ([code]OK[/code] on success). </description> </method> <method name="parse"> @@ -145,7 +150,7 @@ <argument index="0" name="path" type="String"> </argument> <description> - Saves the contents of the ConfigFile object to the file specified as a parameter. The output file uses an INI-style structure. + Saves the contents of the [ConfigFile] object to the file specified as a parameter. The output file uses an INI-style structure. Returns one of the [enum Error] code constants ([code]OK[/code] on success). </description> </method> @@ -157,6 +162,8 @@ <argument index="1" name="key" type="PackedByteArray"> </argument> <description> + Saves the contents of the [ConfigFile] object to the AES-256 encrypted file specified as a parameter, using the provided [code]key[/code] to encrypt it. The output file uses an INI-style structure. + Returns one of the [enum Error] code constants ([code]OK[/code] on success). </description> </method> <method name="save_encrypted_pass"> @@ -164,9 +171,11 @@ </return> <argument index="0" name="path" type="String"> </argument> - <argument index="1" name="pass" type="String"> + <argument index="1" name="password" type="String"> </argument> <description> + Saves the contents of the [ConfigFile] object to the AES-256 encrypted file specified as a parameter, using the provided [code]password[/code] to encrypt it. The output file uses an INI-style structure. + Returns one of the [enum Error] code constants ([code]OK[/code] on success). </description> </method> <method name="set_value"> @@ -179,7 +188,7 @@ <argument index="2" name="value" type="Variant"> </argument> <description> - Assigns a value to the specified key of the specified section. If the section and/or the key do not exist, they are created. Passing a [code]null[/code] value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed. + Assigns a value to the specified key of the specified section. If either the section or the key do not exist, they are created. Passing a [code]null[/code] value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed. </description> </method> </methods> |