Fix Lua examples for running under Lua 5.2

Includes cherry picking parts of
ce2760f77e
This commit is contained in:
William S Fulton 2014-02-22 00:43:18 +00:00
commit bf313809ae
6 changed files with 26 additions and 11 deletions

View file

@ -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 file

@ -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 file

@ -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 file

@ -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 file

@ -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 file

@ -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