diff --git a/linit.c b/linit.c index e66a057b..0c483943 100644 --- a/linit.c +++ b/linit.c @@ -1,8 +1,37 @@ /* -** $Id: linit.c,v 1.5 2000/06/16 17:22:43 roberto Exp roberto $ +** $Id: linit.c,v 1.6 2000/08/09 14:50:13 roberto Exp roberto $ ** Initialization of libraries for lua.c ** See Copyright Notice in lua.h */ ->>>>>>> This module is now obsolete, and is not part of Lua. <<<<<<<<< + +#define linit_c +#define LUA_LIB + +#include "lua.h" + +#include "lualib.h" +#include "lauxlib.h" + + +static const luaL_reg lualibs[] = { + {"", luaopen_base}, + {LUA_TABLIBNAME, luaopen_table}, + {LUA_IOLIBNAME, luaopen_io}, + {LUA_STRLIBNAME, luaopen_string}, + {LUA_MATHLIBNAME, luaopen_math}, + {LUA_DBLIBNAME, luaopen_debug}, + {"", luaopen_loadlib}, + {NULL, NULL} +}; + + +LUALIB_API int luaopen_stdlibs (lua_State *L) { + const luaL_reg *lib = lualibs; + for (; lib->func; lib++) { + lib->func(L); /* open library */ + lua_settop(L, 0); /* discard any results */ + } + return 0; +} diff --git a/ltests.h b/ltests.h index 009884a9..c2f3ec16 100644 --- a/ltests.h +++ b/ltests.h @@ -1,5 +1,5 @@ /* -** $Id: ltests.h,v 2.6 2004/06/02 19:09:21 roberto Exp roberto $ +** $Id: ltests.h,v 2.7 2004/06/29 16:57:24 roberto Exp roberto $ ** Internal Header for Debugging of the Lua Implementation ** See Copyright Notice in lua.h */ @@ -70,8 +70,8 @@ extern int islocked; int luaB_opentests (lua_State *L); -#undef LUA_EXTRALIBS -#define LUA_EXTRALIBS { "tests", luaB_opentests }, +#undef lua_userinit +#define lua_userinit(L) { luaopen_stdlibs(L); luaB_opentests(L); } diff --git a/luaconf.h b/luaconf.h index a8bcec4a..2f337f96 100644 --- a/luaconf.h +++ b/luaconf.h @@ -1,5 +1,5 @@ /* -** $Id: luaconf.h,v 1.7 2004/06/23 15:57:29 roberto Exp roberto $ +** $Id: luaconf.h,v 1.8 2004/06/29 16:57:56 roberto Exp roberto $ ** Configuration file for Lua ** See Copyright Notice in lua.h */ @@ -84,9 +84,15 @@ #define PROGNAME "lua" -#define LUA_EXTRALIBS /* empty */ - -#define lua_userinit(L) openstdlibs(L) +/* +** this macro allows you to open other libraries when starting the +** stand-alone interpreter +*/ +#define lua_userinit(L) luaopen_stdlibs(L) +/* +** #define lua_userinit(L) { int luaopen_mylibs(lua_State *L); \ +** luaopen_stdlibs(L); luaopen_mylibs(L); } +*/ diff --git a/lualib.h b/lualib.h index 06428d77..6efe0e2d 100644 --- a/lualib.h +++ b/lualib.h @@ -1,5 +1,5 @@ /* -** $Id: lualib.h,v 1.29 2004/03/24 15:46:49 roberto Exp roberto $ +** $Id: lualib.h,v 1.30 2004/05/28 18:35:05 roberto Exp roberto $ ** Lua standard libraries ** See Copyright Notice in lua.h */ @@ -11,11 +11,6 @@ #include "lua.h" -#ifndef LUALIB_API -#define LUALIB_API LUA_API -#endif - - /* Key to file-handle type */ #define LUA_FILEHANDLE "FILE*" @@ -43,9 +38,8 @@ LUALIB_API int luaopen_debug (lua_State *L); LUALIB_API int luaopen_loadlib (lua_State *L); -/* to help testing the libraries */ -#ifndef lua_assert -#define lua_assert(c) /* empty */ -#endif +/* open all previous libraries */ +LUALIB_API int luaopen_stdlibs (lua_State *L); + #endif