Le 19/06/2011 23:40, Taco Hoekwater a écrit :
Hi,

On 19 jun. 2011, at 21:44, Khaled Hosny<[email protected]>  wrote:

Hi all,
I just found that when node.insert_before() is executed on the very
first node in an hlist no nodes get inserted, I'm not sure if this is a
bug, feature or some dumb thing in the code I wrote. Tested with luatex
0.70.1 and 0.67.0.

I write this 'blind' now, but iirc node.insert_before() has  a return value. 
But if not, remeber that variables do not auto-update themselves in 
side-effects in lua, so if you need to alter a list head, you will need to do 
something like

   head = newdir_var

somewhere.

To say it otherwise, the new node is correctly inserted before the head (i.e. prev and next pointers are right), but the container (the box) still points to the original head; hence the new node is in the list but before its starting point, and thus ignored. Thus node.insert_before() should be used as:

head = node.insert_before(head, head, n)

if the head is returned somewhere, or even more explicitely otherwise, e.g:

tex.box[0].head = node.insert_before(tex.box[0].head, tex.box[0].head, n)

Best,
Paul

Reply via email to