summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/core-job.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/core-job.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/core-job.lua44
1 files changed, 27 insertions, 17 deletions
diff --git a/Master/texmf-dist/tex/context/base/core-job.lua b/Master/texmf-dist/tex/context/base/core-job.lua
index d557818bb35..f56d2ca1f2e 100644
--- a/Master/texmf-dist/tex/context/base/core-job.lua
+++ b/Master/texmf-dist/tex/context/base/core-job.lua
@@ -11,12 +11,16 @@ local ctxcatcodes, texcatcodes = tex.ctxcatcodes, tex.texcatcodes
local lower, format, find, gmatch, gsub, match = string.lower, string.format, string.find, string.gmatch, string.gsub, string.match
local concat = table.concat
+local commands, resolvers, context = commands, resolvers, context
+
-- main code
resolvers.maxreadlevel = 3
directives.register("resolvers.maxreadlevel", function(v) resolvers.maxreadlevel = tonumber(v) or resolvers.maxreadlevel end)
+local report_examodes = logs.reporter("system","examodes") -- maybe another category
+
local function exists(n)
if io.exists(n) then
return n
@@ -47,7 +51,7 @@ function resolvers.findctxfile(name,maxreadlevel)
end
end
end
- return resolvers.find_file(name) or ""
+ return resolvers.findfile(name) or ""
end
end
@@ -71,12 +75,12 @@ function commands.locatefilepath(name,maxreadlevel)
end
function commands.usepath(paths,maxreadlevel)
- resolvers.register_extra_path(paths)
+ resolvers.registerextrapath(paths)
texsprint(texcatcodes,concat(resolvers.instance.extra_paths or {}, ""))
end
function commands.usesubpath(subpaths,maxreadlevel)
- resolvers.register_extra_path(nil,subpaths)
+ resolvers.registerextrapath(nil,subpaths)
texsprint(texcatcodes,concat(resolvers.instance.extra_paths or {}, ""))
end
@@ -104,38 +108,44 @@ local function convertexamodes(str)
local data = xml.text(e)
local mode = match(label,"^mode:(.+)$")
if mode then
- texsprint(ctxcatcodes,format("\\enablemode[%s:%s]",mode,data))
+ context.enablemode { format("%s:%s",mode,data) }
end
- texsprint(ctxcatcodes,format("\\setvariable{exa:variables}{%s}{%s}",label,gsub(data,"([{}])","\\%1")))
+ context.setvariable("exa:variables",label,(gsub(data,"([{}])","\\%1")))
end
end
end
--- we need a system file option: ,. .. etc + paths but no tex lookup so resolvers.find_file is wrong here
+-- we need a system file option: ,. .. etc + paths but no tex lookup so resolvers.findfile is wrong here
function commands.loadexamodes(filename)
if not filename or filename == "" then
filename = file.removesuffix(tex.jobname)
end
- filename = resolvers.find_file(file.addsuffix(filename,'ctm')) or ""
+ filename = resolvers.findfile(file.addsuffix(filename,'ctm')) or ""
if filename ~= "" then
- commands.writestatus("examodes","loading %s",filename) -- todo: message system
+ report_examodes("loading %s",filename) -- todo: message system
convertexamodes(io.loaddata(filename))
else
- commands.writestatus("examodes","no mode file %s",filename) -- todo: message system
+ report_examodes("no mode file %s",filename) -- todo: message system
end
end
+local report_options = logs.reporter("system","options")
+
function commands.logoptionfile(name)
-- todo: xml if xml logmode
local f = io.open(name)
if f then
- texio.write_nl("log","%\n%\tbegin of optionfile\n%\n")
+ logs.pushtarget("logfile")
+ report_options("begin of optionfile")
+ report_options()
for line in f:lines() do
- texio.write("log",format("%%\t%s\n",line))
+ report_options(line)
end
- texio.write("log","%\n%\tend of optionfile\n%\n")
+ report_options()
+ report_options("end of optionfile")
f:close()
+ logs.poptarget()
end
end
@@ -148,7 +158,7 @@ end
--~ for sa in gmatch(a,"[^ ,]+") do
--~ for sb in gmatch(b,"[^ ,]+") do
--~ if sa == sb then
---~ texsprint(ctxcatcodes,"\\def\\commalistelement{",sa,"}")
+--~ context.setvalue("commalistelement",sa)
--~ return true
--~ end
--~ end
@@ -156,24 +166,24 @@ end
--~ elseif ba then
--~ for sa in gmatch(a,"[^ ,]+") do
--~ if sa == b then
---~ texsprint(ctxcatcodes,"\\def\\commalistelement{",b,"}")
+--~ context.setvalue("commalistelement",b)
--~ return true
--~ end
--~ end
--~ elseif bb then
--~ for sb in gmatch(b,"[^ ,]+") do
--~ if a == sb then
---~ texsprint(ctxcatcodes,"\\def\\commalistelement{",a,"}")
+--~ context.setvalue("commalistelement",sb)
--~ return true
--~ end
--~ end
--~ else
--~ if a == b then
---~ texsprint(ctxcatcodes,"\\def\\commalistelement{",a,"}")
+--~ context.setvalue("commalistelement",a)
--~ return true
--~ end
--~ end
---~ texsprint(ctxcatcodes,"\\let\\commalistelement\\empty")
+--~ context.letvalueempty("commalistelement")
--~ return false
--~ end
--~ local function doifinsetelse(a,b)