commit 31f6540fba010b941b44b2bd21672786d2e63e7f
parent eab1965c05f2ef71f715347e280733e7657993e4
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Fri, 9 Jul 2004 11:29:07 -0300
back with an "open all libs" function
Diffstat:
4 files changed, 48 insertions(+), 19 deletions(-)
diff --git 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
@@ -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
@@ -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
@@ -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