pkgsrc/mail/OSBF-lua/patches/patch-losbflib.c
wiz 88511c8d48 More fixes for lua-5.2. From https://github.com/arunpersaud/osbf-lua
with the help of John R. Shannon.
Bump PKGREVISION.
2013-10-11 20:25:34 +00:00

57 lines
1.6 KiB
C

$NetBSD: patch-losbflib.c,v 1.2 2013/10/11 20:25:34 wiz Exp $
Fix build with lua-5.2.
--- losbflib.c.orig 2007-01-14 18:57:19.000000000 +0000
+++ losbflib.c
@@ -170,7 +170,7 @@ lua_osbf_createdb (lua_State * L)
luaL_checktype (L, 1, LUA_TTABLE);
/* get the number of classes to create */
- num_classes = luaL_getn (L, 1);
+ num_classes = (int) lua_rawlen (L, 1);
/* get number of buckets */
buckets = luaL_checknumber (L, 2);
@@ -214,7 +214,7 @@ lua_osbf_removedb (lua_State * L)
luaL_checktype (L, 1, LUA_TTABLE);
/* get the number of classes to remove */
- num_classes = luaL_getn (L, 1);
+ num_classes = (int) lua_rawlen (L, 1);
removed = 0;
lua_pushnil (L); /* first key */
while (lua_next (L, 1) != 0)
@@ -743,7 +743,7 @@ dir_gc (lua_State * L)
/**********************************************************/
-static const struct luaL_reg osbf[] = {
+static const struct luaL_Reg osbf[] = {
{"create_db", lua_osbf_createdb},
{"remove_db", lua_osbf_removedb},
{"config", lua_osbf_config},
@@ -767,6 +767,8 @@ static const struct luaL_reg osbf[] = {
int
luaopen_osbf (lua_State * L)
{
+ size_t n_funcs;
+
/* Open dir function */
luaL_newmetatable (L, "LuaBook.dir");
/* set its __gc field */
@@ -774,7 +776,13 @@ luaopen_osbf (lua_State * L)
lua_pushcfunction (L, dir_gc);
lua_settable (L, -3);
- luaL_register (L, "osbf", osbf);
+ n_funcs = sizeof(osbf)/sizeof(*osbf) - 1;
+ lua_createtable( L, 0, n_funcs );
+ luaL_setfuncs( L, osbf, 0 );
+
+ lua_pushvalue( L, -1 );
+ lua_setglobal( L, "osbf" );
+
set_info (L);
return 1;
}