summaryrefslogtreecommitdiff
path: root/tex/context/base/typo-dig.lua
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2012-01-12 12:20:15 +0200
committerMarius <mariausol@gmail.com>2012-01-12 12:20:15 +0200
commit84d94e9754958d12711a8f07086a3d815d305d40 (patch)
treec84c7ab0812e5506873b5f51b1225fe278eb8e3f /tex/context/base/typo-dig.lua
parentb7617f4f872bb6559addb5ee5fed28f06288a59a (diff)
downloadcontext-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.lua41
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