From 063d4e4543088e7a21965bda8ee5a0f952a9029e Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 17 Dec 2018 14:46:37 -0200 Subject: Lua 5.3.5 ported to git This is the first commit for the branch Lua 5.3. All source files were copied from the official distribution of 5.3.5 in the Lua site. The test files are the same of 5.3.4. The manual came from the previous RCS repository, revision 1.167.1.2. --- testes/libs/lib1.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ testes/libs/lib11.c | 10 ++++++++++ testes/libs/lib2.c | 23 +++++++++++++++++++++++ testes/libs/lib21.c | 10 ++++++++++ testes/libs/makefile | 26 ++++++++++++++++++++++++++ 5 files changed, 113 insertions(+) create mode 100644 testes/libs/lib1.c create mode 100644 testes/libs/lib11.c create mode 100644 testes/libs/lib2.c create mode 100644 testes/libs/lib21.c create mode 100644 testes/libs/makefile (limited to 'testes/libs') diff --git a/testes/libs/lib1.c b/testes/libs/lib1.c new file mode 100644 index 00000000..56b6ef41 --- /dev/null +++ b/testes/libs/lib1.c @@ -0,0 +1,44 @@ +#include "lua.h" +#include "lauxlib.h" + +static int id (lua_State *L) { + return lua_gettop(L); +} + + +static const struct luaL_Reg funcs[] = { + {"id", id}, + {NULL, NULL} +}; + + +/* function used by lib11.c */ +LUAMOD_API int lib1_export (lua_State *L) { + lua_pushstring(L, "exported"); + return 1; +} + + +LUAMOD_API int onefunction (lua_State *L) { + luaL_checkversion(L); + lua_settop(L, 2); + lua_pushvalue(L, 1); + return 2; +} + + +LUAMOD_API int anotherfunc (lua_State *L) { + luaL_checkversion(L); + lua_pushfstring(L, "%d%%%d\n", (int)lua_tointeger(L, 1), + (int)lua_tointeger(L, 2)); + return 1; +} + + +LUAMOD_API int luaopen_lib1_sub (lua_State *L) { + lua_setglobal(L, "y"); /* 2nd arg: extra value (file name) */ + lua_setglobal(L, "x"); /* 1st arg: module name */ + luaL_newlib(L, funcs); + return 1; +} + diff --git a/testes/libs/lib11.c b/testes/libs/lib11.c new file mode 100644 index 00000000..377d0c48 --- /dev/null +++ b/testes/libs/lib11.c @@ -0,0 +1,10 @@ +#include "lua.h" + +/* function from lib1.c */ +int lib1_export (lua_State *L); + +LUAMOD_API int luaopen_lib11 (lua_State *L) { + return lib1_export(L); +} + + diff --git a/testes/libs/lib2.c b/testes/libs/lib2.c new file mode 100644 index 00000000..bc9651ee --- /dev/null +++ b/testes/libs/lib2.c @@ -0,0 +1,23 @@ +#include "lua.h" +#include "lauxlib.h" + +static int id (lua_State *L) { + return lua_gettop(L); +} + + +static const struct luaL_Reg funcs[] = { + {"id", id}, + {NULL, NULL} +}; + + +LUAMOD_API int luaopen_lib2 (lua_State *L) { + lua_settop(L, 2); + lua_setglobal(L, "y"); /* y gets 2nd parameter */ + lua_setglobal(L, "x"); /* x gets 1st parameter */ + luaL_newlib(L, funcs); + return 1; +} + + diff --git a/testes/libs/lib21.c b/testes/libs/lib21.c new file mode 100644 index 00000000..a39b683d --- /dev/null +++ b/testes/libs/lib21.c @@ -0,0 +1,10 @@ +#include "lua.h" + + +int luaopen_lib2 (lua_State *L); + +LUAMOD_API int luaopen_lib21 (lua_State *L) { + return luaopen_lib2(L); +} + + diff --git a/testes/libs/makefile b/testes/libs/makefile new file mode 100644 index 00000000..9925fb00 --- /dev/null +++ b/testes/libs/makefile @@ -0,0 +1,26 @@ +# change this variable to point to the directory with Lua headers +# of the version being tested +LUA_DIR = ../../ + +CC = gcc + +# compilation should generate Dynamic-Link Libraries +CFLAGS = -Wall -std=gnu99 -O2 -I$(LUA_DIR) -fPIC -shared + +# libraries used by the tests +all: lib1.so lib11.so lib2.so lib21.so lib2-v2.so + +lib1.so: lib1.c + $(CC) $(CFLAGS) -o lib1.so lib1.c + +lib11.so: lib11.c + $(CC) $(CFLAGS) -o lib11.so lib11.c + +lib2.so: lib2.c + $(CC) $(CFLAGS) -o lib2.so lib2.c + +lib21.so: lib21.c + $(CC) $(CFLAGS) -o lib21.so lib21.c + +lib2-v2.so: lib2.so + mv lib2.so ./lib2-v2.so -- cgit v1.2.3-55-g6feb