summaryrefslogtreecommitdiff
path: root/tex/context/base/node-fnt.lua
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2011-03-26 14:00:13 +0200
committerMarius <mariausol@gmail.com>2011-03-26 14:00:13 +0200
commitbc20cf026cb0d2a175c116c5840d167f341d885e (patch)
tree09d9aa0186d16c3aa6d23186babfdbc9b2baf7e8 /tex/context/base/node-fnt.lua
parentf180acf05ebaa586f8ba705e4b58672416bede5e (diff)
downloadcontext-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.lua38
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