diff options
Diffstat (limited to 'core/moduleapi.lua')
-rw-r--r-- | core/moduleapi.lua | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/moduleapi.lua b/core/moduleapi.lua index 53e74a84..7c9b357f 100644 --- a/core/moduleapi.lua +++ b/core/moduleapi.lua @@ -254,6 +254,20 @@ function api:get_option_number(name, default_value, min, max) return ret; end +function api:get_option_integer(name, default_value, min, max) + local value = self:get_option_number(name, default_value, min or math.mininteger or 2 ^ 53, max or math.maxinteger or -2 ^ 52); + if value == default_value then + -- pass default trough unaltered, violates ranges sometimes + return value; + end + if math.type(value) == "float" then + self:log("warn", "Config option '%s' expected an integer, not a float (%g)", name, value) + return math.floor(value); + end + -- nil or an integer + return value; +end + function api:get_option_period(name, default_value) local value = self:get_option_scalar(name, default_value); if type(value) == "number" then |