commit 93695db90382fc00b054e1db177985d6a8fa1609
parent 9107dd115ce2ddf6cee2610daffaf7fb29133d9f
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Thu, 26 Nov 2009 15:34:49 -0200
'table.maxn' deprecated
Diffstat:
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/ltablib.c b/ltablib.c
@@ -1,5 +1,5 @@
/*
-** $Id: ltablib.c,v 1.47 2009/06/17 17:53:50 roberto Exp roberto $
+** $Id: ltablib.c,v 1.48 2009/11/24 12:05:44 roberto Exp roberto $
** Library for Table Manipulation
** See Copyright Notice in lua.h
*/
@@ -63,6 +63,7 @@ static int foreach (lua_State *L) {
}
+#if defined(LUA_COMPAT_MAXN)
static int maxn (lua_State *L) {
lua_Number max = 0;
luaL_checktype(L, 1, LUA_TTABLE);
@@ -77,7 +78,11 @@ static int maxn (lua_State *L) {
lua_pushnumber(L, max);
return 1;
}
-
+#else
+static int maxn (lua_State *L) {
+ return luaL_error(L, "function 'maxn' is deprecated");
+}
+#endif
static int getn (lua_State *L) {
lua_pushinteger(L, aux_getn(L, 1));
diff --git a/luaconf.h b/luaconf.h
@@ -1,5 +1,5 @@
/*
-** $Id: luaconf.h,v 1.117 2009/11/26 11:39:20 roberto Exp roberto $
+** $Id: luaconf.h,v 1.118 2009/11/26 16:49:28 roberto Exp roberto $
** Configuration file for Lua
** See Copyright Notice in lua.h
*/
@@ -336,9 +336,8 @@
/*
@@ LUA_COMPAT_FENV controls the presence of functions 'setfenv/getfenv'.
-** CHANGE it (undefine it) if as soon as you rewrite your code to
-** avoid using those functions. (You can replace them with lexical
-** environments, 'loadin', or the debug library.)
+** CHANGE it (define it) if you need these functions. (You can replace
+** them with lexical environments, 'loadin', or the debug library.)
*/
/* #define LUA_COMPAT_FENV */
@@ -350,6 +349,12 @@
#define LUA_COMPAT_LOG10
/*
+@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library.
+** CHANGE it (define it) if you need that function.
+*/
+/* #define LUA_COMPAT_MAXN */
+
+/*
@@ LUA_COMPAT_API includes some macros and functions that supply some
@* compatibility with previous versions.
** CHANGE it (undefine it) if you do not need these compatibility facilities.