Permalink
Browse files

Fix Lua examples for running under Lua 5.2

Includes cherry picking parts of
v-for-vandal@ce2760f
  • Loading branch information...
1 parent 0ed98c0 commit bf313809ae8a441e71b3cfafa29e905df0882a56 @wsfulton wsfulton committed Feb 22, 2014
View
4 Examples/lua/dual/dual.cpp
@@ -36,6 +36,10 @@ extern "C" int luaopen_example2(lua_State*L);
#define DEBUG2(X,Y) {printf(X,Y);fflush(stdout);}
#define DEBUG3(X,Y,Z) {printf(X,Y,Z);fflush(stdout);}
+#if LUA_VERSION_NUM > 501
+#define lua_open luaL_newstate
+#endif
+
void testModule(lua_State *L)
{
swig_type_info *pTypeInfo=0,*pTypeInfo2=0;
View
3 Examples/lua/embed/Makefile
@@ -4,6 +4,7 @@ TARGET = embed
SRCS = example.c
INTERFACE = example.i
LUA_INTERP = embed.c
+LIBS = -lm
# this is a little different to normal as we have our own special interpreter
# which we want to static link
@@ -12,7 +13,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) SRCS='$(SRCS)' SWIG='$(SWIG)' \
- SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static
+ SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' LIBS='$(LIBS)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static
clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
View
4 Examples/lua/embed/embed.c
@@ -18,6 +18,10 @@ We will be using the luaL_dostring()/lua_dostring() function to call into lua
#include <lauxlib.h>
#include <lualib.h>
+#if LUA_VERSION_NUM > 501
+#define lua_open luaL_newstate
+#endif
+
/* the SWIG wrappered library */
extern int luaopen_example(lua_State*L);
View
3 Examples/lua/embed2/Makefile
@@ -4,6 +4,7 @@ TARGET = embed2
SRCS = example.c
INTERFACE = example.i
LUA_INTERP = embed2.c
+LIBS = -lm
# this is a little different to normal as we have our own special interpreter
# which we want to static link
@@ -12,7 +13,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) SRCS='$(SRCS)' SWIG='$(SWIG)' \
- SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static
+ SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' LIBS='$(LIBS)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static
clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
View
6 Examples/lua/embed2/embed2.c
@@ -31,6 +31,9 @@ We will be using the luaL_dostring()/lua_dostring() function to call into lua
#include <stdarg.h>
#include <string.h>
+#if LUA_VERSION_NUM > 501
+#define lua_open luaL_newstate
+#endif
/* the SWIG wrappered library */
extern int luaopen_example(lua_State*L);
@@ -46,8 +49,7 @@ int call_add(lua_State *L,int a,int b,int* res) {
push a, push b, call 'add' check & return res
*/
top=lua_gettop(L); /* for later */
- lua_pushstring(L, "add"); /* function name */
- lua_gettable(L, LUA_GLOBALSINDEX); /* function to be called */
+ lua_getglobal(L, "add"); /* function to be called */
if (!lua_isfunction(L,-1)) {
printf("[C] error: cannot find function 'add'\n");
lua_settop(L,top); // reset
View
17 Examples/lua/embed3/embed3.cpp
@@ -26,11 +26,15 @@ extern "C" {
#include <lauxlib.h>
#include <lualib.h>
}
-
-/* The SWIG external runtime is generated by using.
-swig -lua -externalruntime swigluarun.h
-It contains useful function used by SWIG in its wrappering
-SWIG_TypeQuery() SWIG_NewPointerObj()
+
+#if LUA_VERSION_NUM > 501
+#define lua_open luaL_newstate
+#endif
+
+/* The SWIG external runtime is generated by using.
+swig -lua -externalruntime swigluarun.h
+It contains useful function used by SWIG in its wrappering
+SWIG_TypeQuery() SWIG_NewPointerObj()
*/
#include "swigluarun.h" // the SWIG external runtime
@@ -65,8 +69,7 @@ int call_onEvent(lua_State *L, Event e) {
push a, push b, call 'add' check & return res
*/
top = lua_gettop(L); /* for later */
- lua_pushstring(L, "onEvent"); /* function name */
- lua_gettable(L, LUA_GLOBALSINDEX); /* function to be called */
+ lua_getglobal(L, "onEvent"); /* function to be called */
if (!lua_isfunction(L, -1)) {
printf("[C++] error: cannot find function 'OnEvent'\n");
lua_settop(L, top); // reset

0 comments on commit bf31380

Please sign in to comment.