summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/cldf-ini.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2016-11-01 11:41:49 +0100
committerContext Git Mirror Bot <phg42.2a@gmail.com>2016-11-01 11:41:49 +0100
commit5a501d72ddc9ab9003746aa46fad3a12046e20ec (patch)
tree961dfe1070db46aa798ec0dc553f19b60f8355c6 /tex/context/base/mkiv/cldf-ini.lua
parentf0bc9c17c5298a3a4645f28a39273f52c27c646a (diff)
downloadcontext-5a501d72ddc9ab9003746aa46fad3a12046e20ec.tar.gz
2016-11-01 10:15:00
Diffstat (limited to 'tex/context/base/mkiv/cldf-ini.lua')
-rw-r--r--tex/context/base/mkiv/cldf-ini.lua44
1 files changed, 30 insertions, 14 deletions
diff --git a/tex/context/base/mkiv/cldf-ini.lua b/tex/context/base/mkiv/cldf-ini.lua
index 3d8671149..66582ae4f 100644
--- a/tex/context/base/mkiv/cldf-ini.lua
+++ b/tex/context/base/mkiv/cldf-ini.lua
@@ -1317,18 +1317,34 @@ do
-- formatted.command([catcodes,]format[,...])
+-- local function formattedflush(parent,c,catcodes,fmt,...)
+-- if type(catcodes) == "number" then
+-- if fmt then
+-- local result
+-- pushcatcodes(catcodes)
+-- result = writer(parent,c,formatters[fmt](...))
+-- popcatcodes()
+-- return result
+-- else
+-- -- no need to change content catcodes
+-- return writer(parent,c)
+-- end
+-- else
+-- return writer(parent,c,formatters[catcodes](fmt,...))
+-- end
+-- end
+
local function formattedflush(parent,c,catcodes,fmt,...)
- if type(catcodes) == "number" then
- if fmt then
- local result
- pushcatcodes(catcodes)
- result = writer(parent,c,formatters[fmt](...))
- popcatcodes()
- return result
- else
- -- no need to change content catcodes
- return writer(parent,c)
- end
+ if not catcodes then
+ return writer(parent,c)
+ elseif not fmt then
+ return writer(parent,c,catcodes)
+ elseif type(catcodes) == "number" then
+ local result
+ pushcatcodes(catcodes)
+ result = writer(parent,c,formatters[fmt](...))
+ popcatcodes()
+ return result
else
return writer(parent,c,formatters[catcodes](fmt,...))
end
@@ -1356,10 +1372,10 @@ do
local function caller(parent,catcodes,fmt,...)
if not catcodes then
-- nothing
+ elseif not fmt then
+ flush(catcodes)
elseif type(catcodes) == "number" then
- if fmt then
- flush(catcodes,formatters[fmt](...))
- end
+ flush(catcodes,formatters[fmt](...))
else
flush(formatters[catcodes](fmt,...))
end