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:
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;
}
}