diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/typo-dig.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/typo-dig.lua | 67 |
1 files changed, 32 insertions, 35 deletions
diff --git a/Master/texmf-dist/tex/context/base/typo-dig.lua b/Master/texmf-dist/tex/context/base/typo-dig.lua index f11b3b0e378..e6c65399d19 100644 --- a/Master/texmf-dist/tex/context/base/typo-dig.lua +++ b/Master/texmf-dist/tex/context/base/typo-dig.lua @@ -19,56 +19,53 @@ local report_digits = logs.reporter("typesetting","digits") local nodes, node = nodes, node -local has_attribute = node.has_attribute -local unset_attribute = node.unset_attribute -local set_attribute = node.set_attribute -local hpack_node = node.hpack -local traverse_id = node.traverse_id -local insert_before = node.insert_before -local insert_after = node.insert_after +local hpack_node = node.hpack +local traverse_id = node.traverse_id +local insert_node_before = node.insert_before +local insert_node_after = node.insert_after -local texattribute = tex.attribute -local unsetvalue = attributes.unsetvalue +local texattribute = tex.attribute +local unsetvalue = attributes.unsetvalue -local nodecodes = nodes.nodecodes -local glyph_code = nodecodes.glyph +local nodecodes = nodes.nodecodes +local glyph_code = nodecodes.glyph -local nodepool = nodes.pool -local tasks = nodes.tasks +local nodepool = nodes.pool +local tasks = nodes.tasks -local new_glue = nodepool.glue +local new_glue = nodepool.glue -local fonthashes = fonts.hashes -local fontdata = fonthashes.identifiers -local chardata = fonthashes.characters -local quaddata = fonthashes.quads +local fonthashes = fonts.hashes +local fontdata = fonthashes.identifiers +local chardata = fonthashes.characters +local quaddata = fonthashes.quads -local v_reset = interfaces.variables.reset +local v_reset = interfaces.variables.reset -local charbase = characters.data -local getdigitwidth = fonts.helpers.getdigitwidth +local charbase = characters.data +local getdigitwidth = fonts.helpers.getdigitwidth -typesetters = typesetters or { } -local typesetters = typesetters +typesetters = typesetters or { } +local typesetters = typesetters -typesetters.digits = typesetters.digits or { } -local digits = typesetters.digits +typesetters.digits = typesetters.digits or { } +local digits = typesetters.digits -digits.actions = { } -local actions = digits.actions +digits.actions = { } +local actions = digits.actions -local a_digits = attributes.private("digits") -digits.attribute = a_digits +local a_digits = attributes.private("digits") +digits.attribute = a_digits -- at some point we can manipulate the glyph node so then i need -- to rewrite this then function nodes.aligned(head,start,stop,width,how) if how == "flushright" or how == "middle" then - head, start = insert_before(head,start,new_glue(0,65536,65536)) + head, start = insert_node_before(head,start,new_glue(0,65536,65536)) end if how == "flushleft" or how == "middle" then - head, stop = insert_after(head,stop,new_glue(0,65536,65536)) + head, stop = insert_node_after(head,stop,new_glue(0,65536,65536)) end local prv, nxt = start.prev, stop.next start.prev, stop.next = nil, nil @@ -95,7 +92,7 @@ actions[1] = function(head,start,attribute,attr) local oldwidth, newwidth = start.width, getdigitwidth(font) if newwidth ~= oldwidth then if trace_digits then - report_digits("digit trigger %s, instance %s, char 0x%05X, unicode 0x%05X, delta %s", + report_digits("digit trigger %a, instance %a, char %C, unicode %U, delta %s", attr%100,div(attr,100),char,what,newwidth-oldwidth) end head, start = nodes.aligned(head,start,start,newwidth,"middle") @@ -109,15 +106,15 @@ local function process(namespace,attribute,head) local done, current, ok = false, head, false while current do if current.id == glyph_code then - local attr = has_attribute(current,attribute) + local attr = current[attribute] if attr and attr > 0 then - unset_attribute(current,attribute) + current[attribute] = unsetvalue local action = actions[attr%100] -- map back to low number if action then head, current, ok = action(head,current,attribute,attr) done = done and ok elseif trace_digits then - report_digits("unknown digit trigger %s",attr) + report_digits("unknown digit trigger %a",attr) end end end |