summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/cldf-int.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/cldf-int.lua')
-rw-r--r--tex/context/base/mkiv/cldf-int.lua15
1 files changed, 12 insertions, 3 deletions
diff --git a/tex/context/base/mkiv/cldf-int.lua b/tex/context/base/mkiv/cldf-int.lua
index 937e1da60..86420f422 100644
--- a/tex/context/base/mkiv/cldf-int.lua
+++ b/tex/context/base/mkiv/cldf-int.lua
@@ -45,7 +45,7 @@ if CONTEXTLMTXMODE > 0 then
local equal = byte('=')
local comma = byte(',')
- function scanhash(t)
+ function scanhash(scanners)
if scanpeek() == open then
local data = { }
scanskip()
@@ -61,7 +61,16 @@ if CONTEXTLMTXMODE > 0 then
if key then
if scanpeek() == equal then
scanskip()
- data[key] = scanvalue(comma,close) or ""
+ if scanners then
+ local scanner = scanners[key]
+ if scanner then
+ data[key] = scanner()
+ else
+ data[key] = scanvalue(comma,close) or ""
+ end
+ else
+ data[key] = scanvalue(comma,close) or ""
+ end
else
break
end
@@ -74,7 +83,7 @@ if CONTEXTLMTXMODE > 0 then
end
end
- function scanarray(t)
+ function scanarray()
if scanpeek() == open then
local data = { }
local d = 0