55 lines
1.4 KiB
Text
55 lines
1.4 KiB
Text
|
$NetBSD: patch-ab,v 1.1 2007/03/28 15:30:12 bsadewitz Exp $
|
||
|
|
||
|
--- src/scripting/lua/core.c.orig 2006-01-29 13:10:39.000000000 +0000
|
||
|
+++ src/scripting/lua/core.c
|
||
|
@@ -633,7 +633,7 @@ do_hooks_file(LS, unsigned char *prefix,
|
||
|
if (file_can_read(file)) {
|
||
|
int oldtop = lua_gettop(S);
|
||
|
|
||
|
- if (lua_dofile(S, file) != 0)
|
||
|
+ if (luaL_dofile(S, file) != 0)
|
||
|
sleep(3); /* Let some time to see error messages. */
|
||
|
lua_settop(S, oldtop);
|
||
|
}
|
||
|
@@ -644,13 +644,24 @@ do_hooks_file(LS, unsigned char *prefix,
|
||
|
void
|
||
|
init_lua(struct module *module)
|
||
|
{
|
||
|
- L = lua_open();
|
||
|
-
|
||
|
- luaopen_base(L);
|
||
|
- luaopen_table(L);
|
||
|
- luaopen_io(L);
|
||
|
- luaopen_string(L);
|
||
|
- luaopen_math(L);
|
||
|
+ static const luaL_Reg lualibs[] = {
|
||
|
+ {"", luaopen_base},
|
||
|
+ {LUA_TABLIBNAME, luaopen_table},
|
||
|
+ {LUA_IOLIBNAME, luaopen_io},
|
||
|
+ {LUA_OSLIBNAME, luaopen_os},
|
||
|
+ {LUA_STRLIBNAME, luaopen_string},
|
||
|
+ {LUA_MATHLIBNAME, luaopen_math},
|
||
|
+ {NULL, NULL}
|
||
|
+ };
|
||
|
+ const luaL_Reg *lib = lualibs;
|
||
|
+
|
||
|
+ L = lua_open();
|
||
|
+
|
||
|
+ for (; lib->func; lib++) {
|
||
|
+ lua_pushcfunction(L, lib->func);
|
||
|
+ lua_pushstring(L, lib->name);
|
||
|
+ lua_call(L, 1, 0);
|
||
|
+ }
|
||
|
|
||
|
lua_register(L, LUA_ALERT, l_alert);
|
||
|
lua_register(L, "current_url", l_current_url);
|
||
|
@@ -755,7 +766,7 @@ handle_ret_eval(struct session *ses)
|
||
|
int oldtop = lua_gettop(L);
|
||
|
|
||
|
if (prepare_lua(ses) == 0) {
|
||
|
- lua_dostring(L, expr);
|
||
|
+ luaL_dostring(L, expr);
|
||
|
lua_settop(L, oldtop);
|
||
|
finish_lua();
|
||
|
}
|