diff --git a/lbitlib.c b/lbitlib.c index bca7ba43..d492a15e 100644 --- a/lbitlib.c +++ b/lbitlib.c @@ -1,5 +1,5 @@ /* -** $Id: lbitlib.c,v 1.22 2013/07/09 18:31:01 roberto Exp roberto $ +** $Id: lbitlib.c,v 1.23 2014/02/26 12:38:18 roberto Exp roberto $ ** Standard library for bitwise operations ** See Copyright Notice in lua.h */ @@ -13,6 +13,9 @@ #include "lualib.h" +#if defined(LUA_COMPAT_BITLIB) /* { */ + + /* number of bits to consider in a number */ #if !defined(LUA_NBITS) #define LUA_NBITS 32 @@ -213,3 +216,21 @@ LUAMOD_API int luaopen_bit32 (lua_State *L) { return 1; } + +#else /* }{ */ + +static int b_err (lua_State *L) { + return luaL_error(L, "library 'bit32' is deprecated"); +} + + +LUAMOD_API int luaopen_bit32 (lua_State *L) { + lua_createtable(L, 0, 1); /* new table to represent the module */ + lua_pushvalue(L, -1); + lua_setmetatable(L, -2); /* set it as its own metatable */ + lua_pushcfunction(L, b_err); + lua_setfield(L, -2, "__index"); /* metatable.__index = b_errret */ + return 1; +} + +#endif /* } */ diff --git a/luaconf.h b/luaconf.h index 075ab1f2..66759701 100644 --- a/luaconf.h +++ b/luaconf.h @@ -1,5 +1,5 @@ /* -** $Id: luaconf.h,v 1.190 2014/02/26 15:27:56 roberto Exp roberto $ +** $Id: luaconf.h,v 1.191 2014/03/06 16:15:18 roberto Exp roberto $ ** Configuration file for Lua ** See Copyright Notice in lua.h */ @@ -247,6 +247,11 @@ */ #if defined(LUA_COMPAT_ALL) /* { */ +/* +@@ LUA_COMPAT_BITLIB controls the presence of library 'bit32'. +*/ +#define LUA_COMPAT_BITLIB + /* @@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'. ** You can replace it with 'table.unpack'.