summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoger Planas <roger.planas@isode.com>2017-07-04 11:03:55 (GMT)
committerRoger Planas <roger.planas@isode.com>2017-10-30 12:25:43 (GMT)
commitc29df10f0ab47db63509634fb1661ff55b8b47b3 (patch)
treeebf7486b653b554e3122c3509da17e17ef25f312 /Sluift/core.lua
parented25c7d2fe46dca4edecd359755b15e16620056e (diff)
downloadswift-c29df10f0ab47db63509634fb1661ff55b8b47b3.zip
swift-c29df10f0ab47db63509634fb1661ff55b8b47b3.tar.bz2
Sluift: Add support for Lua 5.3
This patch adds support for Lua 5.3, while keeping support for Lua 5.1 (a build with the bundled Lua succeeds) Test-information: Builds cleanly on Lua 5.1, 5.2 and Lua 5.3. Tests that make use of Sluift work with both Lua 5.2 and Lua 5.3 Change-Id: I4cbe2eb09ec8c753d8624047f5456be1de72c679
Diffstat (limited to 'Sluift/core.lua')
-rw-r--r--Sluift/core.lua3
1 files changed, 2 insertions, 1 deletions
diff --git a/Sluift/core.lua b/Sluift/core.lua
index daa8636..f35a603 100644
--- a/Sluift/core.lua
+++ b/Sluift/core.lua
@@ -1,39 +1,40 @@
--[[
Copyright (c) 2013-2017 Isode Limited.
All rights reserved.
See the COPYING file for more information.
--]]
local sluift = select(1, ...)
local _G = _G
-local pairs, ipairs, print, tostring, type, error, assert, next, rawset, xpcall, unpack, io = pairs, ipairs, print, tostring, type, error, assert, next, rawset, xpcall, unpack, io
+local pairs, ipairs, print, tostring, type, error, assert, next, rawset, xpcall, io = pairs, ipairs, print, tostring, type, error, assert, next, rawset, xpcall, io
+local unpack = table.unpack or unpack
local setmetatable, getmetatable = setmetatable, getmetatable
local string = require "string"
local table = require "table"
local debug = require "debug"
_ENV = nil
--------------------------------------------------------------------------------
-- Table utility methods
--------------------------------------------------------------------------------
local function table_value_tostring(value)
local result = tostring(value)
if type(value) == 'number' then return result
elseif type(value) == 'boolean' then return result
elseif type(value) == 'string' then return "'" .. result .. "'"
else return '<' .. result .. '>'
end
end
local function table_tostring(table, print_functions, indent, accumulator, history)
local INDENT = ' '
local accumulator = accumulator or ''
local history = history or {}
local indent = indent or ''
accumulator = accumulator .. '{'
history[table] = true
local is_first = true
for key, value in pairs(table) do
if print_functions or type(value) ~= 'function' then
if not is_first then