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

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