lua

A copy of the Lua development repository
Log | Files | Refs | README

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:
Mltablib.c | 9+++++++--
Mluaconf.h | 13+++++++++----
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.