[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Behaviour of unpack in 5.1alpha
- From: Mike Pall <mikelu-0510@...>
- Date: Wed, 19 Oct 2005 15:05:11 +0200
Hi,
Rici Lake wrote:
> There is an undocumented feature where:
> unpack(tab, start, -1)
> is the same as
> unpack(tab, start, #tab)
This is used internally to mark the default case:
if no range is given, the whole table is unpacked.
Trivial patch:
--- lua-5.1-alpha/src/lbaselib.c 2005-08-26 19:36:32 +0200
+++ lua-5.1-alpha-cumulative/src/lbaselib.c 2005-10-19 15:00:26 +0200
@@ -330,7 +330,7 @@
int e = luaL_optint(L, 3, -1);
int n;
luaL_checktype(L, 1, LUA_TTABLE);
- if (e == -1)
+ if (e == -1 && lua_isnoneornil(L, 3))
e = luaL_getn(L, 1);
n = e - i + 1; /* number of elements */
if (n <= 0) return 0; /* empty range */
Bye,
Mike