Hi Patrick,

thanks for your answer!

Patrick Gundlach wrote:
this is again a rather simple question and I am sorry for taking your time for 
this …
In short, I want to reverse all glyph nodes in a line, and/or all lines in a 
paragraph. I tried something like the following (with the idea to store all 
lines in a list, then replace the lines with the list in reversed order):

function reverse(head)

newlines = {}
i = 1
  for line in node.traverse_id(node.id"hhead",head) do
    newlines[i] = line

a lua idiom is newlines[#newlines + 1] = ... - easer to read to the average Lua 
hackr.

Oh, of course … I fear I'll never get used to this Lua style …

    i = i+1
  end

j = #newlines

  for line in node.traverse_id(node.id"hhead",head) do
    node.insert_before(head,line,newlines[j])
    j = j-1
  end
  return head
end

I have to admit that I don't understand exactly what is going on here.

Me neither ;)

I never use the node.insert_* functions as they are some black magic to me, I 
always change next/prev pointsers manually, so I have the feeling of what I 
have to do.

But shouldn't the node.insert_* just do the same?

Therefore my brain just blocks when I try to analyze your code. Sorry. If you 
want a manual solution, see the following code.

I'm happy with anything that works and that I understand. However, that's a lot of code for such a (seemingly) simple task … I'll try to understand your code and do an implementation on my own to learn it. (Also, I want to separate the line reversing and glyph-per-line-reversing)

Thank you very much,

cheers
Arno

p.s.: as I'm already writing about silly manipulations, I have two more “useless” questions: • I want to rotate a page after it has been completed. Could anyone give me a hint where to start for this? (callbacks, how to rotate a box? …) • I'd like to rotate single glyphs by an arbitrary angle. Is this possible with Lua code, after line breaking? Or would I have to create a new font for that?

Reply via email to