lua

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

commit c8c2e06899b0a05d4af0b71ab527a930356dea08
parent 8dcc6bc5321f12f28c6738b68350e920983101fb
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Fri, 16 Sep 2005 15:22:26 -0300

'select' accepts negative indices

Diffstat:
Mlbaselib.c | 7++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lbaselib.c b/lbaselib.c @@ -1,5 +1,5 @@ /* -** $Id: lbaselib.c,v 1.181 2005/08/15 14:12:32 roberto Exp roberto $ +** $Id: lbaselib.c,v 1.182 2005/08/26 17:36:32 roberto Exp roberto $ ** Basic library ** See Copyright Notice in lua.h */ @@ -349,8 +349,9 @@ static int luaB_select (lua_State *L) { } else { int i = luaL_checkint(L, 1); - if (i <= 0) i = 1; - else if (i >= n) i = n; + if (i < 0) i = n + i; + else if (i > n) i = n; + luaL_argcheck(L, 1 <= i, 1, "index out of range"); return n - i; } }