[luatex] Behavior of node lists.
luigi scarso
luigi.scarso at gmail.com
Wed Jul 6 15:34:02 CEST 2011
On Mon, Jul 4, 2011 at 10:02 AM, Paul Isambert <zappathustra at free.fr> wrote:
> What about the second problem?
Last svn says in lnodelib.c
static int lua_nodelib_insert_after(lua_State * L)
{
halfword head, current, n;
if (lua_gettop(L) < 3) {
luaL_error(L, "Not enough arguments for node.insert_after()");
}
if (lua_isnil(L, 3)) {
lua_pop(L, 1);
return 2;
} else {
n = *(check_isnode(L, 3));
}
if (lua_isnil(L, 1)) { /* no head */
vlink(n) = null;
alink(n) = null;
lua_nodelib_push_fast(L, n);
lua_pushvalue(L, -1);
return 2;
} else {
head = *(check_isnode(L, 1));
}
if (lua_isnil(L, 2)) {
current = head;
while (vlink(current) != null)
current = vlink(current);
} else {
current = *(check_isnode(L, 2));
}
try_couple_nodes(n, vlink(current));
couple_nodes(current, n);
lua_pop(L, 2);
lua_nodelib_push_fast(L, n);
return 2;
}
Open to suggestions.
--
luigi
More information about the luatex
mailing list