From bc20cf026cb0d2a175c116c5840d167f341d885e Mon Sep 17 00:00:00 2001 From: Marius Date: Sat, 26 Mar 2011 14:00:13 +0200 Subject: beta 2011.03.26 12:41 --- tex/context/base/node-fnt.lua | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'tex/context/base/node-fnt.lua') diff --git a/tex/context/base/node-fnt.lua b/tex/context/base/node-fnt.lua index 23cf0c04d..77aa79396 100644 --- a/tex/context/base/node-fnt.lua +++ b/tex/context/base/node-fnt.lua @@ -171,21 +171,9 @@ function handlers.characters(head) local font, dynamics = next(attrfonts) for attribute, processors in next, dynamics do -- attr can switch in between local n = #processors - local h, d = processors[1](head,font,attribute) - head = h or head - done = done or d - if n > 1 then - for i=2,n do - local h, d = processors[i](head,font,attribute) - head = h or head - done = done or d - end - end - end - elseif a > 0 then - for font, dynamics in next, attrfonts do - for attribute, processors in next, dynamics do -- attr can switch in between - local n = #processors + if n == 0 then + report_fonts("no processors associated with dynamic %s",attribute) + else local h, d = processors[1](head,font,attribute) head = h or head done = done or d @@ -198,6 +186,26 @@ function handlers.characters(head) end end end + elseif a > 0 then + for font, dynamics in next, attrfonts do + for attribute, processors in next, dynamics do -- attr can switch in between + local n = #processors + if n == 0 then + report_fonts("no processors associated with dynamic %s",attribute) + else + local h, d = processors[1](head,font,attribute) + head = h or head + done = done or d + if n > 1 then + for i=2,n do + local h, d = processors[i](head,font,attribute) + head = h or head + done = done or d + end + end + end + end + end end stoptiming(nodes) if trace_characters then -- cgit v1.2.3