diff options
author | Marius <mariausol@gmail.com> | 2011-03-26 14:00:13 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2011-03-26 14:00:13 +0200 |
commit | bc20cf026cb0d2a175c116c5840d167f341d885e (patch) | |
tree | 09d9aa0186d16c3aa6d23186babfdbc9b2baf7e8 /tex/context/base/node-fnt.lua | |
parent | f180acf05ebaa586f8ba705e4b58672416bede5e (diff) | |
download | context-bc20cf026cb0d2a175c116c5840d167f341d885e.tar.gz |
beta 2011.03.26 12:41
Diffstat (limited to 'tex/context/base/node-fnt.lua')
-rw-r--r-- | tex/context/base/node-fnt.lua | 38 |
1 files changed, 23 insertions, 15 deletions
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 |