From b0d5bd8c70150e1887256683c3fd6312fc1775b6 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 30 Aug 2001 17:54:51 -0300 Subject: tinsert gets 3d argument instead of last one --- lbaselib.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lbaselib.c') diff --git a/lbaselib.c b/lbaselib.c index 1710f4d5..873820d3 100644 --- a/lbaselib.c +++ b/lbaselib.c @@ -1,5 +1,5 @@ /* -** $Id: lbaselib.c,v 1.38 2001/06/20 17:25:30 roberto Exp roberto $ +** $Id: lbaselib.c,v 1.39 2001/07/12 18:11:58 roberto Exp $ ** Basic library ** See Copyright Notice in lua.h */ @@ -544,14 +544,16 @@ static int luaB_getn (lua_State *L) { static int luaB_tinsert (lua_State *L) { - int v = lua_gettop(L); /* last argument: to be inserted */ + int v = lua_gettop(L); /* number of arguments */ int n, pos; luaL_checktype(L, 1, LUA_TTABLE); n = lua_getn(L, 1); if (v == 2) /* called with only 2 arguments */ pos = n+1; - else + else { + v = 3; /* function may be called with more than 3 args */ pos = luaL_check_int(L, 2); /* 2nd argument is the position */ + } aux_setn(L, 1, n+1); /* t.n = n+1 */ for (; n>=pos; n--) { lua_rawgeti(L, 1, n); -- cgit v1.2.3-55-g6feb