Allow 'default' parameter in 'settings:get_bool' function
authorJordan Irwin <antumdeluge@gmail.com>
Sun, 17 Dec 2017 15:27:37 +0000 (07:27 -0800)
committerrubenwardy <rubenwardy@gmail.com>
Sun, 17 Dec 2017 15:27:37 +0000 (15:27 +0000)
Default value is used when the setting key is not found in the config
file. If default value is not set, 'nil' is returned.

#6188

doc/lua_api.txt
src/script/lua_api/l_settings.cpp

index aba01fa1d07324b4df29cc55ce0a3f70f5e3f529..7d568b6e1b6325c431bc67817466b445e0a6ce93 100644 (file)
@@ -4131,7 +4131,9 @@ It can be created via `Settings(filename)`.
 
 #### Methods
 * `get(key)`: returns a value
-* `get_bool(key)`: returns a boolean
+* `get_bool(key, [default])`: returns a boolean
+    * `default` is the value returned if `key` is not found.
+    * Returns `nil` if `key` is not found and `default` not specified.
 * `get_np_group(key)`: returns a NoiseParams table
 * `set(key, value)`
     * Setting names can't contain whitespace or any of `="{}#`.
index 141ac61d1c766f5f03b4c3ea65701790dbc2db62..1d56aed5f111cc1ea6379e611f6013a0ca2b4332 100644 (file)
@@ -100,7 +100,11 @@ int LuaSettings::l_get_bool(lua_State* L)
                bool value = o->m_settings->getBool(key);
                lua_pushboolean(L, value);
        } else {
-               lua_pushnil(L);
+               // Push default value
+               if (lua_isboolean(L, 3))
+                       lua_pushboolean(L, lua_toboolean(L, 3));
+               else
+                       lua_pushnil(L);
        }
 
        return 1;