--- a/util/format.lua Tue May 28 00:56:30 2019 +0200
+++ b/util/format.lua Thu May 30 13:41:05 2019 +0200
@@ -7,6 +7,9 @@
local pack = require "util.table".pack; -- TODO table.pack in 5.2+
local type = type;
local dump = require "util.serialization".new("debug");
+local num_type = math.type;
+
+local expects_integer = num_type and { c = true, d = true, i = true, o = true, u = true, X = true, x = true, } or {};
local function format(formatstring, ...)
local args = pack(...);
@@ -43,6 +46,9 @@
elseif type(arg) ~= "number" then -- arg isn't number as expected?
args[i] = tostring(arg);
spec = "[%s]";
+ elseif expects_integer[option] and num_type(arg) ~= "integer" then
+ args[i] = tostring(arg);
+ spec = "[%s]";
end
end
return spec;