diff options
author | Marius <mariausol@gmail.com> | 2012-01-12 12:20:15 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2012-01-12 12:20:15 +0200 |
commit | 84d94e9754958d12711a8f07086a3d815d305d40 (patch) | |
tree | c84c7ab0812e5506873b5f51b1225fe278eb8e3f /tex/context/base/typo-dig.lua | |
parent | b7617f4f872bb6559addb5ee5fed28f06288a59a (diff) | |
download | context-84d94e9754958d12711a8f07086a3d815d305d40.tar.gz |
beta 2012.01.12 11:03
Diffstat (limited to 'tex/context/base/typo-dig.lua')
-rw-r--r-- | tex/context/base/typo-dig.lua | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/tex/context/base/typo-dig.lua b/tex/context/base/typo-dig.lua index 1e4a02fc6..f11b3b0e3 100644 --- a/tex/context/base/typo-dig.lua +++ b/tex/context/base/typo-dig.lua @@ -28,6 +28,7 @@ local insert_before = node.insert_before local insert_after = node.insert_after local texattribute = tex.attribute +local unsetvalue = attributes.unsetvalue local nodecodes = nodes.nodecodes local glyph_code = nodecodes.glyph @@ -42,6 +43,8 @@ local fontdata = fonthashes.identifiers local chardata = fonthashes.characters local quaddata = fonthashes.quads +local v_reset = interfaces.variables.reset + local charbase = characters.data local getdigitwidth = fonts.helpers.getdigitwidth @@ -125,20 +128,30 @@ end local m, enabled = 0, false -- a trick to make neighbouring ranges work -function digits.set(n) - if not enabled then - tasks.enableaction("processors","typesetters.digits.handler") - if trace_digits then - report_digits("enabling digit handler") - end - enabled = true - end - if m == 100 then - m = 1 +function digits.set(n) -- number or 'reset' + if n == v_reset then + n = unsetvalue else - m = m + 1 + n = tonumber(n) + if n then + if not enabled then + tasks.enableaction("processors","typesetters.digits.handler") + if trace_digits then + report_digits("enabling digit handler") + end + enabled = true + end + if m == 100 then + m = 1 + else + m = m + 1 + end + n = m * 100 + n + else + n = unsetvalue + end end - texattribute[a_digits] = m * 100 + n + texattribute[a_digits] = n end digits.handler = nodes.installattributehandler { @@ -146,3 +159,7 @@ digits.handler = nodes.installattributehandler { namespace = digits, processor = process, } + +-- interface + +commands.setdigitsmanipulation = digits.set |