diff options
author | alberth <alberth@openttd.org> | 2011-03-03 20:55:06 +0000 |
---|---|---|
committer | alberth <alberth@openttd.org> | 2011-03-03 20:55:06 +0000 |
commit | 6a88af662bdca19e1a9cc90f0a00c80496d79b98 (patch) | |
tree | 55e357be64c4829e4c5a03f350c21d45ebee2801 /src | |
parent | 722296e79747610b7822c07f2edd908563456d92 (diff) | |
download | openttd-6a88af662bdca19e1a9cc90f0a00c80496d79b98.tar.xz |
(svn r22169) -Add: Add parameter to disable automatic group creation in IniLoadFile::GetGroup().
Diffstat (limited to 'src')
-rw-r--r-- | src/ini_load.cpp | 13 | ||||
-rw-r--r-- | src/ini_type.h | 2 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/ini_load.cpp b/src/ini_load.cpp index 62bec51d5..4ce33405b 100644 --- a/src/ini_load.cpp +++ b/src/ini_load.cpp @@ -132,13 +132,14 @@ IniLoadFile::~IniLoadFile() } /** - * Get the group with the given name, and if it doesn't exist - * create a new group. + * Get the group with the given name. If it doesn't exist + * and \a create_new is \c true create a new group. * @param name name of the group to find. - * @param len the maximum length of said name. - * @return the requested group. + * @param len the maximum length of said name (\c 0 means length of the string). + * @param create_new Allow creation of group if it does not exist. + * @return The requested group if it exists or was created, else \c NULL. */ -IniGroup *IniLoadFile::GetGroup(const char *name, size_t len) +IniGroup *IniLoadFile::GetGroup(const char *name, size_t len, bool create_new) { if (len == 0) len = strlen(name); @@ -149,6 +150,8 @@ IniGroup *IniLoadFile::GetGroup(const char *name, size_t len) } } + if (!create_new) return NULL; + /* otherwise make a new one */ IniGroup *group = new IniGroup(this, name, len); group->comment = strdup("\n"); diff --git a/src/ini_type.h b/src/ini_type.h index b84f7adf6..6aad2648b 100644 --- a/src/ini_type.h +++ b/src/ini_type.h @@ -57,7 +57,7 @@ struct IniLoadFile { IniLoadFile(const char * const *list_group_names = NULL); virtual ~IniLoadFile(); - IniGroup *GetGroup(const char *name, size_t len = 0); + IniGroup *GetGroup(const char *name, size_t len = 0, bool create_new = true); void RemoveGroup(const char *name); void LoadFromDisk(const char *filename); |