summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua87
1 files changed, 31 insertions, 56 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
index 7a1c813014b..3710b24159a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
@@ -13,69 +13,32 @@ if not modules then modules = { } end modules ['cldf-ver'] = {
local concat, tohandle = table.concat, table.tohandle
local splitlines, strip = string.splitlines, string.strip
local tostring, type = tostring, type
-local assignbuffer = buffers.assign
local context = context
-context.tobuffer = assignbuffer -- (name,str,catcodes)
-
-function context.tolines(str,strip)
- local lines = type(str) == "string" and splitlines(str) or str
- for i=1,#lines do
- if strip then
- context(strip(lines[i]) .. " ")
- else
- context(lines[i] .. " ")
- end
- end
-end
-
--- local function flush(...)
--- context(concat { ..., "\r" }) -- was \n
--- end
---
--- somehow this doesn't work any longer .. i need to figure out why
---
--- local function t_tocontext(t)
--- context.starttyping { "typing" } -- else [1] is intercepted
--- context.pushcatcodes("verbatim")
--- -- tohandle(flush,...)
--- context(table.serialize(t))
--- context.stoptyping()
--- context.popcatcodes()
--- end
---
--- local function s_tocontext(first,second,...) -- we need to catch {\}
--- context.type()
--- context("{")
--- context.pushcatcodes("verbatim")
--- if second then
--- context(concat({ first, second, ... }, " "))
--- else
--- context(first) -- no need to waste a { }
--- end
--- context.popcatcodes()
--- context("}")
--- end
-
-local t_buffer = { "t_o_c_o_n_t_e_x_t" }
-local t_typing = { "typing" }
-local t_type = { "type" }
-
-local function flush(s,inline)
- assignbuffer("t_o_c_o_n_t_e_x_t",s)
- context[inline and "typeinlinebuffer" or "typebuffer"](t_buffer)
- context.resetbuffer(t_buffer)
+local function flush(...)
+ context(concat{...,"\r"}) -- was \n
end
-local function t_tocontext(t)
- local s = table.serialize(t)
- context(function() flush(s,false) end)
+local function t_tocontext(...)
+ context.starttyping { "typing" } -- else [1] is intercepted
+ context.pushcatcodes("verbatim")
+ tohandle(flush,...) -- ok?
+ context.stoptyping()
+ context.popcatcodes()
end
-local function s_tocontext(first,second,...) -- we need to catch {\}
- local s = second and concat({ first, second, ... }, " ") or first
- context(function() flush(s,true) end)
+local function s_tocontext(first,...) -- we need to catch {\}
+ context.type()
+ context("{")
+ context.pushcatcodes("verbatim")
+ if first then
+ context(first) -- no need to waste a { }
+ else
+ context(concat({first,...}," "))
+ end
+ context.popcatcodes()
+ context("}")
end
local function b_tocontext(b)
@@ -111,3 +74,15 @@ end)
context.tocontext = tocontext
+context.tobuffer = buffers.assign -- (name,str,catcodes)
+
+function context.tolines(str,strip)
+ local lines = type(str) == "string" and splitlines(str) or str
+ for i=1,#lines do
+ if strip then
+ context(strip(lines[i]) .. " ")
+ else
+ context(lines[i] .. " ")
+ end
+ end
+end