- Add patch to fix build with lua5.2 tolua++-1.0.93-lua52.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/lua-toluapp?expand=0&rev=4
This commit is contained in:
parent
561a292cd2
commit
f780ee856e
@ -1,3 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 14 11:53:09 UTC 2017 - tchvatal@suse.com
|
||||
|
||||
- Add patch to fix build with lua5.2 tolua++-1.0.93-lua52.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 14 11:39:07 UTC 2017 - tchvatal@suse.com
|
||||
|
||||
|
@ -30,6 +30,7 @@ Source: https://github.com/LuaDist/toluapp/archive/%{version}/toluapp-%{
|
||||
Patch0: toluapp-libdir.patch
|
||||
Patch1: toluapp-versioned-shared-lib.patch
|
||||
Patch2: toluapp-build-compare.patch
|
||||
Patch3: tolua++-1.0.93-lua52.patch
|
||||
BuildRequires: %{flavor}-devel
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: pkgconfig
|
||||
@ -81,6 +82,7 @@ This package provides development headers for tolua++.
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
sed -i "s/@SUFFIX@/%{lua_version}/" SConstruct
|
||||
|
||||
%build
|
||||
@ -98,7 +100,8 @@ scons %{?_smp_mflags} \
|
||||
prefix="%{_prefix}" \
|
||||
libdir="%{_libdir}" \
|
||||
shared=1 \
|
||||
lib bin
|
||||
lib bin \
|
||||
-Q CCFLAGS="%{optflags} -I%{lua_incdir} -fPIC"
|
||||
|
||||
%install
|
||||
CCFLAGS="%{optflags} -fPIC -I%{lua_incdir}" \
|
||||
|
553
tolua++-1.0.93-lua52.patch
Normal file
553
tolua++-1.0.93-lua52.patch
Normal file
@ -0,0 +1,553 @@
|
||||
diff -urN tolua++-1.0.93/config_linux.py tolua++-1.0.93.lua52/config_linux.py
|
||||
--- tolua++-1.0.93/config_linux.py 2005-11-30 23:31:27.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/config_linux.py 2014-09-30 18:42:00.850195336 +0200
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
# Compiler flags (based on Debian's installation of lua)
|
||||
#LINKFLAGS = ['-g']
|
||||
-CCFLAGS = ['-I/usr/include/lua50', '-O2', '-ansi', '-Wall']
|
||||
+CCFLAGS = ['-O2', '-ansi', '-Wall']
|
||||
#CCFLAGS = ['-I/usr/include/lua50', '-g']
|
||||
|
||||
# this is the default directory for installation. Files will be installed on
|
||||
@@ -18,5 +18,5 @@
|
||||
prefix = '/usr/local'
|
||||
|
||||
# libraries (based on Debian's installation of lua)
|
||||
-LIBS = ['lua50', 'lualib50', 'dl', 'm']
|
||||
+LIBS = ['lua', 'dl', 'm']
|
||||
|
||||
diff -urN tolua++-1.0.93/custom.py tolua++-1.0.93.lua52/custom.py
|
||||
--- tolua++-1.0.93/custom.py 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/custom.py 2014-10-01 11:52:32.217957188 +0200
|
||||
@@ -0,0 +1,9 @@
|
||||
+CCFLAGS = ['-O2', '-ansi']
|
||||
+#LIBPATH = ['/usr/local/lib']
|
||||
+LIBS = ['lua', 'dl', 'm']
|
||||
+prefix = '/usr'
|
||||
+build_dev=1
|
||||
+tolua_bin = 'tolua++'
|
||||
+tolua_lib = 'tolua++-5.2'
|
||||
+TOLUAPP = 'tolua++'
|
||||
+
|
||||
diff -urN tolua++-1.0.93/SConstruct tolua++-1.0.93.lua52/SConstruct
|
||||
--- tolua++-1.0.93/SConstruct 2008-04-21 02:05:35.000000000 +0200
|
||||
+++ tolua++-1.0.93.lua52/SConstruct 2014-10-01 13:51:40.837513339 +0200
|
||||
@@ -82,6 +82,8 @@
|
||||
header = target[:-2] + '.h'
|
||||
pheader = Dir('.').path + '/' + header
|
||||
|
||||
+ print("Generating ", target, " from ", source)
|
||||
+
|
||||
tolua = ""
|
||||
if bootstrap:
|
||||
if os.name == 'nt':
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/all.lua tolua++-1.0.93.lua52/src/bin/lua/all.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/all.lua 2007-07-03 08:03:38.000000000 +0200
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/all.lua 2014-10-01 16:30:26.057393850 +0200
|
||||
@@ -1,8 +1,8 @@
|
||||
dofile(path.."compat-5.1.lua")
|
||||
dofile(path.."compat.lua")
|
||||
-dofile(path.."basic.lua")
|
||||
dofile(path.."feature.lua")
|
||||
dofile(path.."verbatim.lua")
|
||||
+dofile(path.."basic.lua")
|
||||
dofile(path.."code.lua")
|
||||
dofile(path.."typedef.lua")
|
||||
dofile(path.."container.lua")
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/basic.lua tolua++-1.0.93.lua52/src/bin/lua/basic.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/basic.lua 2008-11-11 19:14:49.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/basic.lua 2014-10-01 16:30:26.112391980 +0200
|
||||
@@ -75,8 +75,8 @@
|
||||
end
|
||||
|
||||
function applyrenaming (s)
|
||||
- for i=1,getn(_renaming) do
|
||||
- local m,n = gsub(s,_renaming[i].old,_renaming[i].new)
|
||||
+ for i,v in ipairs(_renaming) do
|
||||
+ local m,n = gsub(s,v.old,v.new)
|
||||
if n ~= 0 then
|
||||
return m
|
||||
end
|
||||
@@ -252,7 +252,8 @@
|
||||
-- concatenate all parameters, following output rules
|
||||
function concatparam (line, ...)
|
||||
local i=1
|
||||
- while i<=arg.n do
|
||||
+ local arg={...}
|
||||
+ while i<=#arg do
|
||||
if _cont and not strfind(_cont,'[%(,"]') and
|
||||
strfind(arg[i],"^[%a_~]") then
|
||||
line = line .. ' '
|
||||
@@ -263,7 +264,7 @@
|
||||
end
|
||||
i = i+1
|
||||
end
|
||||
- if strfind(arg[arg.n],"[%/%)%;%{%}]$") then
|
||||
+ if strfind(arg[#arg],"[%/%)%;%{%}]$") then
|
||||
_cont=nil line = line .. '\n'
|
||||
end
|
||||
return line
|
||||
@@ -272,7 +273,8 @@
|
||||
-- output line
|
||||
function output (...)
|
||||
local i=1
|
||||
- while i<=arg.n do
|
||||
+ local arg = {...}
|
||||
+ while i<=#arg do
|
||||
if _cont and not strfind(_cont,'[%(,"]') and
|
||||
strfind(arg[i],"^[%a_~]") then
|
||||
write(' ')
|
||||
@@ -283,7 +285,7 @@
|
||||
end
|
||||
i = i+1
|
||||
end
|
||||
- if strfind(arg[arg.n],"[%/%)%;%{%}]$") then
|
||||
+ if strfind(arg[#arg],"[%/%)%;%{%}]$") then
|
||||
_cont=nil write('\n')
|
||||
end
|
||||
end
|
||||
@@ -373,9 +375,10 @@
|
||||
|
||||
end
|
||||
|
||||
+
|
||||
-- called to output an error message
|
||||
function output_error_hook(...)
|
||||
- return string.format(...)
|
||||
+ return string.format(table.unpack{...})
|
||||
end
|
||||
|
||||
-- custom pushers
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/class.lua tolua++-1.0.93.lua52/src/bin/lua/class.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/class.lua 2007-11-28 06:31:35.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/class.lua 2014-10-01 16:30:26.129391402 +0200
|
||||
@@ -92,7 +92,7 @@
|
||||
self.btype = typevar(self.base)
|
||||
self.ctype = 'const '..self.type
|
||||
if self.extra_bases then
|
||||
- for i=1,table.getn(self.extra_bases) do
|
||||
+ for i=1,#self.extra_bases do
|
||||
self.extra_bases[i] = typevar(self.extra_bases[i])
|
||||
end
|
||||
end
|
||||
@@ -138,9 +138,9 @@
|
||||
-- Expects the name, the base (array) and the body of the class.
|
||||
function Class (n,p,b)
|
||||
|
||||
- if table.getn(p) > 1 then
|
||||
+ if #p > 1 then
|
||||
b = string.sub(b, 1, -2)
|
||||
- for i=2,table.getn(p),1 do
|
||||
+ for i=2,#p,1 do
|
||||
b = b.."\n tolua_inherits "..p[i].." __"..p[i].."__;\n"
|
||||
end
|
||||
b = b.."\n}"
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/clean.lua tolua++-1.0.93.lua52/src/bin/lua/clean.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/clean.lua 2005-11-30 23:31:27.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/clean.lua 2014-10-01 16:30:26.133391266 +0200
|
||||
@@ -19,14 +19,14 @@
|
||||
}
|
||||
|
||||
function mask (s)
|
||||
- for i = 1,getn(MASK) do
|
||||
+ for i = 1,#MASK do
|
||||
s = gsub(s,MASK[i][2],MASK[i][1])
|
||||
end
|
||||
return s
|
||||
end
|
||||
|
||||
function unmask (s)
|
||||
- for i = 1,getn(MASK) do
|
||||
+ for i = 1,#MASK do
|
||||
s = gsub(s,MASK[i][1],MASK[i][2])
|
||||
end
|
||||
return s
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/compat-5.1.lua tolua++-1.0.93.lua52/src/bin/lua/compat-5.1.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/compat-5.1.lua 2007-07-03 08:03:38.000000000 +0200
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/compat-5.1.lua 2014-10-01 16:30:26.169390042 +0200
|
||||
@@ -25,10 +25,10 @@
|
||||
end
|
||||
end
|
||||
|
||||
- local f = load(getfile, path)
|
||||
+ local f, errmsg = load(getfile, path)
|
||||
if not f then
|
||||
|
||||
- error("error loading file "..path)
|
||||
+ error("error loading file "..path ..": " .. errmsg)
|
||||
end
|
||||
return f()
|
||||
end
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/compat.lua tolua++-1.0.93.lua52/src/bin/lua/compat.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/compat.lua 2005-11-30 23:31:27.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/compat.lua 2014-10-01 16:30:26.173389906 +0200
|
||||
@@ -40,15 +40,13 @@
|
||||
end
|
||||
end
|
||||
|
||||
-function dostring(s) return do_(loadstring(s)) end
|
||||
+function dostring(s) return do_(load(s)) end
|
||||
-- function dofile(s) return do_(loadfile(s)) end
|
||||
|
||||
-------------------------------------------------------------------
|
||||
-- Table library
|
||||
local tab = table
|
||||
-foreach = tab.foreach
|
||||
-foreachi = tab.foreachi
|
||||
-getn = tab.getn
|
||||
+getn = function (tab) return #tab end
|
||||
tinsert = tab.insert
|
||||
tremove = tab.remove
|
||||
sort = tab.sort
|
||||
@@ -78,7 +76,7 @@
|
||||
frexp = math.frexp
|
||||
ldexp = math.ldexp
|
||||
log = math.log
|
||||
-log10 = math.log10
|
||||
+log10 = function(val) return math.log(10, val) end
|
||||
max = math.max
|
||||
min = math.min
|
||||
mod = math.mod
|
||||
@@ -177,17 +175,19 @@
|
||||
|
||||
function read (...)
|
||||
local f = _INPUT
|
||||
+ local arg = {...}
|
||||
if rawtype(arg[1]) == 'userdata' then
|
||||
f = tab.remove(arg, 1)
|
||||
end
|
||||
- return f:read(unpack(arg))
|
||||
+ return f:read(table.unpack(arg))
|
||||
end
|
||||
|
||||
function write (...)
|
||||
local f = _OUTPUT
|
||||
+ local arg = {...}
|
||||
if rawtype(arg[1]) == 'userdata' then
|
||||
f = tab.remove(arg, 1)
|
||||
end
|
||||
- return f:write(unpack(arg))
|
||||
+ return f:write(table.unpack(arg))
|
||||
end
|
||||
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/declaration.lua tolua++-1.0.93.lua52/src/bin/lua/declaration.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/declaration.lua 2008-07-18 07:27:24.000000000 +0200
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/declaration.lua 2014-10-01 16:30:26.309385281 +0200
|
||||
@@ -137,7 +137,7 @@
|
||||
if b then
|
||||
|
||||
m = split_c_tokens(string.sub(m, 2, -2), ",")
|
||||
- for i=1, table.getn(m) do
|
||||
+ for i=1, #m do
|
||||
m[i] = string.gsub(m[i],"%s*([%*&])", "%1")
|
||||
if not isbasic(m[i]) then
|
||||
if not isenum(m[i]) then _, m[i] = applytypedef("", m[i]) end
|
||||
@@ -522,7 +522,7 @@
|
||||
end
|
||||
|
||||
-- check the form: mod type* name
|
||||
- local s1 = gsub(s,"(%b\[\])",function (n) return gsub(n,'%*','\1') end)
|
||||
+ local s1 = gsub(s,"(%b%[%])",function (n) return gsub(n,'%*','\1') end)
|
||||
t = split_c_tokens(s1,'%*')
|
||||
if t.n == 2 then
|
||||
t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/feature.lua tolua++-1.0.93.lua52/src/bin/lua/feature.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/feature.lua 2007-10-30 02:58:17.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/feature.lua 2014-10-01 16:30:26.362383479 +0200
|
||||
@@ -132,7 +132,7 @@
|
||||
if not fname or fname == '' then
|
||||
fname = self.name
|
||||
end
|
||||
- n = string.gsub(n..'_'.. (fname), "[<>:, \.%*&]", "_")
|
||||
+ n = string.gsub(n..'_'.. (fname), "[<>:, \\.%*&]", "_")
|
||||
|
||||
return n
|
||||
end
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/function.lua tolua++-1.0.93.lua52/src/bin/lua/function.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/function.lua 2008-11-11 19:14:49.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/function.lua 2014-10-01 16:30:26.415381678 +0200
|
||||
@@ -520,7 +520,7 @@
|
||||
function join(t, sep, first, last)
|
||||
|
||||
first = first or 1
|
||||
- last = last or table.getn(t)
|
||||
+ last = last or #t
|
||||
local lsep = ""
|
||||
local ret = ""
|
||||
local loop = false
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/package.lua tolua++-1.0.93.lua52/src/bin/lua/package.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/package.lua 2007-10-30 02:58:17.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/package.lua 2014-10-01 16:30:26.539377462 +0200
|
||||
@@ -39,7 +39,7 @@
|
||||
self.code = gsub(self.code,"\n%s*%$%]","\2")
|
||||
self.code = gsub(self.code,"(%b\1\2)", function (c)
|
||||
tinsert(L,c)
|
||||
- return "\n#["..getn(L).."]#"
|
||||
+ return "\n#[".. #L .."]#"
|
||||
end)
|
||||
-- avoid preprocessing embedded C code
|
||||
local C = {}
|
||||
@@ -47,14 +47,14 @@
|
||||
self.code = gsub(self.code,"\n%s*%$%>","\4")
|
||||
self.code = gsub(self.code,"(%b\3\4)", function (c)
|
||||
tinsert(C,c)
|
||||
- return "\n#<"..getn(C)..">#"
|
||||
+ return "\n#<".. #C ..">#"
|
||||
end)
|
||||
-- avoid preprocessing embedded C code
|
||||
self.code = gsub(self.code,"\n%s*%$%{","\5") -- deal with embedded C code
|
||||
self.code = gsub(self.code,"\n%s*%$%}","\6")
|
||||
self.code = gsub(self.code,"(%b\5\6)", function (c)
|
||||
tinsert(C,c)
|
||||
- return "\n#<"..getn(C)..">#"
|
||||
+ return "\n#<".. #C..">#"
|
||||
end)
|
||||
|
||||
--self.code = gsub(self.code,"\n%s*#[^d][^\n]*\n", "\n\n") -- eliminate preprocessor directives that don't start with 'd'
|
||||
@@ -64,7 +64,7 @@
|
||||
local V = {}
|
||||
self.code = gsub(self.code,"\n(%s*%$[^%[%]][^\n]*)",function (v)
|
||||
tinsert(V,v)
|
||||
- return "\n#"..getn(V).."#"
|
||||
+ return "\n#".. #V .."#"
|
||||
end)
|
||||
|
||||
-- perform global substitution
|
||||
@@ -152,14 +152,14 @@
|
||||
if flags.t then
|
||||
output("#ifndef Mtolua_typeid\n#define Mtolua_typeid(L,TI,T)\n#endif\n")
|
||||
end
|
||||
- foreach(_usertype,function(n,v)
|
||||
+ for n,v in pairs(_usertype) do
|
||||
if (not _global_classes[v]) or _global_classes[v]:check_public_access() then
|
||||
output(' tolua_usertype(tolua_S,"',v,'");')
|
||||
if flags.t then
|
||||
output(' Mtolua_typeid(tolua_S,typeid(',v,'), "',v,'");')
|
||||
end
|
||||
end
|
||||
- end)
|
||||
+ end
|
||||
output('}')
|
||||
output('\n')
|
||||
end
|
||||
@@ -288,7 +288,7 @@
|
||||
local t = {code=s}
|
||||
extra = string.gsub(extra, "^%s*,%s*", "")
|
||||
local pars = split_c_tokens(extra, ",")
|
||||
- include_file_hook(t, fn, unpack(pars))
|
||||
+ include_file_hook(t, fn, table.unpack(pars))
|
||||
return "\n\n" .. t.code
|
||||
else
|
||||
error('#Invalid include directive (use $cfile, $pfile, $lfile or $ifile)')
|
||||
@@ -322,7 +322,7 @@
|
||||
table.insert(chunk, string.sub(line, 3) .. "\n")
|
||||
else
|
||||
local last = 1
|
||||
- for text, expr, index in string.gfind(line, "(.-)$(%b())()") do
|
||||
+ for text, expr, index in string.gmatch(line, "(.-)$(%b())()") do
|
||||
last = index
|
||||
if text ~= "" then
|
||||
table.insert(chunk, string.format('table.insert(__ret, %q )', text))
|
||||
@@ -334,10 +334,9 @@
|
||||
end
|
||||
end
|
||||
table.insert(chunk, '\nreturn table.concat(__ret)\n')
|
||||
- local f,e = loadstring(table.concat(chunk))
|
||||
+ local f,e = load(table.concat(chunk), nil, "t", _extra_parameters)
|
||||
if e then
|
||||
error("#"..e)
|
||||
end
|
||||
- setfenv(f, _extra_parameters)
|
||||
return f()
|
||||
end
|
||||
diff -urN tolua++-1.0.93/src/bin/lua/template_class.lua tolua++-1.0.93.lua52/src/bin/lua/template_class.lua
|
||||
--- tolua++-1.0.93/src/bin/lua/template_class.lua 2007-11-28 06:31:35.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/bin/lua/template_class.lua 2014-10-01 16:30:26.563376645 +0200
|
||||
@@ -22,7 +22,7 @@
|
||||
for i =1 , types.n do
|
||||
|
||||
local Il = split_c_tokens(types[i], " ")
|
||||
- if table.getn(Il) ~= table.getn(self.args) then
|
||||
+ if #Il ~= #self.args then
|
||||
error("#invalid parameter count for "..types[i])
|
||||
end
|
||||
local bI = self.body
|
||||
@@ -31,16 +31,16 @@
|
||||
--Tl[j] = findtype(Tl[j]) or Tl[j]
|
||||
bI = string.gsub(bI, "([^_%w])"..self.args[j].."([^_%w])", "%1"..Il[j].."%2")
|
||||
if self.parents then
|
||||
- for i=1,table.getn(self.parents) do
|
||||
+ for i=1,#self.parents do
|
||||
pI[i] = string.gsub(self.parents[i], "([^_%w]?)"..self.args[j].."([^_%w]?)", "%1"..Il[j].."%2")
|
||||
end
|
||||
end
|
||||
end
|
||||
--local append = "<"..string.gsub(types[i], "%s+", ",")..">"
|
||||
- local append = "<"..concat(Il, 1, table.getn(Il), ",")..">"
|
||||
+ local append = "<"..concat(Il, 1, #Il, ",")..">"
|
||||
append = string.gsub(append, "%s*,%s*", ",")
|
||||
append = string.gsub(append, ">>", "> >")
|
||||
- for i=1,table.getn(pI) do
|
||||
+ for i=1,#pI do
|
||||
--pI[i] = string.gsub(pI[i], ">>", "> >")
|
||||
pI[i] = resolve_template_types(pI[i])
|
||||
end
|
||||
diff -urN tolua++-1.0.93/src/bin/tolua.c tolua++-1.0.93.lua52/src/bin/tolua.c
|
||||
--- tolua++-1.0.93/src/bin/tolua.c 2006-07-29 04:45:56.000000000 +0200
|
||||
+++ tolua++-1.0.93.lua52/src/bin/tolua.c 2014-09-30 18:42:00.823196281 +0200
|
||||
@@ -67,7 +67,11 @@
|
||||
static void add_extra (lua_State* L, char* value) {
|
||||
int len;
|
||||
lua_getglobal(L, "_extra_parameters");
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ len = lua_rawlen(L, -1);
|
||||
+#else
|
||||
len = luaL_getn(L, -1);
|
||||
+#endif
|
||||
lua_pushstring(L, value);
|
||||
lua_rawseti(L, -2, len+1);
|
||||
lua_pop(L, 1);
|
||||
diff -urN tolua++-1.0.93/src/lib/tolua_event.c tolua++-1.0.93.lua52/src/lib/tolua_event.c
|
||||
--- tolua++-1.0.93/src/lib/tolua_event.c 2006-10-14 08:18:11.000000000 +0200
|
||||
+++ tolua++-1.0.93.lua52/src/lib/tolua_event.c 2014-10-06 11:32:46.162013835 +0200
|
||||
@@ -23,12 +23,20 @@
|
||||
static void storeatubox (lua_State* L, int lo)
|
||||
{
|
||||
#ifdef LUA_VERSION_NUM
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_getuservalue(L, lo);
|
||||
+#else
|
||||
lua_getfenv(L, lo);
|
||||
+#endif
|
||||
if (lua_rawequal(L, -1, TOLUA_NOPEER)) {
|
||||
lua_pop(L, 1);
|
||||
lua_newtable(L);
|
||||
lua_pushvalue(L, -1);
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_setuservalue(L, lo); /* stack: k,v,table */
|
||||
+#else
|
||||
lua_setfenv(L, lo); /* stack: k,v,table */
|
||||
+#endif
|
||||
};
|
||||
lua_insert(L, -3);
|
||||
lua_settable(L, -3); /* on lua 5.1, we trade the "tolua_peers" lookup for a settable call */
|
||||
@@ -141,7 +149,11 @@
|
||||
{
|
||||
/* Access alternative table */
|
||||
#ifdef LUA_VERSION_NUM /* new macro on version 5.1 */
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_getuservalue(L, 1);
|
||||
+#else
|
||||
lua_getfenv(L,1);
|
||||
+#endif
|
||||
if (!lua_rawequal(L, -1, TOLUA_NOPEER)) {
|
||||
lua_pushvalue(L, 2); /* key */
|
||||
lua_gettable(L, -2); /* on lua 5.1, we trade the "tolua_peers" lookup for a gettable call */
|
||||
@@ -420,6 +432,8 @@
|
||||
*/
|
||||
TOLUA_API int class_gc_event (lua_State* L)
|
||||
{
|
||||
+ if (lua_type(L,1) == LUA_TUSERDATA)
|
||||
+ {
|
||||
void* u = *((void**)lua_touserdata(L,1));
|
||||
int top;
|
||||
/*fprintf(stderr, "collecting: looking at %p\n", u);*/
|
||||
@@ -427,7 +441,8 @@
|
||||
lua_pushstring(L,"tolua_gc");
|
||||
lua_rawget(L,LUA_REGISTRYINDEX);
|
||||
*/
|
||||
- lua_pushvalue(L, lua_upvalueindex(1));
|
||||
+ lua_pushstring(L,"tolua_gc");
|
||||
+ lua_rawget(L,LUA_REGISTRYINDEX); /* gc */
|
||||
lua_pushlightuserdata(L,u);
|
||||
lua_rawget(L,-2); /* stack: gc umt */
|
||||
lua_getmetatable(L,1); /* stack: gc umt mt */
|
||||
@@ -456,6 +471,7 @@
|
||||
lua_rawset(L,-5); /* stack: gc umt mt */
|
||||
}
|
||||
lua_pop(L,3);
|
||||
+ }
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff -urN tolua++-1.0.93/src/lib/tolua_map.c tolua++-1.0.93.lua52/src/lib/tolua_map.c
|
||||
--- tolua++-1.0.93/src/lib/tolua_map.c 2009-02-14 04:06:32.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/lib/tolua_map.c 2014-09-30 18:42:00.836195826 +0200
|
||||
@@ -262,8 +262,12 @@
|
||||
|
||||
lua_pop(L, 1);
|
||||
lua_pushvalue(L, TOLUA_NOPEER);
|
||||
- };
|
||||
+ }
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_setuservalue(L, -2);
|
||||
+#else
|
||||
lua_setfenv(L, -2);
|
||||
+#endif
|
||||
|
||||
return 0;
|
||||
};
|
||||
@@ -271,7 +275,11 @@
|
||||
static int tolua_bnd_getpeer(lua_State* L) {
|
||||
|
||||
/* stack: userdata */
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_getuservalue(L, -1);
|
||||
+#else
|
||||
lua_getfenv(L, -1);
|
||||
+#endif
|
||||
if (lua_rawequal(L, -1, TOLUA_NOPEER)) {
|
||||
lua_pop(L, 1);
|
||||
lua_pushnil(L);
|
||||
@@ -411,7 +419,11 @@
|
||||
lua_rawget(L,-2);
|
||||
}
|
||||
else
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_pushglobaltable(L);
|
||||
+#else
|
||||
lua_pushvalue(L,LUA_GLOBALSINDEX);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* End module
|
||||
@@ -445,7 +457,11 @@
|
||||
else
|
||||
{
|
||||
/* global table */
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_pushglobaltable(L);
|
||||
+#else
|
||||
lua_pushvalue(L,LUA_GLOBALSINDEX);
|
||||
+#endif
|
||||
}
|
||||
if (hasvar)
|
||||
{
|
||||
@@ -473,7 +489,11 @@
|
||||
else
|
||||
{
|
||||
/* global table */
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_pushglobaltable(L);
|
||||
+#else
|
||||
lua_pushvalue(L,LUA_GLOBALSINDEX);
|
||||
+#endif
|
||||
}
|
||||
if (hasvar)
|
||||
{
|
||||
diff -urN tolua++-1.0.93/src/lib/tolua_push.c tolua++-1.0.93.lua52/src/lib/tolua_push.c
|
||||
--- tolua++-1.0.93/src/lib/tolua_push.c 2007-02-10 03:43:56.000000000 +0100
|
||||
+++ tolua++-1.0.93.lua52/src/lib/tolua_push.c 2014-09-30 18:42:00.844195546 +0200
|
||||
@@ -79,7 +79,11 @@
|
||||
|
||||
#ifdef LUA_VERSION_NUM
|
||||
lua_pushvalue(L, TOLUA_NOPEER);
|
||||
+#if LUA_VERSION_NUM > 501
|
||||
+ lua_setuservalue(L, -2);
|
||||
+#else
|
||||
lua_setfenv(L, -2);
|
||||
+#endif
|
||||
#endif
|
||||
}
|
||||
else
|
Loading…
x
Reference in New Issue
Block a user