diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/core-job.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/core-job.lua | 44 |
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) |