Software /
code /
prosody
Changeset
12781:22066b02887f
util.startup: Provide a common Lua 5.3+ math.type() for Lua 5.2
Code deduplication
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 19 Oct 2022 16:25:05 +0200 |
parents | 12780:2c0c1b18a02b |
children | 12782:8815d3090928 |
files | util/format.lua util/jsonpointer.lua util/serialization.lua util/startup.lua |
diffstat | 4 files changed, 17 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/util/format.lua Thu Oct 20 16:56:45 2022 +0200 +++ b/util/format.lua Wed Oct 19 16:25:05 2022 +0200 @@ -11,9 +11,7 @@ local valid_utf8 = require "util.encodings".utf8.valid; local type = type; local dump = require "util.serialization".new("debug"); -local num_type = math.type or function (n) - return n % 1 == 0 and n <= 9007199254740992 and n >= -9007199254740992 and "integer" or "float"; -end +local num_type = math.type; -- In Lua 5.3+ these formats throw an error if given a float local expects_integer = { c = true, d = true, i = true, o = true, u = true, X = true, x = true, };
--- a/util/jsonpointer.lua Thu Oct 20 16:56:45 2022 +0200 +++ b/util/jsonpointer.lua Wed Oct 19 16:25:05 2022 +0200 @@ -1,6 +1,4 @@ -local m_type = math.type or function (n) - return n % 1 == 0 and n <= 9007199254740992 and n >= -9007199254740992 and "integer" or "float"; -end; +local m_type = math.type; local function unescape_token(escaped_token) local unescaped = escaped_token:gsub("~1", "/"):gsub("~0", "~")
--- a/util/serialization.lua Thu Oct 20 16:56:45 2022 +0200 +++ b/util/serialization.lua Wed Oct 19 16:25:05 2022 +0200 @@ -22,9 +22,7 @@ local envload = require"util.envload".envload; local pos_inf, neg_inf = math.huge, -math.huge; -local m_type = math.type or function (n) - return n % 1 == 0 and n <= 9007199254740992 and n >= -9007199254740992 and "integer" or "float"; -end; +local m_type = math.type; local function rawpairs(t) return next, t, nil;
--- a/util/startup.lua Thu Oct 20 16:56:45 2022 +0200 +++ b/util/startup.lua Wed Oct 19 16:25:05 2022 +0200 @@ -277,6 +277,20 @@ startup.detect_platform(); startup.detect_installed(); _G.prosody = prosody; + + -- COMPAT Lua < 5.3 + if not math.type then + -- luacheck: ignore 122/math + function math.type(n) + if type(n) == "number" then + if n % 1 == 0 and (n + 1 ~= n and n - 1 ~= n) then + return "integer" + else + return "float" + end + end + end + end end function startup.setup_datadir()