gears = require("gears") local module = {} local function massage_args_for_debug_output(...) local args = table.pack(...) for i = 1,select('#', ...) do args[i] = (args[i] and gears.debug.dump_return(args[i], i, 65535)) or string.format('%d : %s', i, args[i]) end return args end function module.sprintf(s, ...) local args = massage_args_for_debug_output(...) return string.format(s, table.unpack(args)) end function module.printf(s, ...) print(dsprintf(s, ...) or "(nil)") end function module.dump(...) local args = massage_args_for_debug_output(...) for _,v in ipairs(args) do print(tostring(v)) end end return module