From f780ee856e9f9060e7b7cc5d964b7d2a68bd33a2faad869fbc46aee791c2125a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 14 Jul 2017 11:52:30 +0000 Subject: [PATCH] - 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 --- lua-toluapp.changes | 5 + lua-toluapp.spec | 5 +- tolua++-1.0.93-lua52.patch | 553 +++++++++++++++++++++++++++++++++++++ 3 files changed, 562 insertions(+), 1 deletion(-) create mode 100644 tolua++-1.0.93-lua52.patch diff --git a/lua-toluapp.changes b/lua-toluapp.changes index 57a772d..740722e 100644 --- a/lua-toluapp.changes +++ b/lua-toluapp.changes @@ -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 diff --git a/lua-toluapp.spec b/lua-toluapp.spec index 021aec6..aa86826 100644 --- a/lua-toluapp.spec +++ b/lua-toluapp.spec @@ -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}" \ diff --git a/tolua++-1.0.93-lua52.patch b/tolua++-1.0.93-lua52.patch new file mode 100644 index 0000000..45736d7 --- /dev/null +++ b/tolua++-1.0.93-lua52.patch @@ -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