# HG changeset patch # User Kim Alvefur # Date 1543433813 -3600 # Node ID 3da6cc927ee67595f1d63d783df3c36144527bc9 # Parent ede4e15a0fed272d34ccacba98207053fd0f01d6 util.format: Tweak how nil values are handled Because [] seems exsessive diff -r ede4e15a0fed -r 3da6cc927ee6 spec/util_format_spec.lua --- a/spec/util_format_spec.lua Tue Nov 27 21:23:31 2018 +0100 +++ b/spec/util_format_spec.lua Wed Nov 28 20:36:53 2018 +0100 @@ -5,6 +5,8 @@ it("should work", function() assert.equal("hello", format("%s", "hello")); assert.equal("", format("%s")); + assert.equal("", format("%d")); + assert.equal("", format("%q")); assert.equal(" []", format("", nil)); assert.equal("true", format("%s", true)); assert.equal("[true]", format("%d", true)); diff -r ede4e15a0fed -r 3da6cc927ee6 util/format.lua --- a/util/format.lua Tue Nov 27 21:23:31 2018 +0100 +++ b/util/format.lua Wed Nov 28 20:36:53 2018 +0100 @@ -28,13 +28,12 @@ if spec ~= "%%" then i = i + 1; local arg = args[i]; - if arg == nil then -- special handling for nil - arg = "" - args[i] = ""; - end local option = spec:sub(-1); - if option == "q" or option == "s" then -- arg should be string + if arg == nil then + args[i] = "nil"; + spec = "<%s>"; + elseif option == "q" or option == "s" then -- arg should be string args[i] = tostring(arg); elseif type(arg) ~= "number" then -- arg isn't number as expected? args[i] = tostring(arg);