diff options
248 files changed, 6153 insertions, 5645 deletions
diff --git a/scripts/context/lua/mtx-babel.lua b/scripts/context/lua/mtx-babel.lua index 7e08633cf..120e49092 100644 --- a/scripts/context/lua/mtx-babel.lua +++ b/scripts/context/lua/mtx-babel.lua @@ -8,6 +8,20 @@ if not modules then modules = { } end modules ['mtx-babel'] = { -- data tables by Thomas A. Schmitz +local helpinfo = [[ +--language=string conversion language (e.g. greek) +--structure=string obey given structure (e.g. 'document', default: 'context') +--convert convert babel codes into utf +]] + +local application = logs.application { + name = "mtx-babel", + banner = "Babel Input To UTF Conversion 1.20", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.babel = scripts.babel or { } @@ -387,22 +401,22 @@ do local structure = environment.argument("structure") or "document" converter = converter[structure] if converter then - logs.simple("converting '%s' using language '%s' with structure '%s'", filename, language, structure) + report("converting '%s' using language '%s' with structure '%s'", filename, language, structure) data = converter:match(data) local newfilename = filename .. ".utf" io.savedata(newfilename, data) - logs.simple("converted data saved in '%s'", newfilename) + report("converted data saved in '%s'", newfilename) else - logs.simple("unknown structure '%s' language '%s'", structure, language) + report("unknown structure '%s' language '%s'", structure, language) end else - logs.simple("no converter for language '%s'", language) + report("no converter for language '%s'", language) end else - logs.simple("provide language") + report("provide language") end else - logs.simple("no data in '%s'",filename) + report("no data in '%s'",filename) end end end @@ -415,16 +429,8 @@ do end -logs.extendbanner("Babel Input To UTF Conversion 1.20") - -messages.help = [[ ---language=string conversion language (e.g. greek) ---structure=string obey given structure (e.g. 'document', default: 'context') ---convert convert babel codes into utf -]] - if environment.argument("convert") then scripts.babel.convert(environment.files[1] or "") else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-base.lua b/scripts/context/lua/mtx-base.lua index 99a478b1e..ab5bfe18a 100644 --- a/scripts/context/lua/mtx-base.lua +++ b/scripts/context/lua/mtx-base.lua @@ -6,35 +6,7 @@ if not modules then modules = { } end modules ['mtx-base'] = { license = "see context related readme files" } -logs.extendbanner("ConTeXt TDS Management Tool 1.35 (aka luatools)") - --- private option --noluc for testing errors in the stub - -local instance = resolvers.instance - -local pattern = environment.arguments["pattern"] or nil -local fileformat = environment.arguments["format"] or "" -- nil ? -local allresults = environment.arguments["all"] or false -local trace = environment.arguments["trace"] - -if type(pattern) == 'boolean' then - logs.simple("invalid pattern specification") - pattern = nil -end - -if trace then - resolvers.settrace(trace) -- move to mtxrun ? -end - -runners = runners or { } -messages = messages or { } - -messages.no_ini_file = [[ -There is no lua initialization file found. It may be that you have -to regenerate the file database using "mtxrun --generate". -]] - -messages.help = [[ +local helpinfo = [[ --generate generate file database --variables show configuration variables --configurations show configuration order @@ -55,6 +27,32 @@ messages.help = [[ --trackers=list enable given trackers ]] +local application = logs.application { + name = "mtx-base", + banner = "ConTeXt TDS Management Tool 1.35 (aka luatools)", + helpinfo = helpinfo, +} + +local report = application.report + +-- private option --noluc for testing errors in the stub + +local instance = resolvers.instance + +local pattern = environment.arguments["pattern"] or nil +local fileformat = environment.arguments["format"] or "" -- nil ? +local allresults = environment.arguments["all"] or false +local trace = environment.arguments["trace"] + +if type(pattern) == 'boolean' then + report("invalid pattern specification") + pattern = nil +end + +if trace then + resolvers.settrace(trace) -- move to mtxrun ? +end + if environment.arguments["find-file"] then resolvers.load() if pattern then @@ -91,7 +89,7 @@ elseif environment.arguments["var-value"] or environment.arguments["show-value"] resolvers.dowithfilesandreport(resolvers.variable, environment.files) elseif environment.arguments["format-path"] then resolvers.load() - logs.simple(caches.getwritablepath("format")) + report(caches.getwritablepath("format")) elseif pattern then -- brrr resolvers.load() resolvers.dowithfilesandreport(resolvers.findfiles, { pattern }, fileformat, allresults) @@ -110,7 +108,7 @@ elseif environment.arguments["configurations"] or environment.arguments["show-co resolvers.load("nofiles") resolvers.listers.configurations() elseif environment.arguments["help"] or (environment.files[1]=='help') or (#environment.files==0) then - logs.help(messages.help) + application.help() elseif environment.files[1] == 'texmfcnf.lua' then resolvers.load("nofiles") resolvers.listers.configurations() diff --git a/scripts/context/lua/mtx-cache.lua b/scripts/context/lua/mtx-cache.lua index a6985d3bc..08202bbf8 100644 --- a/scripts/context/lua/mtx-cache.lua +++ b/scripts/context/lua/mtx-cache.lua @@ -6,6 +6,22 @@ if not modules then modules = { } end modules ['mtx-cache'] = { license = "see context related readme files" } +local helpinfo = [[ +--purge remove not used files +--erase completely remove cache +--list show cache + +--all all (not yet implemented) +]] + +local application = logs.application { + name = "mtx-cache", + banner = "ConTeXt & MetaTeX Cache Management 0.10", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.cache = scripts.cache or { } @@ -27,18 +43,18 @@ local function collect(path) end local function list(banner,path,tmas,tmcs,rest) - logs.report("cache",string.format("%s: %s",banner,path)) - logs.report() - logs.report("cache",string.format("tma : %4i",#tmas)) - logs.report("cache",string.format("tmc : %4i",#tmcs)) - logs.report("cache",string.format("rest : %4i",#rest)) - logs.report("cache",string.format("total : %4i",#tmas+#tmcs+#rest)) - logs.report() + report("%s: %s",banner,path) + report() + report("tma : %4i",#tmas) + report("tmc : %4i",#tmcs) + report("rest : %4i",#rest) + report("total : %4i",#tmas+#tmcs+#rest) + report() end local function purge(banner,path,list,all) - logs.report("cache",string.format("%s: %s",banner,path)) - logs.report() + report("%s: %s",banner,path) + report() local n = 0 for i=1,#list do local filename = list[i] @@ -58,8 +74,8 @@ local function purge(banner,path,list,all) end end end - logs.report("cache",string.format("removed tma files : %i",n)) - logs.report() + report("removed tma files : %i",n) + report() end function scripts.cache.purge() @@ -92,16 +108,6 @@ function scripts.cache.list() end end -logs.extendbanner("ConTeXt & MetaTeX Cache Management 0.10") - -messages.help = [[ ---purge remove not used files ---erase completely remove cache ---list show cache - ---all all (not yet implemented) -]] - if environment.argument("purge") then scripts.cache.purge() elseif environment.argument("erase") then @@ -109,5 +115,5 @@ elseif environment.argument("erase") then elseif environment.argument("list") then scripts.cache.list() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-chars.lua b/scripts/context/lua/mtx-chars.lua index d356bb5bb..dc760c4e7 100644 --- a/scripts/context/lua/mtx-chars.lua +++ b/scripts/context/lua/mtx-chars.lua @@ -6,6 +6,20 @@ if not modules then modules = { } end modules ['mtx-chars'] = { license = "see context related readme files" } +local helpinfo = [[ +--stix convert stix table to math table +--xtx generate xetx-*.tex (used by xetex) +--pdf generate pdfr-def.tex (used by pdftex) +]] + +local application = logs.application { + name = "mtx-chars", + banner = "MkII Character Table Generators 0.10", + helpinfo = helpinfo, +} + +local report = application.report + local format, concat, utfchar, upper = string.format, table.concat, unicode.utf8.char, string.upper scripts = scripts or { } @@ -24,13 +38,13 @@ scripts.chars = scripts.chars or { } --~ --~ function scripts.chars.stixtomkiv(inname,outname) --~ if inname == "" then ---~ logs.report("aquiring math data","invalid datafilename") +--~ report("aquiring math data, invalid datafilename") --~ end --~ local f = io.open(inname) --~ if not f then ---~ logs.report("aquiring math data","invalid datafile") +--~ report("aquiring math data, invalid datafile") --~ else ---~ logs.report("aquiring math data","processing " .. inname) +--~ report("aquiring math data, processing %s",inname) --~ if not outname or outname == "" then --~ outname = "char-mth.lua" --~ end @@ -72,9 +86,9 @@ scripts.chars = scripts.chars or { } --~ end --~ if not valid then --~ g:write("\t-- The data file is corrupt, invalid or maybe the format has changed.\n") ---~ logs.report("aquiring math data","problems with data table") +--~ report("aquiring math data, problems with data table") --~ else ---~ logs.report("aquiring math data","table saved in " .. outname) +--~ report("aquiring math data, table saved in %s",outname) --~ end --~ g:write("}\n") --~ g:close() @@ -83,7 +97,7 @@ scripts.chars = scripts.chars or { } --~ end function scripts.chars.stixtomkiv(inname,outname) - logs.report("we no longer use this options but use our own tables instead") + report("we no longer use this options but use our own tables instead") end local banner_pdf_1 = [[ @@ -185,7 +199,7 @@ function scripts.chars.makeencoutf() local function open(name,banner) local f = io.open(name,'w') if f then - logs.simple("writing '%s'",name) + report("writing '%s'",name) f:write(format(banner_utf_module,name)) f:write(banner) f:write() @@ -307,14 +321,6 @@ function scripts.chars.makeencoutf() end end -logs.extendbanner("MkII Character Table Generators 0.10") - -messages.help = [[ ---stix convert stix table to math table ---xtx generate xetx-*.tex (used by xetex) ---pdf generate pdfr-def.tex (used by pdftex) -]] - if environment.argument("stix") then local inname = environment.files[1] or "" local outname = environment.files[2] or "" @@ -324,5 +330,5 @@ elseif environment.argument("xtx") then elseif environment.argument("pdf") then scripts.chars.makepdfr() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-check.lua b/scripts/context/lua/mtx-check.lua index 7704d86ae..e0ab3b882 100644 --- a/scripts/context/lua/mtx-check.lua +++ b/scripts/context/lua/mtx-check.lua @@ -6,6 +6,18 @@ if not modules then modules = { } end modules ['mtx-check'] = { license = "see context related readme files" } +local helpinfo = [[ +--convert check tex file for errors +]] + +local application = logs.application { + name = "mtx-check", + banner = "Basic ConTeXt Syntax Checking 0.10", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.checker = scripts.checker or { } @@ -123,17 +135,13 @@ function scripts.checker.check(filename) end end -logs.extendbanner("Basic ConTeXt Syntax Checking 0.10") - -messages.help = [[ ---convert check tex file for errors -]] - if environment.argument("check") then scripts.checker.check(environment.files[1]) elseif environment.argument("help") then - logs.help(messages.help) + application.help() elseif environment.files[1] then scripts.checker.check(environment.files[1]) +else + application.help() end diff --git a/scripts/context/lua/mtx-colors.lua b/scripts/context/lua/mtx-colors.lua index e5338a32b..ee825a42c 100644 --- a/scripts/context/lua/mtx-colors.lua +++ b/scripts/context/lua/mtx-colors.lua @@ -8,6 +8,22 @@ if not modules then modules = { } end modules ['mtx-colors'] = { -- todo: fc-cache -v en check dirs, or better is: fc-cat -v | grep Directory +local helpinfo = [[ +--table show icc table + +example: + +mtxrun --script color --table somename +]] + +local application = logs.application { + name = "mtx-cache", + banner = "ConTeXt Color Management 0.10", + helpinfo = helpinfo, +} + +local report = application.report + if not fontloader then fontloader = fontforge end dofile(resolvers.findfile("colo-icc.lua","tex")) @@ -21,31 +37,21 @@ function scripts.colors.table() for i=1,#files do local profile, okay, message = colors.iccprofile(files[i]) if not okay then - logs.simple(message) + report(message) else - logs.simple(table.serialize(profile,"profile")) + report(table.serialize(profile,"profile")) end end else - logs.simple("no file(s) given" ) + report("no file(s) given" ) end end -logs.extendbanner("ConTeXt Color Management 0.1") - -messages.help = [[ ---table show icc table - -example: - -mtxrun --script color --table somename -]] - --~ local track = environment.argument("track") --~ if track then trackers.enable(track) end if environment.argument("table") then scripts.colors.table() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-context.lua b/scripts/context/lua/mtx-context.lua index e3082e825..b8ca6a11e 100644 --- a/scripts/context/lua/mtx-context.lua +++ b/scripts/context/lua/mtx-context.lua @@ -6,6 +6,88 @@ if not modules then modules = { } end modules ['mtx-context'] = { license = "see context related readme files" } +local basicinfo = [[ +--run process (one or more) files (default action) +--make create context formats + +--ctx=name use ctx file (process management specification) +--interface use specified user interface (default: en) + +--autopdf close pdf file in viewer and start pdf viewer afterwards +--purge(all) purge files either or not after a run (--pattern=...) + +--usemodule=list load the given module or style, normally part o fthe distribution +--environment=list load the given environment file first (document styles) +--mode=list enable given the modes (conditional processing in styles) +--path=list also consult the given paths when files are looked for +--arguments=list set variables that can be consulted during a run (key/value pairs) +--randomseed=number set the randomseed +--result=name rename the resulting output to the given name +--trackers=list set tracker variables (show list with --showtrackers) +--directives=list set directive variables (show list with --showdirectives) +--silent=list disable logcatgories (show list with --showlogcategories) +--purgeresult purge result file before run + +--forcexml force xml stub (optional flag: --mkii) +--forcecld force cld (context lua document) stub + +--arrange run extra imposition pass, given that the style sets up imposition +--noarrange ignore imposition specifications in the style + +--once only run once (no multipass data file is produced) +--batchmode run without stopping and don't show messages on the console +--nonstopmode run without stopping + +--generate generate file database etc. (as luatools does) +--paranoid don't descend to .. and ../.. +--version report installed context version + +--expert expert options +]] + +-- filter=list is kind of obsolete +-- color is obsolete for mkiv, always on +-- separation is obsolete for mkiv, no longer available +-- output is currently obsolete for mkiv +-- setuppath=list must check +-- modefile=name must check +-- input=name load the given inputfile (must check) + +local expertinfo = [[ +expert options: + +--touch update context version number (remake needed afterwards, also provide --expert) +--nostats omit runtime statistics at the end of the run +--update update context from website (not to be confused with contextgarden) +--profile profile job (use: mtxrun --script profile --analyze) +--timing generate timing and statistics overview +--tracefiles show some extra info when locating files (at the tex end) + +--extra=name process extra (mtx-context-<name> in distribution) +--extras show extras +]] + +local specialinfo = [[ +special options: + +--pdftex process file with texexec using pdftex +--xetex process file with texexec using xetex + +--pipe don't check for file and enter scroll mode (--dummyfile=whatever.tmp) +]] + +local application = logs.application { + name = "mtx-context", + banner = "ConTeXt Process Management 0.52", + helpinfo = { + basic = basicinfo, + extra = extrainfo, + expert = expertinfo, + } +} + +local report = application.report + scripts = scripts or { } scripts.context = scripts.context or { } @@ -118,13 +200,13 @@ do elseif ctxdata.ctxname then ctlname = file.replacesuffix(ctxdata.ctxname,'ctl') else - logs.simple("invalid ctl name: %s",ctlname or "?") + report("invalid ctl name: %s",ctlname or "?") return end end local prepfiles = ctxdata.prepfiles if prepfiles and next(prepfiles) then - logs.simple("saving logdata in: %s",ctlname) + report("saving logdata in: %s",ctlname) f = io.open(ctlname,'w') if f then f:write("<?xml version='1.0' standalone='yes'?>\n\n") @@ -138,7 +220,7 @@ do f:close() end else - logs.simple("nothing prepared, no ctl file saved") + report("nothing prepared, no ctl file saved") os.remove(ctlname) end end @@ -173,8 +255,8 @@ do ctxdata.jobname = file.addsuffix(ctxdata.jobname,'tex') ctxdata.ctxname = file.addsuffix(ctxdata.ctxname,'ctx') - logs.simple("jobname: %s",ctxdata.jobname) - logs.simple("ctxname: %s",ctxdata.ctxname) + report("jobname: %s",ctxdata.jobname) + report("ctxname: %s",ctxdata.ctxname) -- mtxrun should resolve kpse: and file: @@ -225,7 +307,7 @@ do local messages = ctxdata.messages for i=1,#messages do - logs.simple("ctx comment: %s", xml.tostring(messages[i])) + report("ctx comment: %s", xml.tostring(messages[i])) end for r, d, k in xml.elements(ctxdata.xmldata,"ctx:value[@name='job']") do @@ -318,11 +400,11 @@ do -- potential optimization: when mtxrun run internal command = xml.content(command) command = ctxrunner.justtext(command) - logs.simple("command: %s",command) + report("command: %s",command) local result = os.spawn(command) or 0 -- somehow we get the wrong return value if result > 0 then - logs.simple("error, return code: %s",result) + report("error, return code: %s",result) end if ctxdata.runlocal then oldfile = file.basename(oldfile) @@ -333,11 +415,11 @@ do file.syncmtimes(oldfile,newfile) ctxdata.prepfiles[oldfile] = true else - logs.simple("error, check target location of new file: %s", newfile) + report("error, check target location of new file: %s", newfile) ctxdata.prepfiles[oldfile] = false end else - logs.simple("old file needs no preprocessing") + report("old file needs no preprocessing") ctxdata.prepfiles[oldfile] = lfs.isfile(newfile) end end @@ -447,10 +529,15 @@ function scripts.context.multipass.makeoptionfile(jobname,ctxdata,kindofrun,curr -- setalways("%% feedback and basic job control") if type(environment.argument("trackers")) == "string" then - setvalue ("trackers" , "\\enabletrackers[%s]") + setvalue("trackers" , "\\enabletrackers[%s]") end if type(environment.argument("directives")) == "string" then - setvalue ("directives", "\\enabledirectives[%s]") + setvalue("directives", "\\enabledirectives[%s]") + end + if type(environment.argument("silent")) == "string" then + setvalue("silent", "\\enabledirectives[logs.blocked={%s}]") + elseif environment.argument("silent") then + setvalue("silent", "\\enabledirectives[logs.blocked=*]") -- maybe \silentmode end setfixed ("timing" , "\\usemodule[timing]") setfixed ("batchmode" , "\\batchmode") @@ -490,7 +577,7 @@ function scripts.context.multipass.makeoptionfile(jobname,ctxdata,kindofrun,curr setalways("%% options (not that important)") -- setalways("\\startsetups *runtime:options") - setvalue ('output' , "\\setupoutput[%s]", scripts.context.backends, 'pdftex') + setvalue ('output' , "\\setupoutput[%s]", scripts.context.backends, 'pdf') setfixed ("color" , "\\setupcolors[\\c!state=\\v!start]") setvalue ("separation" , "\\setupcolors[\\c!split=%s]") setfixed ("noarrange" , "\\setuparranging[\\v!disable]") @@ -640,7 +727,7 @@ local pdfview -- delayed loading function scripts.context.openpdf(name,method) pdfview = pdfview or dofile(resolvers.findfile("l-pdfview.lua","tex")) pdfview.setmethod(method) - logs.simple(pdfview.status()) + report(pdfview.status()) pdfview.open(file.replacesuffix(name,"pdf")) end @@ -669,7 +756,7 @@ function scripts.context.run(ctxdata,filename) local formatfile, scriptfile = resolvers.locateformat(formatname) -- this catches the command line if not formatfile or not scriptfile then - logs.simple("warning: no format found, forcing remake (commandline driven)") + report("warning: no format found, forcing remake (commandline driven)") scripts.context.make(formatname) formatfile, scriptfile = resolvers.locateformat(formatname) end @@ -716,7 +803,7 @@ function scripts.context.run(ctxdata,filename) end -- this catches the command line if not formatfile or not scriptfile then - logs.simple("warning: no format found, forcing remake (source driven)") + report("warning: no format found, forcing remake (source driven)") scripts.context.make(formatname) formatfile, scriptfile = resolvers.locateformat(formatname) end @@ -785,7 +872,7 @@ function scripts.context.run(ctxdata,filename) -- local okay = statistics.checkfmtstatus(formatfile) if okay ~= true then - logs.simple("warning: %s, forcing remake",tostring(okay)) + report("warning: %s, forcing remake",tostring(okay)) scripts.context.make(formatname) end -- @@ -794,7 +881,7 @@ function scripts.context.run(ctxdata,filename) flags[#flags+1] = "--interaction=batchmode" end if environment.argument("synctex") then - logs.simple("warning: syntex is enabled") -- can add upto 5% runtime + report("warning: syntex is enabled") -- can add upto 5% runtime flags[#flags+1] = "--synctex=1" end flags[#flags+1] = "--fmt=" .. string.quote(formatfile) @@ -809,22 +896,22 @@ function scripts.context.run(ctxdata,filename) -- 1:first run, 2:successive run, 3:once, 4:last of maxruns local kindofrun = (once and 3) or (i==1 and 1) or (i==maxnofruns and 4) or 2 scripts.context.multipass.makeoptionfile(jobname,ctxdata,kindofrun,i,false) -- kindofrun, currentrun, final - logs.simple("run %s: %s",i,command) + report("run %s: %s",i,command) local returncode, errorstring = os.spawn(command) --~ if returncode == 3 then --~ scripts.context.make(formatname) --~ returncode, errorstring = os.spawn(command) --~ if returncode == 3 then - --~ logs.simple("ks: return code 3, message: %s",errorstring or "?") + --~ report("ks: return code 3, message: %s",errorstring or "?") --~ os.exit(1) --~ end --~ end if not returncode then - logs.simple("fatal error: no return code, message: %s",errorstring or "?") + report("fatal error: no return code, message: %s",errorstring or "?") os.exit(1) break elseif returncode > 0 then - logs.simple("fatal error: return code: %s",returncode or "?") + report("fatal error: return code: %s",returncode or "?") os.exit(returncode) break else @@ -842,13 +929,13 @@ function scripts.context.run(ctxdata,filename) if arrange then local kindofrun = 3 scripts.context.multipass.makeoptionfile(jobname,ctxdata,kindofrun,i,true) -- kindofrun, currentrun, final - logs.simple("arrange run: %s",command) + report("arrange run: %s",command) local returncode, errorstring = os.spawn(command) if not returncode then - logs.simple("fatal error: no return code, message: %s",errorstring or "?") + report("fatal error: no return code, message: %s",errorstring or "?") os.exit(1) elseif returncode > 0 then - logs.simple("fatal error: return code: %s",returncode or "?") + report("fatal error: return code: %s",returncode or "?") os.exit(returncode) end end @@ -881,7 +968,7 @@ function scripts.context.run(ctxdata,filename) os.rename(tmpname,oldname) end end - logs.simple("result renamed to: %s",newbase) + report("result renamed to: %s",newbase) end -- if environment.argument("purge") then @@ -896,18 +983,18 @@ function scripts.context.run(ctxdata,filename) end -- if environment.argument("timing") then - logs.line() - logs.simple("you can process (timing) statistics with:",jobname) - logs.line() - logs.simple("context --extra=timing '%s'",jobname) - logs.simple("mtxrun --script timing --xhtml [--launch --remove] '%s'",jobname) - logs.line() + report() + report("you can process (timing) statistics with:",jobname) + report() + report("context --extra=timing '%s'",jobname) + report("mtxrun --script timing --xhtml [--launch --remove] '%s'",jobname) + report() end else if formatname then - logs.simple("error, no format found with name: %s, skipping",formatname) + report("error, no format found with name: %s, skipping",formatname) else - logs.simple("error, no format found (provide formatname or interface)") + report("error, no format found (provide formatname or interface)") end break end @@ -915,9 +1002,9 @@ function scripts.context.run(ctxdata,filename) end else if formatname then - logs.simple("error, no format found with name: %s, aborting",formatname) + report("error, no format found with name: %s, aborting",formatname) else - logs.simple("error, no format found (provide formatname or interface)") + report("error, no format found (provide formatname or interface)") end end end @@ -931,14 +1018,14 @@ function scripts.context.pipe() local formatname = scripts.context.interfaces[interface] or "cont-en" local formatfile, scriptfile = resolvers.locateformat(formatname) if not formatfile or not scriptfile then - logs.simple("warning: no format found, forcing remake (commandline driven)") + report("warning: no format found, forcing remake (commandline driven)") scripts.context.make(formatname) formatfile, scriptfile = resolvers.locateformat(formatname) end if formatfile and scriptfile then local okay = statistics.checkfmtstatus(formatfile) if okay ~= true then - logs.simple("warning: %s, forcing remake",tostring(okay)) + report("warning: %s, forcing remake",tostring(okay)) scripts.context.make(formatname) end local flags = { @@ -950,12 +1037,12 @@ function scripts.context.pipe() local filename = environment.argument("dummyfile") or "" if filename == "" then filename = "\\relax" - logs.simple("entering scrollmode, end job with \\end") + report("entering scrollmode, end job with \\end") else filename = file.addsuffix(filename,"tmp") io.savedata(filename,"\\relax") scripts.context.multipass.makeoptionfile(filename,{ flags = flags },3,1,false) -- kindofrun, currentrun, final - logs.simple("entering scrollmode using '%s' with optionfile, end job with \\end",filename) + report("entering scrollmode using '%s' with optionfile, end job with \\end",filename) end local command = string.format("luatex %s %s", table.concat(flags," "), string.quote(filename)) os.spawn(command) @@ -967,9 +1054,9 @@ function scripts.context.pipe() end else if formatname then - logs.simple("error, no format found with name: %s, aborting",formatname) + report("error, no format found with name: %s, aborting",formatname) else - logs.simple("error, no format found (provide formatname or interface)") + report("error, no format found (provide formatname or interface)") end end end @@ -979,7 +1066,7 @@ local make_mkiv_format = environment.make_format local function make_mkii_format(name,engine) if environment.argument(engine) then local command = string.format("mtxrun texexec.rb --make --%s %s",name,engine) - logs.simple("running command: %s",command) + report("running command: %s",command) os.spawn(command) end end @@ -1051,7 +1138,7 @@ function scripts.context.metapost() dofile(resolvers.findfile("mlib-run.lua")) loaded = true commands = commands or { } - commands.writestatus = logs.report + commands.writestatus = report -- no longer needed end local formatname = environment.argument("format") or "metafun" if formatname == "" or type(format) == "boolean" then @@ -1079,20 +1166,20 @@ end function scripts.context.version() local name = resolvers.findfile("context.mkiv") if name ~= "" then - logs.simple("main context file: %s",name) + report("main context file: %s",name) local data = io.loaddata(name) if data then local version = data:match("\\edef\\contextversion{(.-)}") if version then - logs.simple("current version: %s",version) + report("current version: %s",version) else - logs.simple("context version: unknown, no timestamp found") + report("context version: unknown, no timestamp found") end else - logs.simple("context version: unknown, load error") + report("context version: unknown, load error") end else - logs.simple("main context file: unknown, 'context.mkiv' not found") + report("main context file: unknown, 'context.mkiv' not found") end end @@ -1157,7 +1244,7 @@ function scripts.context.purge_job(jobname,all,mkiitoo) end end if #deleted > 0 then - logs.simple("purged files: %s", table.concat(deleted,", ")) + report("purged files: %s", table.concat(deleted,", ")) end end end @@ -1187,7 +1274,7 @@ function scripts.context.purge(all,pattern,mkiitoo) end end if #deleted > 0 then - logs.simple("purged files: %s", table.concat(deleted,", ")) + report("purged files: %s", table.concat(deleted,", ")) end end @@ -1215,12 +1302,12 @@ end local function touchfiles(suffix) local done, oldversion, newversion, foundname = touch(file.addsuffix("context",suffix),"(\\edef\\contextversion{)(.-)(})") if done then - logs.simple("old version : %s", oldversion) - logs.simple("new version : %s", newversion) - logs.simple("touched file: %s", foundname) + report("old version : %s", oldversion) + report("new version : %s", newversion) + report("touched file: %s", foundname) local ok, _, _, foundname = touch(file.addsuffix("cont-new",suffix), "(\\newcontextversion{)(.-)(})") if ok then - logs.simple("touched file: %s", foundname) + report("touched file: %s", foundname) end end end @@ -1237,26 +1324,21 @@ end function scripts.context.extras(pattern) local found = resolvers.findfile("context.mkiv") if found == "" then - logs.simple("unknown extra: %s", extra) + report("unknown extra: %s", extra) else pattern = file.join(dir.expandname(file.dirname(found)),string.format("mtx-context-%s.tex",pattern or "*")) local list = dir.glob(pattern) - if not extra or extra == "" then - logs.extendbanner("extras") - else - logs.extendbanner(extra) - end for i=1,#list do local v = list[i] local data = io.loaddata(v) or "" data = string.match(data,"begin help(.-)end help") if data then - local h = { string.format("extra: %s (%s)",string.gsub(v,"^.*mtx%-context%-(.-)%.tex$","%1"),v) } + report() + report(string.format("extra: %s (%s)",string.gsub(v,"^.*mtx%-context%-(.-)%.tex$","%1"),v)) for s in string.gmatch(data,"%% *(.-)[\n\r]") do - h[#h+1] = s + report(s) end - h[#h+1] = "" - logs.help(table.concat(h,"\n"),"nomoreinfo") + report() end end end @@ -1277,7 +1359,7 @@ function scripts.context.extra() scripts.context.extras() return else - logs.simple("processing extra: %s", foundextra) + report("processing extra: %s", foundextra) end environment.setargument("purgeall",true) local result = environment.setargument("result") or "" @@ -1294,17 +1376,24 @@ end -- todo: we need to do a dummy run function scripts.context.trackers() - environment.files = { resolvers.findfile("m-trackers.tex") } + environment.files = { resolvers.findfile("m-trackers.mkiv") } scripts.context.multipass.nofruns = 1 + environment.setargument("purgeall",true) scripts.context.run() - -- maybe filter from log end function scripts.context.directives() - environment.files = { resolvers.findfile("m-directives.tex") } + environment.files = { resolvers.findfile("m-directives.mkiv") } scripts.context.multipass.nofruns = 1 + environment.setargument("purgeall",true) + scripts.context.run() +end + +function scripts.context.logcategories() + environment.files = { resolvers.findfile("m-logcategories.mkiv") } + scripts.context.multipass.nofruns = 1 + environment.setargument("purgeall",true) scripts.context.run() - -- maybe filter from log end function scripts.context.timed(action) @@ -1332,12 +1421,12 @@ function scripts.context.update() local http = require("socket.http") local basepath = resolvers.findfile("context.mkiv") or "" if basepath == "" then - logs.simple("quiting, no 'context.mkiv' found") + report("quiting, no 'context.mkiv' found") return end local basetree = basepath.match(basepath,"^(.-)tex/context/base/context.mkiv$") or "" if basetree == "" then - logs.simple("quiting, no proper tds structure (%s)",basepath) + report("quiting, no proper tds structure (%s)",basepath) return end local function is_okay(basetree) @@ -1351,19 +1440,19 @@ function scripts.context.update() end local okay = is_okay(basetree) if not okay then - logs.simple("quiting, tree '%s' is protected",okay) + report("quiting, tree '%s' is protected",okay) return else - logs.simple("updating tree '%s'",okay) + report("updating tree '%s'",okay) end if not lfs.chdir(basetree) then - logs.simple("quiting, unable to change to '%s'",okay) + report("quiting, unable to change to '%s'",okay) return end - logs.simple("fetching '%s'",mainzip) + report("fetching '%s'",mainzip) local latest = http.request(mainzip) if not latest then - logs.simple("context tree '%s' can be updated, use --force",okay) + report("context tree '%s' can be updated, use --force",okay) return end io.savedata("cont-tmf.zip",latest) @@ -1374,12 +1463,12 @@ function scripts.context.update() -- variant 2 local zipfile = zip.open(zipname) if not zipfile then - logs.simple("quiting, unable to open '%s'",zipname) + report("quiting, unable to open '%s'",zipname) return end local newfile = zip.loaddata(zipfile,"tex/context/base/context.mkiv") if not newfile then - logs.simple("quiting, unable to open '%s'","context.mkiv") + report("quiting, unable to open '%s'","context.mkiv") return end local oldfile = io.loaddata(resolvers.findfile("context.mkiv")) or "" @@ -1388,23 +1477,23 @@ function scripts.context.update() local year, month, day, hour, minute = str:match("\\edef\\contextversion{(%d+)%.(%d+)%.(%d+) *(%d+)%:(%d+)}") if year and minute then local time = os.time { year=year,month=month,day=day,hour=hour,minute=minute} - logs.simple("%s version: %s (%s)",what,version,time) + report("%s version: %s (%s)",what,version,time) return time else - logs.simple("%s version: %s (unknown)",what,version) + report("%s version: %s (unknown)",what,version) return nil end end local oldversion = versiontonumber("old",oldfile) local newversion = versiontonumber("new",newfile) if not oldversion or not newversion then - logs.simple("quiting, version cannot be determined") + report("quiting, version cannot be determined") return elseif oldversion == newversion then - logs.simple("quiting, your current version is up-to-date") + report("quiting, your current version is up-to-date") return elseif oldversion > newversion then - logs.simple("quiting, your current version is newer") + report("quiting, your current version is newer") return end for k in zipfile:files() do @@ -1417,7 +1506,7 @@ function scripts.context.update() if force then io.savedata(filename,data) end - logs.simple(filename) + report(filename) end end end @@ -1427,13 +1516,13 @@ function scripts.context.update() local newscript = "./scripts/context/lua/" .. scriptname local data = io.loaddata(newscript) or "" if data ~= "" then - logs.simple("replacing script '%s' by '%s'",oldscript,newscript) + report("replacing script '%s' by '%s'",oldscript,newscript) if force then io.savedata(oldscript,data) end end else - logs.simple("keeping script '%s'",oldscript) + report("keeping script '%s'",oldscript) end end if force then @@ -1441,83 +1530,12 @@ function scripts.context.update() end end if force then - logs.simple("context tree '%s' has been updated",okay) + report("context tree '%s' has been updated",okay) else - logs.simple("context tree '%s' can been updated (use --force)",okay) + report("context tree '%s' can been updated (use --force)",okay) end end -logs.extendbanner("ConTeXt Process Management 0.51") - -messages.help = [[ ---run process (one or more) files (default action) ---make create context formats - ---ctx=name use ctx file (process management specification) ---interface use specified user interface (default: en) - ---autopdf close pdf file in viewer and start pdf viewer afterwards ---purge(all) purge files either or not after a run (--pattern=...) - ---usemodule=list load the given module or style, normally part o fthe distribution ---environment=list load the given environment file first (document styles) ---mode=list enable given the modes (conditional processing in styles) ---path=list also consult the given paths when files are looked for ---arguments=list set variables that can be consulted during a run (key/value pairs) ---randomseed=number set the randomseed ---result=name rename the resulting output to the given name ---trackers=list show/set tracker variables ---directives=list show/set directive variables ---purgeresult purge result file before run - ---forcexml force xml stub (optional flag: --mkii) ---forcecld force cld (context lua document) stub - ---arrange run extra imposition pass, given that the style sets up imposition ---noarrange ignore imposition specifications in the style - ---once only run once (no multipass data file is produced) ---batchmode run without stopping and don't show messages on the console ---nonstopmode run without stopping - ---generate generate file database etc. (as luatools does) ---paranoid don't descend to .. and ../.. ---version report installed context version - ---expert expert options -]] - --- filter=list is kind of obsolete --- color is obsolete for mkiv, always on --- separation is obsolete for mkiv, no longer available --- output is currently obsolete for mkiv --- setuppath=list must check --- modefile=name must check --- input=name load the given inputfile (must check) - -messages.expert = [[ -expert options: - ---touch update context version number (remake needed afterwards, also provide --expert) ---nostats omit runtime statistics at the end of the run ---update update context from website (not to be confused with contextgarden) ---profile profile job (use: mtxrun --script profile --analyze) ---timing generate timing and statistics overview ---tracefiles show some extra info when locating files (at the tex end) - ---extra=name process extra (mtx-context-<name> in distribution) ---extras show extras -]] - -messages.special = [[ -special options: - ---pdftex process file with texexec using pdftex ---xetex process file with texexec using xetex - ---pipe don't check for file and enter scroll mode (--dummyfile=whatever.tmp) -]] - if environment.argument("once") then scripts.context.multipass.nofruns = 1 elseif environment.argument("runs") then @@ -1546,7 +1564,7 @@ elseif environment.argument("touch") then elseif environment.argument("update") then scripts.context.update() elseif environment.argument("expert") then - logs.help(table.concat({ messages.expert, messages.special },"\n")) + application.help("expert", "special") elseif environment.argument("extras") then scripts.context.extras() elseif environment.argument("extra") then @@ -1555,12 +1573,14 @@ elseif environment.argument("help") then if environment.files[1] == "extras" then scripts.context.extras() else - logs.help(messages.help) + application.help("basic") end -elseif environment.argument("trackers") and type(environment.argument("trackers")) == "boolean" then +elseif environment.argument("showtrackers") or environment.argument("trackers") == true then scripts.context.trackers() -elseif environment.argument("directives") and type(environment.argument("directives")) == "boolean" then +elseif environment.argument("showdirectives") or environment.argument("directives") == true then scripts.context.directives() +elseif environment.argument("showlogcategories") then + scripts.context.logcategories() elseif environment.argument("track") and type(environment.argument("track")) == "boolean" then -- for old times sake, will go scripts.context.trackers() elseif environment.files[1] then @@ -1575,7 +1595,7 @@ elseif environment.argument("purgeall") then -- only when no filename given, supports --pattern scripts.context.purge(true) else - logs.help(messages.help) + application.help("basic") end if environment.argument("profile") then diff --git a/scripts/context/lua/mtx-convert.lua b/scripts/context/lua/mtx-convert.lua index 448a1b6ca..0c5c01bbf 100644 --- a/scripts/context/lua/mtx-convert.lua +++ b/scripts/context/lua/mtx-convert.lua @@ -8,6 +8,23 @@ if not modules then modules = { } end modules ['mtx-convert'] = { -- todo: eps and svg +local helpinfo = [[ +--convertall convert all graphics on path +--inputpath=string original graphics path +--outputpath=string converted graphics path +--watch watch folders +--force force conversion (even if older) +--delay time between sweeps +]] + +local application = logs.application { + name = "mtx-convert", + banner = "ConTeXT Graphic Conversion Helpers 0.10", + helpinfo = helpinfo, +} + +local report = application.report + graphics = graphics or { } graphics.converters = graphics.converters or { } @@ -40,7 +57,7 @@ local function convert(kind,oldname,newname) if graphics.converters[kind] then -- extra test local tmpname = file.replacesuffix(newname,"tmp") local command = graphics.converters[kind](oldname,tmpname) - logs.simple("command: %s",command) + report("command: %s",command) io.flush() os.spawn(command) os.remove(newname) @@ -118,22 +135,10 @@ function scripts.convert.convertgiven() end end - -logs.extendbanner("ConTeXT Graphic Conversion Helpers 0.10") - -messages.help = [[ ---convertall convert all graphics on path ---inputpath=string original graphics path ---outputpath=string converted graphics path ---watch watch folders ---force force conversion (even if older) ---delay time between sweeps -]] - if environment.argument("convertall") then scripts.convert.convertall() elseif environment.files[1] then scripts.convert.convertgiven() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-fonts.lua b/scripts/context/lua/mtx-fonts.lua index b42627c95..b1e5f2dde 100644 --- a/scripts/context/lua/mtx-fonts.lua +++ b/scripts/context/lua/mtx-fonts.lua @@ -6,6 +6,49 @@ if not modules then modules = { } end modules ['mtx-fonts'] = { license = "see context related readme files" } +local helpinfo = [[ +--save save open type font in raw table + +--reload generate new font database +--reload --simple generate 'luatex-fonts-names.lua' (not for context!) + +--list --name list installed fonts, filter by name [--pattern] +--list --spec list installed fonts, filter by spec [--filter] +--list --file list installed fonts, filter by file [--pattern] + +--pattern=str filter files using pattern +--filter=list key-value pairs +--all show all found instances +--info give more details +--track=list enable trackers +--statistics some info about the database + +examples of searches: + +mtxrun --script font --list somename (== --pattern=*somename*) + +mtxrun --script font --list --name somename +mtxrun --script font --list --name --pattern=*somename* + +mtxrun --script font --list --spec somename +mtxrun --script font --list --spec somename-bold-italic +mtxrun --script font --list --spec --pattern=*somename* +mtxrun --script font --list --spec --filter="fontname=somename" +mtxrun --script font --list --spec --filter="familyname=somename,weight=bold,style=italic,width=condensed" +mtxrun --script font --list --spec --filter="familyname=crap*,weight=bold,style=italic" + +mtxrun --script font --list --file somename +mtxrun --script font --list --file --pattern=*somename* +]] + +local application = logs.application { + name = "mtx-fonts", + banner = "ConTeXt Font Database Management 0.21", + helpinfo = helpinfo, +} + +local report = application.report + -- todo: fc-cache -v en check dirs, or better is: fc-cat -v | grep Directory if not fontloader then fontloader = fontforge end @@ -31,29 +74,29 @@ function fonts.names.statistics() return table.sequenced(n) end - logs.simple("cache uuid : %s", data.cache_uuid) - logs.simple("cache version : %s", data.cache_version) - logs.simple("number of trees : %s", #data.datastate) - logs.simpleline() - logs.simple("number of fonts : %s", statistics.fonts or 0) - logs.simple("used files : %s", statistics.readfiles or 0) - logs.simple("skipped files : %s", statistics.skippedfiles or 0) - logs.simple("duplicate files : %s", statistics.duplicatefiles or 0) - logs.simple("specifications : %s", #data.specifications) - logs.simple("families : %s", table.count(data.families)) - logs.simpleline() - logs.simple("mappings : %s", counted(data.mappings)) - logs.simple("fallbacks : %s", counted(data.fallbacks)) - logs.simpleline() - logs.simple("used styles : %s", table.sequenced(statistics.used_styles)) - logs.simple("used variants : %s", table.sequenced(statistics.used_variants)) - logs.simple("used weights : %s", table.sequenced(statistics.used_weights)) - logs.simple("used widths : %s", table.sequenced(statistics.used_widths)) - logs.simpleline() - logs.simple("found styles : %s", table.sequenced(statistics.styles)) - logs.simple("found variants : %s", table.sequenced(statistics.variants)) - logs.simple("found weights : %s", table.sequenced(statistics.weights)) - logs.simple("found widths : %s", table.sequenced(statistics.widths)) + report("cache uuid : %s", data.cache_uuid) + report("cache version : %s", data.cache_version) + report("number of trees : %s", #data.datastate) + report() + report("number of fonts : %s", statistics.fonts or 0) + report("used files : %s", statistics.readfiles or 0) + report("skipped files : %s", statistics.skippedfiles or 0) + report("duplicate files : %s", statistics.duplicatefiles or 0) + report("specifications : %s", #data.specifications) + report("families : %s", table.count(data.families)) + report() + report("mappings : %s", counted(data.mappings)) + report("fallbacks : %s", counted(data.fallbacks)) + report() + report("used styles : %s", table.sequenced(statistics.used_styles)) + report("used variants : %s", table.sequenced(statistics.used_variants)) + report("used weights : %s", table.sequenced(statistics.used_weights)) + report("used widths : %s", table.sequenced(statistics.used_widths)) + report() + report("found styles : %s", table.sequenced(statistics.styles)) + report("found variants : %s", table.sequenced(statistics.variants)) + report("found weights : %s", table.sequenced(statistics.weights)) + report("found widths : %s", table.sequenced(statistics.widths)) end @@ -63,7 +106,7 @@ function fonts.names.simple() local name = "luatex-fonts-names.lua" fonts.names.filters.list = simplelist fonts.names.version = simpleversion -- this number is the same as in font-dum.lua - logs.report("fontnames","generating font database for 'luatex-fonts' version %s",fonts.names.version) + report("generating font database for 'luatex-fonts' version %s",fonts.names.version) fonts.names.identify(true) local data = fonts.names.data if data then @@ -80,12 +123,12 @@ function fonts.names.simple() simplemappings[tag] = { s.rawname, s.filename, s.subfont } end end - logs.report("fontnames","saving names in '%s'",name) + report("saving names in '%s'",name) io.savedata(name,table.serialize(simplified,true)) local data = io.loaddata(resolvers.findfile("font-dum.lua","tex")) local dummy = string.match(data,"fonts%.names%.version%s*=%s*([%d%.]+)") if tonumber(dummy) ~= simpleversion then - logs.report("fontnames","warning: version number %s in 'font-dum' does not match database version number %s",dummy or "?",simpleversion) + report("warning: version number %s in 'font-dum' does not match database version number %s",dummy or "?",simpleversion) end elseif lfs.isfile(name) then os.remove(name) @@ -117,28 +160,29 @@ local function fontweight(fw) end local function showfeatures(tag,specification) - logs.simple("mapping : %s",tag) - logs.simple("fontname: %s",specification.fontname) - logs.simple("fullname: %s",specification.fullname) - logs.simple("filename: %s",specification.filename) - logs.simple("family : %s",specification.familyname or "<nofamily>") - logs.simple("weight : %s",specification.weight or "<noweight>") - logs.simple("style : %s",specification.style or "<nostyle>") - logs.simple("width : %s",specification.width or "<nowidth>") - logs.simple("variant : %s",specification.variant or "<novariant>") - logs.simple("subfont : %s",subfont(specification.subfont)) - logs.simple("fweight : %s",fontweight(specification.fontweight)) + report() + report("mapping : %s",tag) + report("fontname: %s",specification.fontname) + report("fullname: %s",specification.fullname) + report("filename: %s",specification.filename) + report("family : %s",specification.familyname or "<nofamily>") + report("weight : %s",specification.weight or "<noweight>") + report("style : %s",specification.style or "<nostyle>") + report("width : %s",specification.width or "<nowidth>") + report("variant : %s",specification.variant or "<novariant>") + report("subfont : %s",subfont(specification.subfont)) + report("fweight : %s",fontweight(specification.fontweight)) -- maybe more local features = fonts.get_features(specification.filename,specification.format) if features then for what, v in table.sortedhash(features) do local data = features[what] if data and next(data) then - logs.simple() - logs.simple("%s features:",what) - logs.simple() - logs.simple("feature script languages") - logs.simple() + report() + report("%s features:",what) + report() + report("feature script languages") + report() for f,ff in table.sortedhash(data) do local done = false for s, ss in table.sortedhash(ff) do @@ -149,24 +193,22 @@ local function showfeatures(tag,specification) else done = true end - logs.simple("% -8s % -8s % -8s",f,s,table.concat(table.sortedkeys(ss), " ")) -- todo: padd 4 + report("% -8s % -8s % -8s",f,s,table.concat(table.sortedkeys(ss), " ")) -- todo: padd 4 end end end end else - logs.simple() - logs.simple("no features") - logs.simple() + report("no features") end - logs.reportline() + report() end local function reloadbase(reload) if reload then - logs.simple("fontnames, reloading font database") + report("fontnames, reloading font database") names.load(true) - logs.simple("fontnames, done\n\n") + report("fontnames, done\n\n") end end @@ -245,17 +287,17 @@ function scripts.fonts.list() --~ mtxrun --script font --list --name --pattern=*somename* list_matches(fonts.names.list(string.topattern(pattern,true),reload,all),info) elseif filter then - logs.report("fontnames","not supported: --list --name --filter",name) + report("not supported: --list --name --filter",name) elseif given then --~ mtxrun --script font --list --name somename list_matches(fonts.names.list(given,reload,all),info) else - logs.report("fontnames","not supported: --list --name <no specification>",name) + report("not supported: --list --name <no specification>",name) end elseif environment.argument("spec") then if pattern then --~ mtxrun --script font --list --spec --pattern=*somename* - logs.report("fontnames","not supported: --list --spec --pattern",name) + report("not supported: --list --spec --pattern",name) elseif filter then --~ mtxrun --script font --list --spec --filter="fontname=somename" list_specifications(fonts.names.getlookups(filter),info) @@ -263,19 +305,19 @@ function scripts.fonts.list() --~ mtxrun --script font --list --spec somename list_specifications(fonts.names.collectspec(given,reload,all),info) else - logs.report("fontnames","not supported: --list --spec <no specification>",name) + report("not supported: --list --spec <no specification>",name) end elseif environment.argument("file") then if pattern then --~ mtxrun --script font --list --file --pattern=*somename* list_specifications(fonts.names.collectfiles(string.topattern(pattern,true),reload,all),info) elseif filter then - logs.report("fontnames","not supported: --list --spec",name) + report("not supported: --list --spec",name) elseif given then --~ mtxrun --script font --list --file somename list_specifications(fonts.names.collectfiles(given,reload,all),info) else - logs.report("fontnames","not supported: --list --file <no specification>",name) + report("not supported: --list --file <no specification>",name) end elseif pattern then --~ mtxrun --script font --list --pattern=*somename* @@ -287,7 +329,7 @@ function scripts.fonts.list() pattern = "*" list_matches(fonts.names.list(string.topattern(pattern,true),reload,all),info) else - logs.report("fontnames","not supported: --list <no specification>",name) + report("not supported: --list <no specification>",name) end end @@ -298,7 +340,7 @@ function scripts.fonts.save() local function save(savename,fontblob) if fontblob then savename = savename:lower() .. ".lua" - logs.simple("fontsave, saving data in %s",savename) + report("fontsave, saving data in %s",savename) table.tofile(savename,fontloader.to_table(fontblob),"return") fontloader.close(fontblob) end @@ -310,7 +352,7 @@ function scripts.fonts.save() if suffix == 'ttf' or suffix == 'otf' or suffix == 'ttc' or suffix == "dfont" then local fontinfo = fontloader.info(filename) if fontinfo then - logs.simple("font: %s located as %s",name,filename) + report("font: %s located as %s",name,filename) if fontinfo[1] then for k=1,#fontinfo do local v = fontinfo[k] @@ -320,56 +362,19 @@ function scripts.fonts.save() save(fontinfo.fullname,fontloader.open(filename)) end else - logs.simple("font: %s cannot be read",filename) + report("font: %s cannot be read",filename) end else - logs.simple("font: %s not saved",filename) + report("font: %s not saved",filename) end else - logs.simple("font: %s not found",name) + report("font: %s not found",name) end else - logs.simple("font: no name given") + report("font: no name given") end end -logs.extendbanner("ConTeXt Font Database Management 0.21") - -messages.help = [[ ---save save open type font in raw table - ---reload generate new font database ---reload --simple generate 'luatex-fonts-names.lua' (not for context!) - ---list --name list installed fonts, filter by name [--pattern] ---list --spec list installed fonts, filter by spec [--filter] ---list --file list installed fonts, filter by file [--pattern] - ---pattern=str filter files using pattern ---filter=list key-value pairs ---all show all found instances ---info give more details ---track=list enable trackers ---statistics some info about the database - -examples of searches: - -mtxrun --script font --list somename (== --pattern=*somename*) - -mtxrun --script font --list --name somename -mtxrun --script font --list --name --pattern=*somename* - -mtxrun --script font --list --spec somename -mtxrun --script font --list --spec somename-bold-italic -mtxrun --script font --list --spec --pattern=*somename* -mtxrun --script font --list --spec --filter="fontname=somename" -mtxrun --script font --list --spec --filter="familyname=somename,weight=bold,style=italic,width=condensed" -mtxrun --script font --list --spec --filter="familyname=crap*,weight=bold,style=italic" - -mtxrun --script font --list --file somename -mtxrun --script font --list --file --pattern=*somename* -]] - local track = environment.argument("track") if track then trackers.enable(track) end @@ -388,5 +393,5 @@ elseif environment.argument("save") then elseif environment.argument("statistics") then fonts.names.statistics() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-grep.lua b/scripts/context/lua/mtx-grep.lua index 98378f92b..963422c68 100644 --- a/scripts/context/lua/mtx-grep.lua +++ b/scripts/context/lua/mtx-grep.lua @@ -6,11 +6,25 @@ if not modules then modules = { } end modules ['mtx-babel'] = { license = "see context related readme files" } +local helpinfo = [[ +--pattern search for pattern (optional) +--count count matches only +--nocomment skip lines that start with %% or # + +patterns are lua patterns and need to be escaped accordingly +]] + +local application = logs.application { + name = "mtx-grep", + banner = "Simple Grepper 0.10", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.grep = scripts.grep or { } -logs.extendbanner("Simple Grepper 0.10") - local find, format = string.find, string.format local cr = lpeg.P("\r") @@ -94,14 +108,6 @@ function scripts.grep.find(pattern, files, offset) end end -messages.help = [[ ---pattern search for pattern (optional) ---count count matches only ---nocomment skip lines that start with %% or # - -patterns are lua patterns and need to be escaped accordingly -]] - local pattern = environment.argument("pattern") local files = environment.files and #environment.files > 0 and environment.files @@ -110,5 +116,5 @@ if pattern and files then elseif files then scripts.grep.find(files[1], files, 2) else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-interface.lua b/scripts/context/lua/mtx-interface.lua index bee6a7da1..91ae16ce3 100644 --- a/scripts/context/lua/mtx-interface.lua +++ b/scripts/context/lua/mtx-interface.lua @@ -10,6 +10,36 @@ local concat, sort, insert = table.concat, table.sort, table.insert local gsub, format, gmatch, find = string.gsub, string.format, string.gmatch, string.find local utfchar, utfgsub = utf.char, utf.gsub +local helpinfo = [[ +--interfaces generate context interface files +--messages generate context message files +--labels generate context label files + +--context equals --interfaces --messages --languages + +--scite generate scite interface +--bbedit generate bbedit interface files +--jedit generate jedit interface files +--textpad generate textpad interface files +--text create text files for commands and environments +--raw report commands to the console +--check generate check file + +--toutf replace named characters by utf +--preprocess preprocess mkvi files to tex files [force,suffix] + +--suffix use given suffix for output files +--force force action even when in doubt +]] + +local application = logs.application { + name = "mtx-interface", + banner = "ConTeXt Interface Related Goodies 0.13", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.interface = scripts.interface or { } @@ -64,7 +94,7 @@ end function flushers.raw(interface,commands) for i=1,#commands do - logs.simple(commands[i]) + report(commands[i]) end end @@ -73,12 +103,12 @@ local textpadcreator = "mtx-interface-textpad.lua" function flushers.text(interface,commands,environments) local c, cname = { }, format("context-commands-%s.txt",interface) local e, ename = { }, format("context-environments-%s.txt",interface) - logs.simple("saving '%s'",cname) + report("saving '%s'",cname) for i=1,#commands do c[#c+1] = format("\\%s",commands[i]) end io.savedata(cname,concat(c,"\n")) - logs.simple("saving '%s'",ename) + report("saving '%s'",ename) for i=1,#environments do e[#e+1] = format("\\start%s",environments[i]) e[#e+1] = format("\\stop%s", environments[i]) @@ -92,7 +122,7 @@ function flushers.textpad(interface,commands,environments) -- plugin, this is a rewrite of a file provided by Lukas Prochazka -- local function merge(templatedata,destinationdata,categories) - logs.simple("loading '%s'",templatedata) + report("loading '%s'",templatedata) local data = io.loaddata(templatedata) local done = 0 for i=1,#categories do @@ -103,25 +133,25 @@ function flushers.textpad(interface,commands,environments) local found = resolvers.findfile(filename) or "" local blob = found ~= "" and io.loaddata(found) or "" if blob == "" then - logs.simple("category: %s, filename: %s, not found",category,filename) + report("category: %s, filename: %s, not found",category,filename) else done = done + 1 - logs.simple("category: %s, filename: %s, merged",category,filename) + report("category: %s, filename: %s, merged",category,filename) end return format("; category: %s\n; filename: %s\n%s\n\n",category,filename,blob) end) end if done > 0 then - logs.simple("saving '%s' (%s files merged)",destinationdata,done) + report("saving '%s' (%s files merged)",destinationdata,done) io.savedata(destinationdata,data) else - logs.simple("skipping '%s' (no files merged)",destinationdata) + report("skipping '%s' (no files merged)",destinationdata) end end local templatename = "textpad-context-template.txt" local templatedata = resolvers.findfile(templatename) or "" if templatedata == "" then - logs.simple("unable to locate template '%s'",templatename) + report("unable to locate template '%s'",templatename) else merge(templatedata, "context.syn", { "tex commands","context commands" }) if environment.argument("textpad") == "latex" then @@ -152,13 +182,13 @@ function scripts.interface.editor(editor,split,forcedinterfaces) end local xmlfile = resolvers.findfile("cont-en.xml") or "" if xmlfile == "" then - logs.simple("unable to locate cont-en.xml") + report("unable to locate cont-en.xml") end for i=1,#interfaces do local interface = interfaces[i] local keyfile = resolvers.findfile(format("keys-%s.xml",interface)) or "" if keyfile == "" then - logs.simple("unable to locate keys-*.xml") + report("unable to locate keys-*.xml") else local commands = { } local mappings = { } @@ -243,7 +273,7 @@ function scripts.interface.interfaces() local v = t[key] local value = v[language] or v["en"] if not value then - logs.simple("warning, no value for key '%s' for language '%s'",key,language) + report("warning, no value for key '%s' for language '%s'",key,language) else local value = t[key][language] or t[key].en texresult[#texresult+1] = format("\\setinterface%s{%s}{%s}",tag,key,value) @@ -281,9 +311,9 @@ function scripts.interface.interfaces() local texfilename = format("mult-%s.mkii",language) local xmlfilename = format("keys-%s.xml",language) io.savedata(texfilename,concat(texresult,"\n")) - logs.simple("saving interface definitions '%s'",texfilename) + report("saving interface definitions '%s'",texfilename) io.savedata(xmlfilename,concat(xmlresult,"\n")) - logs.simple("saving interface translations '%s'",xmlfilename) + report("saving interface translations '%s'",xmlfilename) if language ~= "en" and xmldata ~= "" then local newdata = xmldata:gsub("(<cd:interface.*language=.)en(.)","%1"..language.."%2",1) newdata = replace(newdata, 'cd:string', 'value', interface.commands, interface.elements, language) @@ -294,7 +324,7 @@ function scripts.interface.interfaces() newdata = replace(newdata, 'cd:inherit', 'name', interface.commands, interface.elements, language) local xmlfilename = format("cont-%s.xml",language) io.savedata(xmlfilename,newdata) - logs.simple("saving interface specification '%s'",xmlfilename) + report("saving interface specification '%s'",xmlfilename) end end end @@ -309,42 +339,42 @@ function scripts.interface.preprocess() local oldname = environment.files[i] local newname = file.replacesuffix(oldname,newsuffix) if oldname == newname then - logs.simple("skipping '%s' because old and new name are the same",oldname) + report("skipping '%s' because old and new name are the same",oldname) elseif io.exists(newname) and not force then - logs.simple("skipping '%s' because new file exists, use --force",oldname) + report("skipping '%s' because new file exists, use --force",oldname) else - logs.simple("processing '%s' into '%s'",oldname,newname) + report("processing '%s' into '%s'",oldname,newname) io.savedata(newname,resolvers.macros.preprocessed(io.loaddata(oldname))) end end end -function scripts.interface.messages() - local filename = resolvers.findfile(environment.files[1] or "mult-mes.lua") or "" - if filename ~= "" then - local messages = dofile(filename) - logs.simple("messages for * loaded from '%s'",filename) - logs.simple() - for i=1,#messageinterfaces do - local interface = messageinterfaces[i] - local texresult = { } - for category, data in next, messages do - for tag, message in next, data do - if tag ~= "files" then - local msg = message[interface] or message["all"] or message["en"] - if msg then - texresult[#texresult+1] = format("\\setinterfacemessage{%s}{%s}{%s}",category,tag,msg) - end - end - end - end - texresult[#texresult+1] = format("%%\n\\endinput") - local interfacefile = format("mult-m%s.mkii",interface) - io.savedata(interfacefile,concat(texresult,"\n")) - logs.simple("messages for '%s' saved in '%s'",interface,interfacefile) - end - end -end +-- function scripts.interface.messages() +-- local filename = resolvers.findfile(environment.files[1] or "mult-mes.lua") or "" +-- if filename ~= "" then +-- local messages = dofile(filename) +-- report("messages for * loaded from '%s'",filename) +-- report() +-- for i=1,#messageinterfaces do +-- local interface = messageinterfaces[i] +-- local texresult = { } +-- for category, data in next, messages do +-- for tag, message in next, data do +-- if tag ~= "files" then +-- local msg = message[interface] or message["all"] or message["en"] +-- if msg then +-- texresult[#texresult+1] = format("\\setinterfacemessage{%s}{%s}{%s}",category,tag,msg) +-- end +-- end +-- end +-- end +-- texresult[#texresult+1] = format("%%\n\\endinput") +-- local interfacefile = format("mult-m%s.mkii",interface) +-- io.savedata(interfacefile,concat(texresult,"\n")) +-- report("messages for '%s' saved in '%s'",interface,interfacefile) +-- end +-- end +-- end function scripts.interface.toutf() local filename = environment.files[1] @@ -363,7 +393,7 @@ function scripts.interface.toutf() contextnames.aumlaut = contextnames.adiaeresis contextnames.Aumlaut = contextnames.Adiaeresis end - logs.simple("loading '%s'",filename) + report("loading '%s'",filename) local str = io.loaddata(filename) or "" local done = { } str = gsub(str,"(\\)([a-zA-Z][a-zA-Z][a-zA-Z]+)(%s*)", function(b,s,a) @@ -378,129 +408,99 @@ function scripts.interface.toutf() end) for k, v in table.sortedpairs(done) do if v > 0 then - logs.simple("+ %5i : %s => %s",v,k,contextnames[k]) + report("+ %5i : %s => %s",v,k,contextnames[k]) else - logs.simple("- %5i : %s",-v,k,contextnames[k]) + report("- %5i : %s",-v,k,contextnames[k]) end end filename = filename .. ".toutf" - logs.simple("saving '%s'",filename) + report("saving '%s'",filename) io.savedata(filename,str) end end -function scripts.interface.labels() - require("char-def.lua") - require("lang-txt.lua") - local interfaces = require("mult-def.lua") - local variables = interfaces.variables - local contextnames = { } - for unicode, data in next, characters.data do - local contextname = data.contextname - if contextname then - contextnames[utfchar(unicode)] = "\\" .. contextname .. " " - end - end - contextnames["i"] = nil - contextnames["'"] = nil - contextnames["\\"] = nil - local function flush(f,kind,what,expand,namespace,prefix) - local whatdata = languages.data.labels[what] - f:write("\n") - f:write(format("%% %s => %s\n",what,kind)) - for tag, data in table.sortedpairs(whatdata) do - if not data.hidden then - f:write("\n") - for language, text in table.sortedpairs(data.labels) do - if text ~= "" then - if expand then - text = utfgsub(text,".",contextnames) - text = gsub(text," ", "\ ") - end - if namespace and namespace[tag] then - tag = prefix .. tag - end - if find(text,",") then - text = "{" .. text .. "}" - end - - if text == "" then - -- skip - else - if type(text) == "table" then - f:write(format("\\setup%stext[\\s!%s][%s={{%s},}]\n",kind,language,tag,text)) - else - f:write(format("\\setup%stext[\\s!%s][%s={{%s},{%s}}]\n",kind,language,tag,text[1],text[2])) - end - end - - end - end - end - end - end - function flushall(txtname,expand) - local f = io.open(txtname,"w") - if f then - logs.simple("saving '%s'",txtname) - f:write("% this file is auto-generated, don't edit this file\n") - flush(f,"head","titles",expand,variables,"\\v!") - flush(f,"label","texts",expand,variables,"\\v!") - flush(f,"mathlabel","functions",expand) - flush(f,"taglabel","tags",expand) - f:write("\n") - f:write("\\endinput\n") - f:close() - end - end - flushall("lang-txt.mkii",true) - flushall("lang-txt.mkiv",false) -end - -function scripts.interface.labels() - -- maybe supported one day -end - -logs.extendbanner("ConTeXt Interface Related Goodies 0.13") - -messages.help = [[ ---interfaces generate context interface files ---messages generate context message files ---labels generate context label files - ---context equals --interfaces --messages --languages - ---scite generate scite interface ---bbedit generate bbedit interface files ---jedit generate jedit interface files ---textpad generate textpad interface files ---text create text files for commands and environments ---raw report commands to the console ---check generate check file - ---toutf replace named characters by utf ---preprocess preprocess mkvi files to tex files [force,suffix] - ---suffix use given suffix for output files ---force force action even when in doubt -]] +-- function scripts.interface.labels() +-- require("char-def.lua") +-- require("lang-txt.lua") +-- local interfaces = require("mult-def.lua") +-- local variables = interfaces.variables +-- local contextnames = { } +-- for unicode, data in next, characters.data do +-- local contextname = data.contextname +-- if contextname then +-- contextnames[utfchar(unicode)] = "\\" .. contextname .. " " +-- end +-- end +-- contextnames["i"] = nil +-- contextnames["'"] = nil +-- contextnames["\\"] = nil +-- local function flush(f,kind,what,expand,namespace,prefix) +-- local whatdata = languages.data.labels[what] +-- f:write("\n") +-- f:write(format("%% %s => %s\n",what,kind)) +-- for tag, data in table.sortedpairs(whatdata) do +-- if not data.hidden then +-- f:write("\n") +-- for language, text in table.sortedpairs(data.labels) do +-- if text ~= "" then +-- if expand then +-- text = utfgsub(text,".",contextnames) +-- text = gsub(text," ", "\ ") +-- end +-- if namespace and namespace[tag] then +-- tag = prefix .. tag +-- end +-- if find(text,",") then +-- text = "{" .. text .. "}" +-- end +-- if text == "" then +-- -- skip +-- else +-- if type(text) == "table" then +-- f:write(format("\\setup%stext[\\s!%s][%s={{%s},}]\n",kind,language,tag,text)) +-- else +-- f:write(format("\\setup%stext[\\s!%s][%s={{%s},{%s}}]\n",kind,language,tag,text[1],text[2])) +-- end +-- end +-- end +-- end +-- end +-- end +-- end +-- function flushall(txtname,expand) +-- local f = io.open(txtname,"w") +-- if f then +-- report("saving '%s'",txtname) +-- f:write("% this file is auto-generated, don't edit this file\n") +-- flush(f,"head","titles",expand,variables,"\\v!") +-- flush(f,"label","texts",expand,variables,"\\v!") +-- flush(f,"mathlabel","functions",expand) +-- flush(f,"taglabel","tags",expand) +-- f:write("\n") +-- f:write("\\endinput\n") +-- f:close() +-- end +-- end +-- flushall("lang-txt.mkii",true) +-- flushall("lang-txt.mkiv",false) +-- end local ea = environment.argument if ea("context") then scripts.interface.interfaces() - scripts.interface.messages() - scripts.interface.labels() + -- scripts.interface.messages() + -- scripts.interface.labels() elseif ea("interfaces") or ea("messages") or ea("labels") then if ea("interfaces") then scripts.interface.interfaces() end - if ea("messages") then - scripts.interface.messages() - end - if ea("labels") then - scripts.interface.labels() - end + -- if ea("messages") then + -- scripts.interface.messages() + -- end + -- if ea("labels") then + -- scripts.interface.labels() + -- end elseif ea("preprocess") then scripts.interface.preprocess() elseif ea("toutf") then @@ -527,5 +527,5 @@ elseif ea("scite") or ea("bbedit") or ea("jedit") or ea("textpad") or ea("text") scripts.interface.editor("raw") end else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-metapost.lua b/scripts/context/lua/mtx-metapost.lua index 9bdd1260f..3b9ed6ff1 100644 --- a/scripts/context/lua/mtx-metapost.lua +++ b/scripts/context/lua/mtx-metapost.lua @@ -6,6 +6,30 @@ if not modules then modules = { } end modules ['mtx-metapost'] = { -- this was m license = "see context related readme files" } +local helpinfo = [[ +--rawmp raw metapost run +--metafun use metafun instead of plain +--latex force --tex=latex +--texexec force texexec usage (mkii) +--split split single result file into pages + +intended usage: + +mtxrun --script metapost yourfile.mp +mtxrun --script metapost --split yourfile.mp +mtxrun --script metapost yourfile.123 myfile.mps + +other usage resembles mptopdf.pl +]] + +local application = logs.application { + name = "mtx-metapost", + banner = "MetaPost to PDF processor 0.10", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.mptopdf = scripts.mptopdf or { } scripts.mptopdf.aux = scripts.mptopdf.aux or { } @@ -67,23 +91,23 @@ local function do_convert_all(filename) end end if #report > 0 then - logs.simple("number of converted files: %i", #report) - logs.simple("") + report("number of converted files: %i", #report) + report() for i=1,#report do local r = report[i] - logs.simple("%s => %s", r[1], r[2]) + report("%s => %s", r[1], r[2]) end else - logs.simple("no files are converted for '%s'",filename) + report("no files are converted for '%s'",filename) end end local function do_convert_one(filename) local resultname = do_convert(filename) if resultname then - logs.simple("%s => %s", filename,resultname) + report("%s => %s", filename,resultname) else - logs.simple("no result for '%s'",filename) + report("no result for '%s'",filename) end end @@ -121,7 +145,7 @@ function scripts.mptopdf.convertall() command, convert = format("context --result=%s --purge --once %s",file.nameonly(filename),tempname), false end end - logs.simple("running: %s\n",command) + report("running: %s",command) local done = os.execute(command) if done then if convert then @@ -131,41 +155,23 @@ function scripts.mptopdf.convertall() -- already pdf, maybe optionally split end else - logs.simple("error while processing mp file '%s'", filename) + report("error while processing mp file '%s'", filename) end else do_convert_one(filename) end end else - logs.simple("no files match to process") + report("no files match to process") end end -logs.extendbanner("MetaPost to PDF processor 0.10") - -messages.help = [[ ---rawmp raw metapost run ---metafun use metafun instead of plain ---latex force --tex=latex ---texexec force texexec usage (mkii) ---split split single result file into pages - -intended usage: - -mtxrun --script metapost yourfile.mp -mtxrun --script metapost --split yourfile.mp -mtxrun --script metapost yourfile.123 myfile.mps - -other usage resembles mptopdf.pl -]] - if environment.files[1] then scripts.mptopdf.convertall() else if not environment.arguments.help then - logs.simple("provide MP output file (or pattern)") - logs.simple("") + report("provide MP output file (or pattern)") + report() end - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-metatex.lua b/scripts/context/lua/mtx-metatex.lua index c5865b808..0b66d59ef 100644 --- a/scripts/context/lua/mtx-metatex.lua +++ b/scripts/context/lua/mtx-metatex.lua @@ -8,6 +8,19 @@ if not modules then modules = { } end modules ['mtx-metatex'] = { -- future versions will deal with specific variants of metatex +local helpinfo = [[ +--run process (one or more) files (default action) +--make create metatex format(s) +]] + +local application = logs.application { + name = "mtx-metatex", + banner = "MetaTeX Process Management 0.10", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.metatex = scripts.metatex or { } @@ -24,12 +37,12 @@ function scripts.metatex.run(ctxdata,filename) if formatfile and scriptfile then local command = string.format("luatex --fmt=%s --lua=%s %s", string.quote(formatfile), string.quote(scriptfile), string.quote(filename)) - logs.simple("running command: %s",command) + report("running command: %s",command) os.spawn(command) elseif formatname then - logs.simple("error, no format found with name: %s",formatname) + report("error, no format found with name: %s",formatname) else - logs.simple("error, no format found (provide formatname or interface)") + report("error, no format found (provide formatname or interface)") end end end @@ -38,13 +51,6 @@ function scripts.metatex.timed(action) statistics.timed(action) end -logs.extendbanner("MetaTeX Process Management 0.10") - -messages.help = [[ ---run process (one or more) files (default action) ---make create metatex format(s) -]] - if environment.argument("run") then scripts.metatex.timed(scripts.metatex.run) elseif environment.argument("make") then @@ -54,5 +60,5 @@ elseif environment.argument("help") then elseif environment.files[1] then scripts.metatex.timed(scripts.metatex.run) else - logs.help(messages.help,false) + application.help() end diff --git a/scripts/context/lua/mtx-modules.lua b/scripts/context/lua/mtx-modules.lua index 632aa0f68..8f3ab89cf 100644 --- a/scripts/context/lua/mtx-modules.lua +++ b/scripts/context/lua/mtx-modules.lua @@ -9,6 +9,20 @@ if not modules then modules = { } end modules ['mtx-modules'] = { scripts = scripts or { } scripts.modules = scripts.modules or { } +local helpinfo = [[ +--convert convert source files (tex, mkii, mkiv, mp) to 'ted' files +--process process source files (tex, mkii, mkiv, mp) to 'pdf' files +--prep use original name with suffix 'prep' appended +]] + +local application = logs.application { + name = "mtx-modules", + banner = "ConTeXt Module Documentation Generators 1.00", + helpinfo = helpinfo, +} + +local report = application.report + -- Documentation can be woven into a source file. This script can generates -- a file with the documentation and source fragments properly tagged. The -- documentation is included as comment: @@ -39,15 +53,15 @@ local find, format, sub, is_empty, strip = string.find, string.format, string.su local function source_to_ted(inpname,outname,filetype) local inp = io.open(inpname) if not inp then - logs.simple("unable to open '%s'",inpname) + report("unable to open '%s'",inpname) return end local out = io.open(outname,"w") if not out then - logs.simple("unable to open '%s'",outname) + report("unable to open '%s'",outname) return end - logs.simple("converting '%s' to '%s'",inpname,outname) + report("converting '%s' to '%s'",inpname,outname) local skiplevel, indocument, indefinition = 0, false, false out:write(format("\\startmodule[type=%s]\n",filetype or file.suffix(inpname))) for line in inp:lines() do @@ -143,25 +157,16 @@ function scripts.modules.process(runtex) end for i=1,#processed do local name = processed[i] - logs.simple("modules","processed: %s",name) + report("modules","processed: %s",name) end end -- context --ctx=m-modules.ctx xxx.mkiv - -logs.extendbanner("ConTeXt Module Documentation Generators 1.00") - -messages.help = [[ ---convert convert source files (tex, mkii, mkiv, mp) to 'ted' files ---process process source files (tex, mkii, mkiv, mp) to 'pdf' files ---prep use original name with suffix 'prep' appended -]] - if environment.argument("process") then scripts.modules.process(true) elseif environment.argument("convert") then scripts.modules.process(false) else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-package.lua b/scripts/context/lua/mtx-package.lua index 5269eb34c..294ef4f28 100644 --- a/scripts/context/lua/mtx-package.lua +++ b/scripts/context/lua/mtx-package.lua @@ -8,6 +8,18 @@ if not modules then modules = { } end modules ['mtx-package'] = { local format, gsub, gmatch = string.format, string.gsub, string.gmatch +local helpinfo = [[ +--merge merge 'loadmodule' into merge file +]] + +local application = logs.application { + name = "mtx-package", + banner = "Distribution Related Goodies 0.10", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } messages = messages or { } scripts.package = scripts.package or { } @@ -16,14 +28,14 @@ function scripts.package.merge_luatex_files(name,strip) local oldname = resolvers.findfile(name) or "" oldname = file.replacesuffix(oldname,"lua") if oldname == "" then - logs.simple("missing '%s'",name) + report("missing '%s'",name) else local newname = file.removesuffix(oldname) .. "-merged.lua" local data = io.loaddata(oldname) or "" if data == "" then - logs.simple("missing '%s'",newname) + report("missing '%s'",newname) else - logs.simple("loading '%s'",oldname) + report("loading '%s'",oldname) local collected = { } collected[#collected+1] = format("-- merged file : %s\n",newname) collected[#collected+1] = format("-- parent file : %s\n",oldname) @@ -33,9 +45,9 @@ function scripts.package.merge_luatex_files(name,strip) if file.basename(lib) ~= file.basename(newname) then local fullname = resolvers.findfile(lib) or "" if fullname == "" then - logs.simple("missing '%s'",lib) + report("missing '%s'",lib) else - logs.simple("fetching '%s'",fullname) + report("fetching '%s'",fullname) local data = io.loaddata(fullname) if strip then data = gsub(data,"%-%-%[%[ldx%-%-.-%-%-%ldx%]%]%-%-[\n\r]*","") @@ -49,20 +61,14 @@ function scripts.package.merge_luatex_files(name,strip) end end end - logs.simple("saving '%s'",newname) + report("saving '%s'",newname) io.savedata(newname,table.concat(collected)) end end end -logs.extendbanner("Distribution Related Goodies 0.10") - -messages.help = [[ ---merge merge 'loadmodule' into merge file -]] - if environment.argument("merge") then scripts.package.merge_luatex_files(environment.files[1] or "") else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-patterns.lua b/scripts/context/lua/mtx-patterns.lua index cb5717c58..bbf475133 100644 --- a/scripts/context/lua/mtx-patterns.lua +++ b/scripts/context/lua/mtx-patterns.lua @@ -11,10 +11,31 @@ local byte, char = utf.byte, utf.char local addsuffix = file.addsuffix local lpegmatch, validutf8 = lpeg.match, lpeg.patterns.validutf8 +local helpinfo = [[ +--convert generate context language files (mnemonic driven, if not given then all) +--check check pattern file (or those used by context when no file given) +--path source path where hyph-foo.tex files are stored +--destination destination path + +examples of usage: + +mtxrun --script pattern --check hyph-*.tex +mtxrun --script pattern --check --path=c:/data/develop/svn-hyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns +mtxrun --script pattern --convert --path=c:/data/develop/svn-hyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/tex --destination=e:/tmp/patterns +mtxrun --script pattern --convert --path=c:/data/develop/svn-hyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/txt --destination=e:/tmp/patterns +]] + +local application = logs.application { + name = "mtx-patterns", + banner = "ConTeXt Pattern File Management 0.20", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.patterns = scripts.patterns or { } - local permitted_characters = table.tohash { 0x0009, -- tab 0x0027, -- apostrofe @@ -138,11 +159,11 @@ function scripts.patterns.load(path,name,mnemonic,ignored) local splitpatternsold, splithyphenationsold = { }, { } local usedpatterncharacters, usedhyphenationcharacters = { }, { } if lfs.isfile(patfile) then - logs.simple("using txt files %s.[hyp|pat|lic].txt",name) + report("using txt files %s.[hyp|pat|lic].txt",name) comment, patterns, hyphenations = io.loaddata(licfile) or "", io.loaddata(patfile) or "", io.loaddata(hypfile) or "" hypfile, patfile, licfile = hypfile, patfile, licfile elseif lfs.isfile(texfile) then - logs.simple("using tex file %s.txt",name) + report("using tex file %s.txt",name) local data = io.loaddata(texfile) or "" if data ~= "" then data = gsub(data,"([\n\r])\\input ([^ \n\r]+)", function(previous,subname) @@ -150,7 +171,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) local subfull = file.join(file.dirname(texfile),subname) local subdata = io.loaddata(subfull) or "" if subdata == "" then - logs.simple("no subfile %s",subname) + report("no subfile %s",subname) end return previous .. subdata end) @@ -179,7 +200,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) local line = splitdata[i] if find(line,"%%") then splitdata[i] = gsub(line,"%%.*$","") - logs.simple("removing comment: %s",line) + report("removing comment: %s",line) end end end @@ -195,7 +216,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) local line = splitdata[i] if find(line,"\\") then splitdata[i] = "" - logs.simple("removing line with command: %s",line) + report("removing line with command: %s",line) end end end @@ -211,7 +232,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) local ok = lpegmatch(validutf8,line) if not ok then splitdata[i] = "" - logs.simple("removing line with invalid utf: %s",line) + report("removing line with invalid utf: %s",line) end end -- check for commands being used in comments @@ -235,7 +256,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) else local cdb = cd[b] if not cdb then - logs.simple("no entry in chardata for character %s (0x%04X)",char(b),b) + report("no entry in chardata for character %s (0x%04X)",char(b),b) else local ct = cd[b].category if ct == "lu" or ct == "ll" then @@ -243,7 +264,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) elseif ct == "nd" then -- number else - logs.simple("removing line with suspected utf character %s (0x%04X), category %s: %s",char(b),b,ct,line) + report("removing line with suspected utf character %s (0x%04X), category %s: %s",char(b),b,ct,line) splitdata[i] = "" break end @@ -256,7 +277,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) usedpatterncharacters = check(splitpatternsnew,byte(".")) usedhyphenationcharacters = check(splithyphenationsnew,byte("-")) for k, v in next, stripped do - logs.simple("entries that contain character %s (0x%04X) have been omitted",char(k),k) + report("entries that contain character %s (0x%04X) have been omitted",char(k),k) end end if okay then @@ -287,11 +308,11 @@ function scripts.patterns.load(path,name,mnemonic,ignored) for i=1,#what do local line = what[i] if p and lpegmatch(p,line) then - logs.simple("discarding conflicting pattern: %s",line) + report("discarding conflicting pattern: %s",line) else -- we can speed this up by testing for replacements in the string local l = lpegmatch(r,line) if l ~= line then - logs.simple("sanitizing pattern: %s -> %s (for old patterns)",line,l) + report("sanitizing pattern: %s -> %s (for old patterns)",line,l) end result[#result+1] = l end @@ -313,7 +334,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) -- discard elseif used[line] then -- discard - logs.simple("discarding duplicate pattern: %s",line) + repo("discarding duplicate pattern: %s",line) else used[line] = true collected[#collected+1] = line @@ -327,7 +348,7 @@ function scripts.patterns.load(path,name,mnemonic,ignored) splithyphenationsold = check(hyphenations,splithyphenationsold,hypfile) end if not okay then - logs.simple("no valid file %s.*",name) + report("no valid file %s.*",name) end return okay, splitpatternsnew, splithyphenationsnew, splitpatternsold, splithyphenationsold, comment, stripset, usedpatterncharacters, usedhyphenationcharacters end @@ -335,7 +356,7 @@ end function scripts.patterns.save(destination,mnemonic,name,patternsnew,hyphenationsnew,patternsold,hyphenationsold,comment,stripped,pused,hused,ignored) local nofpatternsnew, nofhyphenationsnew = #patternsnew, #hyphenationsnew local nofpatternsold, nofhyphenationsold = #patternsold, #hyphenationsold - logs.simple("language %s has %s old and %s new patterns and %s old and %s new exceptions",mnemonic,nofpatternsold,nofpatternsnew,nofhyphenationsold,nofhyphenationsnew) + report("language %s has %s old and %s new patterns and %s old and %s new exceptions",mnemonic,nofpatternsold,nofpatternsnew,nofhyphenationsold,nofhyphenationsnew) if mnemonic ~= "??" then local pu = concat(table.sortedkeys(pused), " ") local hu = concat(table.sortedkeys(hused), " ") @@ -347,7 +368,7 @@ function scripts.patterns.save(destination,mnemonic,name,patternsnew,hyphenation local topline = "% generated by mtxrun --script pattern --convert" local banner = "% for comment and copyright, see " .. rmefile - logs.simple("saving language data for %s",mnemonic) + report("saving language data for %s",mnemonic) if not comment or comment == "" then comment = "% no comment" end if not type(destination) == "string" then destination = "." end @@ -426,12 +447,12 @@ function scripts.patterns.check() for k, v in next, scripts.patterns.list do local mnemonic, name, ignored = v[1], v[2], v[4] if not only or only[mnemonic] then - logs.simple("checking language %s, file %s", mnemonic, name) + report("checking language %s, file %s", mnemonic, name) local okay = scripts.patterns.load(path,name,mnemonic,ignored) if not okay then - logs.simple("there are errors that need to be fixed") + report("there are errors that need to be fixed") end - logs.simple("") + report() end end end @@ -439,11 +460,11 @@ end function scripts.patterns.convert() local path = environment.argument("path") or "." if path == "" then - logs.simple("provide sourcepath using --path ") + report("provide sourcepath using --path ") else local destination = environment.argument("destination") or "." if path == destination then - logs.simple("source path and destination path should differ (use --path and/or --destination)") + resport("source path and destination path should differ (use --path and/or --destination)") else local files = environment.files local only = false @@ -453,36 +474,20 @@ function scripts.patterns.convert() for k, v in next, scripts.patterns.list do local mnemonic, name, ignored = v[1], v[2], v[4] if not only or only[mnemonic] then - logs.simple("converting language %s, file %s", mnemonic, name) + report("converting language %s, file %s", mnemonic, name) local okay, patternsnew, hyphenationsnew, patternsold, hyphenationsold, comment, stripped, pused, hused = scripts.patterns.load(path,name,mnemonic,ignored) if okay then scripts.patterns.save(destination,mnemonic,name,patternsnew,hyphenationsnew,patternsold,hyphenationsold,comment,stripped,pused,hused,ignored) else - logs.simple("convertion aborted due to error(s)") + report("convertion aborted due to error(s)") end - logs.simple("") + report() end end end end end -logs.extendbanner("ConTeXt Pattern File Management 0.20") - -messages.help = [[ ---convert generate context language files (mnemonic driven, if not given then all) ---check check pattern file (or those used by context when no file given) ---path source path where hyph-foo.tex files are stored ---destination destination path - -examples of usage: - -mtxrun --script pattern --check hyph-*.tex -mtxrun --script pattern --check --path=c:/data/develop/svn-hyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns -mtxrun --script pattern --convert --path=c:/data/develop/svn-hyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/tex --destination=e:/tmp/patterns -mtxrun --script pattern --convert --path=c:/data/develop/svn-hyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/txt --destination=e:/tmp/patterns -]] - if environment.argument("check") then scripts.patterns.prepare() scripts.patterns.check() @@ -490,7 +495,7 @@ elseif environment.argument("convert") then scripts.patterns.prepare() scripts.patterns.convert() else - logs.help(messages.help) + application.help() end -- mtxrun --script pattern --check hyph-*.tex diff --git a/scripts/context/lua/mtx-profile.lua b/scripts/context/lua/mtx-profile.lua index d78e3457a..74e1d1538 100644 --- a/scripts/context/lua/mtx-profile.lua +++ b/scripts/context/lua/mtx-profile.lua @@ -11,6 +11,19 @@ if not modules then modules = { } end modules ['mtx-profile'] = { local match, format, find = string.match, string.format, string.find +local helpinfo = [[ +--analyze analyze lua calls +--trace analyze tex calls +]] + +local application = logs.application { + name = "mtx-cache", + banner = "ConTeXt MkIV LuaTeX Profiler 1.00", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.profiler = scripts.profiler or { } @@ -54,7 +67,7 @@ function scripts.profiler.analyze(filename) f:close() print("") local loaded = { } - local sortedtable.sortedkeys(times) + sortedtable.sortedkeys(times) for i=1,#sorted do local filename = sorted[i] local functions = times[filename] @@ -154,17 +167,10 @@ end --~ scripts.profiler.analyze("t:/manuals/mk/mk-fonts-profile.lua") --~ scripts.profiler.analyze("t:/manuals/mk/mk-introduction-profile.lua") -logs.extendbanner("ConTeXt MkIV LuaTeX Profiler 1.00") - -messages.help = [[ ---analyze analyze lua calls ---trace analyze tex calls -]] - if environment.argument("analyze") then scripts.profiler.analyze(environment.files[1] or "luatex-profile.log") elseif environment.argument("trace") then scripts.profiler.analyze(environment.files[1] or "temp.log") else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-scite.lua b/scripts/context/lua/mtx-scite.lua index 068e4ecf5..0ac09b017 100644 --- a/scripts/context/lua/mtx-scite.lua +++ b/scripts/context/lua/mtx-scite.lua @@ -9,6 +9,19 @@ if not modules then modules = { } end modules ['mtx-scite'] = { -- todo: append to global properties else order of loading problem -- linux problem ... files are under root protection so we need --install +local helpinfo = [[ +--start [--verbose] start scite +--test report what will happen +]] + +local application = logs.application { + name = "mtx-scite", + banner = "Scite Startup Script 1.00", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.scite = scripts.scite or { } @@ -42,11 +55,11 @@ function scripts.scite.start(indeed) end end if not datapath or datapath == "" then - logs.simple("invalid datapath, maybe you need to regenerate the file database") + report("invalid datapath, maybe you need to regenerate the file database") return false end if not binpaths or #binpaths == 0 then - logs.simple("invalid binpath") + report("invalid binpath") return false end for i=1,#binpaths do @@ -57,7 +70,7 @@ function scripts.scite.start(indeed) end end if not fullname then - logs.simple("unable to locate %s",workname) + report("unable to locate %s",workname) return false end local properties = dir.glob(file.join(datapath,"*.properties")) @@ -65,7 +78,7 @@ function scripts.scite.start(indeed) local extrafont = resolvers.findfile(screenfont,"truetype font") or "" local pragmafound = dir.glob(file.join(datapath,"pragma.properties")) if userpath == "" then - logs.simple("unable to figure out userpath") + report("unable to figure out userpath") return false end local verbose = environment.argument("verbose") @@ -120,47 +133,40 @@ function scripts.scite.start(indeed) end end if not indeed or verbose then - logs.simple("used signal: %s", usedsignal) - logs.simple("data path : %s", datapath) - logs.simple("full name : %s", fullname) - logs.simple("user path : %s", userpath) - logs.simple("extra font : %s", extrafont) + report("used signal: %s", usedsignal) + report("data path : %s", datapath) + report("full name : %s", fullname) + report("user path : %s", userpath) + report("extra font : %s", extrafont) end if #logdata > 0 then - logs.simple("") + report("") for k=1,#logdata do local v = logdata[k] - logs.simple(v[1],v[2]) + report(v[1],v[2]) end end if indeed then if #tobecopied > 0 then - logs.simple("warning : copying updated files") + report("warning : copying updated files") for i=1,#tobecopied do local what = tobecopied[i] - logs.simple("copying : '%s' => '%s'",what[1],what[2]) + report("copying : '%s' => '%s'",what[1],what[2]) file.copy(what[1],what[2]) end end if propfiledone then - logs.simple("saving : '%s'",userpropfile) + report("saving : '%s'",userpropfile) io.savedata(fullpropfile,userpropdata) end os.launch(fullname) end end -logs.extendbanner("Scite Startup Script 1.00") - -messages.help = [[ ---start [--verbose] start scite ---test report what will happen -]] - if environment.argument("start") then scripts.scite.start(true) elseif environment.argument("test") then scripts.scite.start() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-server-ctx-fonttest.lua b/scripts/context/lua/mtx-server-ctx-fonttest.lua index d2f11ca95..9bea14561 100644 --- a/scripts/context/lua/mtx-server-ctx-fonttest.lua +++ b/scripts/context/lua/mtx-server-ctx-fonttest.lua @@ -15,6 +15,8 @@ dofile(resolvers.findfile("font-mis.lua","tex")) local format, gsub, concat, match, find = string.format, string.gsub, table.concat, string.match, string.find +local report = logs.new("ctx-fonttest") + local sample_line = "This is a sample line!" local tempname = "mtx-server-ctx-fonttest-temp" local temppath = caches.setfirstwritablefile("temp","mtx-server-ctx-fonttest") @@ -150,20 +152,20 @@ local cache = { } local function showfeatures(f) if f then - logs.simple("processing font '%s'",f) + report("processing font '%s'",f) local features = cache[f] if features == nil then features = fonts.get_features(resolvers.findfile(f)) if not features then - logs.simple("building cache for '%s'",f) + report("building cache for '%s'",f) io.savedata(file.join(temppath,file.addsuffix(tempname,"tex")),format(process_templates.cache,f,f)) os.execute(format("mtxrun --path=%s --script context --once --batchmode %s",temppath,tempname)) features = fonts.get_features(f) end cache[f] = features or false - logs.simple("caching info of '%s'",f) + report("caching info of '%s'",f) else - logs.simple("using cached info of '%s'",f) + report("using cached info of '%s'",f) end if features then local scr, lan, fea, rev = { }, { }, { }, { } @@ -294,7 +296,7 @@ local function get_specification(name) end local function edit_font(currentfont,detail,tempname) - logs.simple("entering edit mode for '%s'",currentfont) + report("entering edit mode for '%s'",currentfont) local specification = get_specification(currentfont) if specification then local htmldata = showfeatures(specification.filename) @@ -374,7 +376,7 @@ local function process_font(currentfont,detail) -- maybe just fontname end local sample = string.strip(detail.sampletext or "") if sample == "" then sample = sample_line end - logs.simple("sample text: %s",sample) + report("sample text: %s",sample) io.savedata(file.join(temppath,file.addsuffix(tempname,"tex")),format(variant,concat(features,","),currentfont,sample)) os.execute(format("mtxrun --path=%s --script context --once --batchmode %s",temppath,tempname)) return edit_font(currentfont,detail,tempname) @@ -497,7 +499,7 @@ local function loadbase() if storage == "" then storage = { } else - logs.simple("loading '%s'",datafile) + report("loading '%s'",datafile) storage = loadstring(storage) storage = (storage and storage()) or { } end @@ -527,14 +529,14 @@ end local function savebase(storage,name) local datafile = file.join(basepath,basename) - logs.simple("saving '%s' in '%s'",name or "data",datafile) + report("saving '%s' in '%s'",name or "data",datafile) io.savedata(datafile,table.serialize(storage,true)) end local function deletestored(detail,currentfont,name) local storage = loadbase() if storage and name and storage[name] then - logs.simple("deleting '%s' from base",name) + report("deleting '%s' from base",name) storage[name] = nil savebase(storage) end @@ -610,7 +612,7 @@ end function extras.reload() local command = "mtxrun --script font --reload" - logs.simple("run command: %s",command) + report("run command: %s",command) os.execute(command) return do_extras() end @@ -679,7 +681,7 @@ function doit(configuration,filename,hashed) variables.javascripts = "" variables.javascriptinit = "" - logs.simple("action: %s",action or "no action") + report("action: %s",action or "no action") local result @@ -722,7 +724,7 @@ function doit(configuration,filename,hashed) result = { content = lmx.convert('context-fonttest.lmx',false,variables) } - logs.simple("time spent on page: %0.03f seconds",os.clock()-start) + report("time spent on page: %0.03f seconds",os.clock()-start) return result diff --git a/scripts/context/lua/mtx-server-ctx-help.lua b/scripts/context/lua/mtx-server-ctx-help.lua index 5ee0c7d43..eb07a244b 100644 --- a/scripts/context/lua/mtx-server-ctx-help.lua +++ b/scripts/context/lua/mtx-server-ctx-help.lua @@ -17,6 +17,8 @@ dofile(resolvers.findfile("trac-lmx.lua","tex")) local format = string.format local concat = table.concat +local report = logs.new("ctx-help") + -- -- -- make this a module: cont-xx.lua document = document or { } @@ -591,7 +593,7 @@ local function doit(configuration,filename,hashed) lastmode = tonumber(detail.mode or lastmode) or 1 if lastinterface then - logs.simple("checking interface: %s",lastinterface) + report("checking interface: %s",lastinterface) document.setups.load(format("cont-%s.xml",lastinterface)) end @@ -657,7 +659,7 @@ local function doit(configuration,filename,hashed) local content = lmx.convert('context-help.lmx',false,variables) - logs.simple("time spent on page: %0.03f seconds",os.clock()-start) + report("time spent on page: %0.03f seconds",os.clock()-start) return { content = content } end diff --git a/scripts/context/lua/mtx-server.lua b/scripts/context/lua/mtx-server.lua index 4fe0a6ac8..4547877b5 100644 --- a/scripts/context/lua/mtx-server.lua +++ b/scripts/context/lua/mtx-server.lua @@ -6,6 +6,23 @@ if not modules then modules = { } end modules ['mtx-server'] = { license = "see context related readme files" } +local helpinfo = [[ +--start start server +--port port to listen to +--root server root +--scripts scripts sub path +--index index file +--auto start on own path +]] + +local application = logs.application { + name = "mtx-server", + banner = "Simple Webserver For Helpers 0.10", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.webserver = scripts.webserver or { } @@ -127,7 +144,7 @@ local handlers = { } local function errormessage(client,configuration,n) local data = format("<head><title>%s %s</title></head><html><h2>%s %s</h2></html>",n,messages[n],n,messages[n]) - logs.simple("handling error %s: %s",n,messages[n]) + report("handling error %s: %s",n,messages[n]) handlers.generic(client,configuration,data,nil,true) end @@ -136,7 +153,7 @@ local validpaths, registered = { }, { } function scripts.webserver.registerpath(name) if not registered[name] then local cleanname = string.gsub(name,"%.%.","deleted-parent") - logs.simple("registering path '%s'",cleanname) + report("registering path '%s'",cleanname) validpaths[#validpaths+1] = cleanname registered[name] = true end @@ -145,7 +162,7 @@ end function handlers.generic(client,configuration,data,suffix,iscontent) if not iscontent then local name = data - logs.simple("requested file '%s'",name) + report("requested file '%s'",name) local fullname = file.join(configuration.root,name) data = io.loaddata(fullname) or "" if data == "" then @@ -153,12 +170,12 @@ function handlers.generic(client,configuration,data,suffix,iscontent) local fullname = file.join(validpaths[n],name) data = io.loaddata(fullname) or "" if data ~= "" then - logs.simple("sending generic file '%s'",fullname) + report("sending generic file '%s'",fullname) break end end else - logs.simple("sending generic file '%s'",fullname) + report("sending generic file '%s'",fullname) end end if data and data ~= "" then @@ -192,18 +209,18 @@ function handlers.lua(client,configuration,filename,suffix,iscontent,hashed) -- -- todo: split url in components, see l-url; rather trivial local result, keep = loaded[filename], false if result then - logs.simple("reusing script: %s",filename) + report("reusing script: %s",filename) else - logs.simple("locating script: %s",filename) + report("locating script: %s",filename) if lfs.isfile(filename) then - logs.simple("loading script: %s",filename) + report("loading script: %s",filename) result = loadfile(filename) - logs.simple("return type: %s",type(result)) + report("return type: %s",type(result)) if result and type(result) == "function" then -- result() should return a table { [type=,] [length=,] content= }, function or string result, keep = result() if keep then - logs.simple("saving script: %s",type(result)) + report("saving script: %s",type(result)) loaded[filename] = result end end @@ -277,11 +294,11 @@ function scripts.webserver.run(configuration) configuration.scripts = dir.expandname(file.join(configuration.root or ".",configuration.scripts or ".")) end -- so far for checks - logs.simple("running at port: %s",configuration.port) - logs.simple("document root: %s",configuration.root or resolvers.ownpath) - logs.simple("main index file: %s",configuration.index) - logs.simple("scripts subpath: %s",configuration.scripts) - logs.simple("context services: http://localhost:%s/mtx-server-ctx-startup.lua",configuration.port) + report("running at port: %s",configuration.port) + report("document root: %s",configuration.root or resolvers.ownpath) + report("main index file: %s",configuration.index) + report("scripts subpath: %s",configuration.scripts) + report("context services: http://localhost:%s/mtx-server-ctx-startup.lua",configuration.port) local server = assert(socket.bind("*", configuration.port)) --~ local reading = { server } while true do -- no multiple clients @@ -295,7 +312,7 @@ function scripts.webserver.run(configuration) errormessage(client,configuration,404) else local from = client:getpeername() - logs.simple("request from: %s",tostring(from)) + report("request from: %s",tostring(from)) local fullurl = request:match("GET (.+) HTTP/.*$") -- todo: more clever fullurl = socket.url.unescape(fullurl) local hashed = url.hashed(fullurl) @@ -304,18 +321,18 @@ function scripts.webserver.run(configuration) --~ table.print(hashed) if filename then filename = socket.url.unescape(filename) - logs.simple("requested action: %s",filename) + report("requested action: %s",filename) if filename:find("%.%.") then filename = nil -- invalid path end if filename == nil or filename == "" or filename == "/" then filename = configuration.index - logs.simple("invalid filename, forcing: %s",filename) + report("invalid filename, forcing: %s",filename) end local suffix = file.extname(filename) local action = handlers[suffix] or handlers.generic if action then - logs.simple("performing action: %s",filename) + report("performing action: %s",filename) action(client,configuration,filename,suffix,false,hashed) -- filename and no content else errormessage(client,configuration,404) @@ -325,21 +342,10 @@ function scripts.webserver.run(configuration) end end client:close() - logs.simple("time spent with client: %0.03f seconds",os.clock()-start) + report("time spent with client: %0.03f seconds",os.clock()-start) end end -logs.extendbanner("Simple Webserver For Helpers 0.10") - -messages.help = [[ ---start start server ---port port to listen to ---root server root ---scripts scripts sub path ---index index file ---auto start on own path -]] - if environment.argument("auto") then local path = resolvers.findfile("mtx-server.lua") or "." scripts.webserver.run { @@ -355,7 +361,7 @@ elseif environment.argument("start") then scripts = environment.argument("scripts"), } else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-texworks.lua b/scripts/context/lua/mtx-texworks.lua index 38a162c0e..33e56df46 100644 --- a/scripts/context/lua/mtx-texworks.lua +++ b/scripts/context/lua/mtx-texworks.lua @@ -6,6 +6,19 @@ if not modules then modules = { } end modules ['mtx-texworks'] = { license = "see context related readme files" } +local helpinfo = [[ +--start [--verbose] start texworks +--test report what will happen +]] + +local application = logs.application { + name = "mtx-texworks", + banner = "TeXworks Startup Script 1.00", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.texworks = scripts.texworks or { } @@ -49,11 +62,11 @@ function scripts.texworks.start(indeed) end end if datapath == "" then - logs.simple("invalid datapath, maybe you need to regenerate the file database") + report("invalid datapath, maybe you need to regenerate the file database") return false end if not binpaths or #binpaths == 0 then - logs.simple("invalid binpath") + report("invalid binpath") return false end for i=1,#binpaths do @@ -64,7 +77,7 @@ function scripts.texworks.start(indeed) end end if not fullname then - logs.simple("unable to locate %s",workname) + report("unable to locate %s",workname) return false end for i=1,#texworkspaths do @@ -73,27 +86,20 @@ function scripts.texworks.start(indeed) os.setenv("TW_INIPATH",datapath) os.setenv("TW_LIBPATH",datapath) if not indeed or environment.argument("verbose") then - logs.simple("used signal: %s", usedsignal) - logs.simple("data path : %s", datapath) - logs.simple("full name : %s", fullname) - logs.simple("set paths : TW_INIPATH TW_LIBPATH") + report("used signal: %s", usedsignal) + report("data path : %s", datapath) + report("full name : %s", fullname) + report("set paths : TW_INIPATH TW_LIBPATH") end if indeed then os.launch(fullname) end end -logs.extendbanner("TeXworks Startup Script 1.00") - -messages.help = [[ ---start [--verbose] start texworks ---test report what will happen -]] - if environment.argument("start") then scripts.texworks.start(true) elseif environment.argument("test") then scripts.texworks.start() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-timing.lua b/scripts/context/lua/mtx-timing.lua index ee658f461..03100e991 100644 --- a/scripts/context/lua/mtx-timing.lua +++ b/scripts/context/lua/mtx-timing.lua @@ -8,6 +8,20 @@ if not modules then modules = { } end modules ['mtx-timing'] = { local format, gsub, concat = string.format, string.gsub, table.concat +local helpinfo = [[ +--xhtml make xhtml file +--launch launch after conversion +--remove remove after launching +]] + +local application = logs.application { + name = "mtx-timing", + banner = "ConTeXt Timing Tools 0.10", + helpinfo = helpinfo, +} + +local report = application.report + dofile(resolvers.findfile("trac-tim.lua","tex")) dofile(resolvers.findfile("trac-lmx.lua","tex")) @@ -57,6 +71,8 @@ local directrun = true local what = { "parameters", "nodes" } +plugins = plugins or { } -- brrr, will become moduledata as well + function plugins.progress.make_svg(filename,other) local metadata, menudata, c = { }, { }, 0 metadata[#metadata+1] = 'outputformat := "svg" ;' @@ -76,7 +92,7 @@ function plugins.progress.make_svg(filename,other) if directrun then dofile(resolvers.findfile("mlib-run.lua","tex")) commands = commands or { } - commands.writestatus = logs.report + commands.writestatus = report local result = metapost.directrun("metafun","timing data","svg",true,metadata) return menudata, result else @@ -167,9 +183,9 @@ scripts.timings = scripts.timings or { } function scripts.timings.xhtml(filename) if filename == "" then - logs.simple("provide filename") + report("provide filename") elseif not plugins.progress.valid_file(filename) then - logs.simple("first run context again with the --timing option") + report("first run context again with the --timing option") else local basename = file.removesuffix(filename) local launch = environment.argument("launch") @@ -178,16 +194,8 @@ function scripts.timings.xhtml(filename) end end -logs.extendbanner("ConTeXt Timing Tools 0.10",true) - -messages.help = [[ ---xhtml make xhtml file ---launch launch after conversion ---remove remove after launching -]] - if environment.argument("xhtml") then scripts.timings.xhtml(environment.files[1] or "") else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-tools.lua b/scripts/context/lua/mtx-tools.lua index 92c13886a..905b3aa85 100644 --- a/scripts/context/lua/mtx-tools.lua +++ b/scripts/context/lua/mtx-tools.lua @@ -8,6 +8,33 @@ if not modules then modules = { } end modules ['mtx-tools'] = { local find, format, sub, rep, gsub, lower = string.find, string.format, string.sub, string.rep, string.gsub, string.lower +local helpinfo = [[ +--disarmutfbomb remove utf bomb if present + --force remove indeed + +--dirtoxml glob directory into xml + --pattern glob pattern (default: *) + --url url attribute (no processing) + --root the root of the globbed path (default: .) + --output output filename (console by default) + --recurse recurse into subdirecories + --stripname take pathpart of given pattern + --longname set name attributes to full path name + +--downcase + --pattern glob pattern (default: *) + --recurse recurse into subdirecories + --force downcase indeed +]] + +local application = logs.application { + name = "mtx-tools", + banner = "Some File Related Goodies 1.01", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.tools = scripts.tools or { } @@ -23,24 +50,24 @@ function scripts.tools.disarmutfbomb() if not data then -- just skip elseif find(data,bomb_1) then - logs.simple("file '%s' has a 2 character utf bomb",name) + report("file '%s' has a 2 character utf bomb",name) if force then io.savedata(name,(gsub(data,bomb_1,""))) end done = true elseif find(data,bomb_2) then - logs.simple("file '%s' has a 3 character utf bomb",name) + report("file '%s' has a 3 character utf bomb",name) if force then io.savedata(name,(gsub(data,bomb_2,""))) end done = true else - -- logs.simple("file '%s' has no utf bomb",name) + -- report("file '%s' has no utf bomb",name) end end end if done and not force then - logs.simple("use --force to do a real disarming") + report("use --force to do a real disarming") end end @@ -63,12 +90,12 @@ function scripts.tools.downcase() end) if n > 0 then if force then - logs.simple("%s files renamed",n) + report("%s files renamed",n) else - logs.simple("use --force to do a real rename (%s files involved)",n) + report("use --force to do a real rename (%s files involved)",n) end else - logs.simple("nothing to do") + report("nothing to do") end end @@ -111,7 +138,7 @@ function scripts.tools.dirtoxml() end if not pattern or pattern == "" then - logs.report('provide --pattern=') + report('provide --pattern=') return end @@ -144,27 +171,6 @@ function scripts.tools.dirtoxml() end -logs.extendbanner("Some File Related Goodies 1.01") - -messages.help = [[ ---disarmutfbomb remove utf bomb if present - --force remove indeed - ---dirtoxml glob directory into xml - --pattern glob pattern (default: *) - --url url attribute (no processing) - --root the root of the globbed path (default: .) - --output output filename (console by default) - --recurse recurse into subdirecories - --stripname take pathpart of given pattern - --longname set name attributes to full path name - ---downcase - --pattern glob pattern (default: *) - --recurse recurse into subdirecories - --force downcase indeed -]] - if environment.argument("disarmutfbomb") then scripts.tools.disarmutfbomb() elseif environment.argument("dirtoxml") then @@ -172,5 +178,5 @@ elseif environment.argument("dirtoxml") then elseif environment.argument("downcase") then scripts.tools.downcase() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtx-unzip.lua b/scripts/context/lua/mtx-unzip.lua index 85a4b9e7b..645863426 100644 --- a/scripts/context/lua/mtx-unzip.lua +++ b/scripts/context/lua/mtx-unzip.lua @@ -10,21 +10,23 @@ if not modules then modules = { } end modules ['mtx-unzip'] = { local format = string.format -logs.extendbanner("Simple Unzipper 0.10") - -messages.help = [[ +local helpinfo = [[ --list list files in archive --junk flatten unzipped directory structure --extract extract files ]] +local application = logs.application { + name = "mtx-unzip", + banner = "Simple Unzipper 0.10", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.unzipper = scripts.unzipper or { } -function scripts.unzipper.help() - logs.help(messages.help) -end - function scripts.unzipper.opened() local filename = environment.files[1] if filename and filename ~= "" then @@ -34,7 +36,7 @@ function scripts.unzipper.opened() return zipfile end end - logs.report("unzip", "no zip file: " .. filename) + report("no zip file: %s",filename) return false end @@ -104,11 +106,11 @@ function scripts.unzipper.extract() end if environment.arguments["h"] or environment.arguments["help"] then - scripts.unzipper.help() + application.help() elseif environment.arguments["l"] or environment.arguments["list"] then scripts.unzipper.list(zipfile) elseif environment.files[1] then -- implicit --extract scripts.unzipper.extract(zipfile) else - scripts.unzipper.help() + application.help() end diff --git a/scripts/context/lua/mtx-update.lua b/scripts/context/lua/mtx-update.lua index 708565910..750c74886 100644 --- a/scripts/context/lua/mtx-update.lua +++ b/scripts/context/lua/mtx-update.lua @@ -11,6 +11,32 @@ if not modules then modules = { } end modules ['mtx-update'] = { -- Together with Arthur Reutenauer she made sure that it worked well on all -- platforms that matter. +local helpinfo = [[ +--platform=string platform (windows, linux, linux-64, osx-intel, osx-ppc, linux-ppc) +--server=string repository url (rsync://contextgarden.net) +--module=string repository url (minimals) +--repository=string specify version (current, experimental) +--context=string specify version (current, latest, beta, yyyy.mm.dd) +--rsync=string rsync binary (rsync) +--texroot=string installation directory (not guessed for the moment) +--engine=string tex engine (luatex, pdftex, xetex) +--extras=string extra modules (can be list or 'all') +--goodies=string extra binaries (like scite and texworks) +--force instead of a dryrun, do the real thing +--update update minimal tree +--make also make formats and generate file databases +--keep don't delete unused or obsolete files +--state update tree using saved state +]] + +local application = logs.application { + name = "mtx-update", + banner = "ConTeXt Minimals Updater 0.22", + helpinfo = helpinfo, +} + +local report = application.report + local format, concat, gmatch, gsub = string.format, table.concat, string.gmatch, string.gsub scripts = scripts or { } @@ -159,10 +185,10 @@ function scripts.update.run(str) -- (texlua sets luatex as the engine, we need to reset that or to fix texexec :) os.setenv("engine",nil) if environment.argument("force") then - logs.report("run", str) + report("run, %s",str) os.execute(str) else - logs.report("dry run", str) + report("dry run, %s",str) end end @@ -176,7 +202,7 @@ end function scripts.update.synchronize() - logs.report("update","start") + report("update, start") local texroot = scripts.update.fullpath(states.get("paths.root")) local engines = states.get('engines') or { } @@ -350,7 +376,7 @@ function scripts.update.synchronize() deleteflags = states.get("rsync.flags.delete") end command = format("%s %s %s %s %s'%s' '%s'", bin, normalflags, deleteflags, dryrunflags, url, archives, destination) - --logs.report("mtx update", format("running command: %s",command)) + -- report("running command: %s",command) if not fetched[command] then scripts.update.run(command,true) fetched[command] = command @@ -370,7 +396,7 @@ function scripts.update.synchronize() else command = format("%s -tgo --chmod=a+x %s/texmf-context/scripts/context/lua/%s.lua %s/texmf-%s/bin/%s", bin, texroot, script, texroot, platform, script) end - logs.report("mtx update", format("updating %s for %s: %s", script, platform, command)) + report("updating %s for %s: %s", script, platform, command) scripts.update.run(command) end end @@ -382,10 +408,10 @@ function scripts.update.synchronize() end else - logs.report("mtx update", format("no valid texroot: %s",texroot)) + report("no valid texroot: %s",texroot) end if not force then - logs.report("update", "use --force to really update files") + report("use --force to really update files") end resolvers.load_tree(texroot) -- else we operate in the wrong tree @@ -395,7 +421,7 @@ function scripts.update.synchronize() -- update filename database for luatex scripts.update.run(format('mtxrun --tree="%s" --generate',texroot)) - logs.report("update","done") + report("update, done") end function table.fromhash(t) @@ -409,7 +435,7 @@ end -- make the ConTeXt formats function scripts.update.make() - logs.report("make","start") + report("make, start") local force = environment.argument("force") local texroot = scripts.update.fullpath(states.get("paths.root")) @@ -451,33 +477,13 @@ function scripts.update.make() scripts.update.run(format('mtxrun --tree="%s" --script texexec --make --all %s',texroot,formatlist)) end if not force then - logs.report("make", "use --force to really make formats") + report("make, use --force to really make formats") end scripts.update.run(format('mtxrun --tree="%s" --direct mktexlsr',texroot)) scripts.update.run(format('mtxrun --tree="%s" --generate',texroot)) - logs.report("make","done") + report("make, done") end -logs.extendbanner("ConTeXt Minimals Updater 0.21") - -messages.help = [[ ---platform=string platform (windows, linux, linux-64, osx-intel, osx-ppc, linux-ppc) ---server=string repository url (rsync://contextgarden.net) ---module=string repository url (minimals) ---repository=string specify version (current, experimental) ---context=string specify version (current, latest, beta, yyyy.mm.dd) ---rsync=string rsync binary (rsync) ---texroot=string installation directory (not guessed for the moment) ---engine=string tex engine (luatex, pdftex, xetex) ---extras=string extra modules (can be list or 'all') ---goodies=string extra binaries (like scite and texworks) ---force instead of a dryrun, do the real thing ---update update minimal tree ---make also make formats and generate file databases ---keep don't delete unused or obsolete files ---state update tree using saved state -]] - scripts.savestate = true if scripts.savestate then @@ -544,7 +550,8 @@ if scripts.savestate then states.set("goodies." .. r, true) end - logs.report("state","loaded") + report("state, loaded") + report() end @@ -562,7 +569,7 @@ if environment.argument("update") then elseif environment.argument("make") then scripts.update.make() else - logs.help(messages.help) + application.help() end if scripts.savestate then @@ -570,6 +577,6 @@ if scripts.savestate then states.set("info.runtime",tonumber(statistics.elapsedtime(states))) if environment.argument("force") then states.save() - logs.report("state","saved") + report("state","saved") end end diff --git a/scripts/context/lua/mtx-watch.lua b/scripts/context/lua/mtx-watch.lua index 617d73f90..5bd0ad5f4 100644 --- a/scripts/context/lua/mtx-watch.lua +++ b/scripts/context/lua/mtx-watch.lua @@ -6,6 +6,25 @@ if not modules then modules = { } end modules ['mtx-watch'] = { license = "see context related readme files" } +local helpinfo = [[ +--logpath optional path for log files +--watch watch given path [--delay] +--pipe use pipe instead of execute +--delay delay between sweeps +--automachine replace /machine/ in path /<servername>/ +--collect condense log files +--cleanup=delay remove files in given path [--force] +--showlog show log data +]] + +local application = logs.application { + name = "mtx-watch", + banner = "ConTeXt Request Watchdog 1.00", + helpinfo = helpinfo, +} + +local report = application.report + scripts = scripts or { } scripts.watch = scripts.watch or { } @@ -92,7 +111,7 @@ function scripts.watch.watch() end end for i=1,#paths do - logs.report("watch", "watching path ".. paths[i]) + report("watching path %s",paths[i]) end local function process() local done = false @@ -107,7 +126,7 @@ function scripts.watch.watch() local ok, joblog = pcall(dofile,name) if ok and joblog then if joblog.status == "processing" then - logs.report("watch",format("aborted job, %s added to queue",name)) + report("aborted job, %s added to queue",name) joblog.status = "queued" io.savedata(name, table.serialize(joblog,true)) elseif joblog.status == "queued" then @@ -124,7 +143,7 @@ function scripts.watch.watch() joblog.status = "processing" joblog.runtime = clock() io.savedata(name, table.serialize(joblog,true)) - logs.report("watch",format("running: %s", command)) + report("running: %s", command) local newpath = file.dirname(name) io.flush() local result = "" @@ -141,7 +160,7 @@ function scripts.watch.watch() scripts.watch.save_exa_modes(joblog,ctmname) if pipe then result = os.resultof(command) else result = os.spawn(command) end end - logs.report("watch",format("return value: %s", result)) + report("return value: %s", result) done = true local path, base = replacements.outputpath, file.basename(replacements.filename) joblog.runtime = clock() - joblog.runtime @@ -162,7 +181,7 @@ function scripts.watch.watch() if logpath and logpath ~= "" then local name = file.join(logpath,os.uuid() .. ".lua") io.savedata(name, table.serialize(joblog,true)) - logs.report("watch", "saving joblog in " .. name) + report("saving joblog in %s",name) end end end @@ -175,7 +194,7 @@ function scripts.watch.watch() --~ if not done then --~ n = n + 1 --~ if n >= 10 then ---~ logs.report("watch", format("run time: %i seconds, memory usage: %0.3g MB", difftime(time(),start), (status.luastate_bytes/1024)/1000)) +--~ report("run time: %i seconds, memory usage: %0.3g MB", difftime(time(),start), (status.luastate_bytes/1024)/1000) --~ n = 0 --~ end --~ os.sleep(delay) @@ -187,7 +206,7 @@ function scripts.watch.watch() if not done then n = n + 1 if n >= 10 then - logs.report("watch", format("run time: %i seconds, memory usage: %0.3g MB", difftime(time(),start), (status.luastate_bytes/1024)/1000)) + report("run time: %i seconds, memory usage: %0.3g MB", difftime(time(),start), (status.luastate_bytes/1024)/1000) n = 0 end local ttime = 0 @@ -222,7 +241,7 @@ function scripts.watch.watch() local filetime = lfs.attributes(name,"modification") local delta = difftime(currenttime,filetime) if delta > cleanupdelay then - -- logs.report("watch",format("cleaning up '%s'",name)) + -- report("cleaning up '%s'",name) os.remove(name) end end @@ -248,7 +267,7 @@ function scripts.watch.watch() end end else - logs.report("watch", "no paths to watch") + report("no paths to watch") end end @@ -282,7 +301,7 @@ function scripts.watch.save_logs(collection,path) -- play safe local check = dofile(filename) for k,v in next, check do if not collection[k] then - logs.error("watch", "error in saving file") + report("error in saving file") os.remove(filename) return false end @@ -326,7 +345,7 @@ function scripts.watch.show_logs(path) -- removes duplicates local v = sorted[k] local c = collection[v] local f, s, r, n = c.filename or "?", c.status or "?", c.runtime or 0, c.size or 0 - logs.report("watch", format("%s %s %3i %8i %s",string.padd(f,max," "),string.padd(s,10," "),r,n,v)) + report("%s %s %3i %8i %s",string.padd(f,max," "),string.padd(s,10," "),r,n,v) end end @@ -335,11 +354,11 @@ function scripts.watch.cleanup_stale_files() -- removes duplicates local delay = tonumber(environment.argument("cleanup")) local force = environment.argument("force") if not path or path == "." then - logs.report("watch","provide qualified path") + report("provide qualified path") elseif not delay then - logs.report("watch","missing --cleanup=delay") + report("missing --cleanup=delay") else - logs.report("watch","dryrun, use --force for real cleanup") + report("dryrun, use --force for real cleanup") local files = dir.glob(file.join(path,"*")) local rtime = time() for i=1,#files do @@ -347,7 +366,7 @@ function scripts.watch.cleanup_stale_files() -- removes duplicates local mtime = lfs.attributes(name,"modification") local delta = difftime(rtime,mtime) if delta > delay then - logs.report("watch",format("cleaning up '%s'",name)) + report("cleaning up '%s'",name) if force then os.remove(name) end @@ -356,19 +375,6 @@ function scripts.watch.cleanup_stale_files() -- removes duplicates end end -logs.extendbanner("ConTeXt Request Watchdog 1.00") - -messages.help = [[ ---logpath optional path for log files ---watch watch given path [--delay] ---pipe use pipe instead of execute ---delay delay between sweeps ---automachine replace /machine/ in path /<servername>/ ---collect condense log files ---cleanup=delay remove files in given path [--force] ---showlog show log data -]] - if environment.argument("watch") then scripts.watch.watch() elseif environment.argument("collect") then @@ -378,5 +384,5 @@ elseif environment.argument("cleanup") then elseif environment.argument("showlog") then scripts.watch.show_logs() else - logs.help(messages.help) + application.help() end diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 31d7d9b0f..afc472d1c 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -8,7 +8,6 @@ if not modules then modules = { } end modules ['mtxrun'] = { license = "see context related readme files" } - -- one can make a stub: -- -- #!/bin/sh @@ -132,11 +131,7 @@ local simple_escapes = { } function string.escapedpattern(str,simple) - if simple then - return (gsub(str,".",simple_escapes)) - else - return (gsub(str,".",patterns_escapes)) - end + return (gsub(str,".",simple and simple_escapes or patterns_escapes)) end function string.topattern(str,lowercase,strict) @@ -556,11 +551,7 @@ local p = Cs((S("-.+*%()[]") / patterns_escapes + anything)^0) local s = Cs((S("-.+*%()[]") / simple_escapes + anything)^0) function string.escapedpattern(str,simple) - if simple then - return match(s,str) - else - return match(p,str) - end + return match(simple and s or p,str) end -- utf extensies @@ -3826,7 +3817,7 @@ local type, next = type, next utilities = utilities or {} utilities.merger = utilities.merger or { } -- maybe mergers -utilities.report = utilities.report or print +utilities.report = logs and logs.new("system") or print local merger = utilities.merger @@ -3964,7 +3955,7 @@ if not modules then modules = { } end modules ['util-lua'] = { utilities = utilities or {} utilities.lua = utilities.lua or { } -utilities.report = utilities.report or print +utilities.report = logs and logs.new("system") or print function utilities.lua.compile(luafile,lucfile,cleanup,strip) -- defaults: cleanup=false strip=true utilities.report("lua: compiling %s into %s",luafile,lucfile) @@ -4577,19 +4568,21 @@ function statistics.show(reporter) end end - -local template, nn = nil, 0 -- we only calcute it once +local template, report_statistics, nn = nil, nil, 0 -- we only calcute it once function statistics.showjobstat(tag,data,n) - if type(data) == "table" then + if not logs then + -- sorry + elseif type(data) == "table" then for i=1,#data do statistics.showjobstat(tag,data[i],n) end else if not template or n > nn then - template, n = format("%%-%ss: %%-%ss - %%s",15,n), nn + template, n = format("%%-%ss - %%s",n), nn + report_statistics = logs.new("mkiv lua stats") end - write_nl(format(template,"mkiv lua stats",tag,data)) + report_statistics(format(template,tag,data)) end end @@ -4610,7 +4603,7 @@ function statistics.runtime() end function statistics.timed(action,report) - report = report or logs.simple + report = report or logs.new("system") starttiming("run") action() stoptiming("run") @@ -4664,14 +4657,10 @@ local data = { } -- maybe just local local trace_initialize = false -- only for testing during development -local function report(a,b,...) - texio.write_nl(format("%-16s> %s",a,format(b,...))) -end - function setters.initialize(filename,name,values) -- filename only for diagnostics - local data = data[name] - if data then - data = data.data + local setter = data[name] + if setter then + local data = data.data if data then for key, value in next, values do -- key = gsub(key,"_",".") @@ -4680,7 +4669,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti if functions then if #functions > 0 and not functions.value then if trace_initialize then - report(name,"executing %s (%s -> %s)",key,filename,tostring(value)) + setter.report("executing %s (%s -> %s)",key,filename,tostring(value)) end for i=1,#functions do functions[i](value) @@ -4688,7 +4677,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti functions.value = value else if trace_initialize then - report(name,"skipping %s (%s -> %s)",key,filename,tostring(value)) + setter.report("skipping %s (%s -> %s)",key,filename,tostring(value)) end end else @@ -4697,7 +4686,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti functions = { default = value } data[key] = functions if trace_initialize then - report(name,"storing %s (%s -> %s)",key,filename,tostring(value)) + setter.report("storing %s (%s -> %s)",key,filename,tostring(value)) end end end @@ -4724,10 +4713,11 @@ local function set(t,what,newvalue) else value = is_boolean(value,value) end + w = escapedpattern(w,true) for name, functions in next, data do if done[name] then -- prevent recursion due to wildcards - elseif find(name,escapedpattern(w,true)) then + elseif find(name,w) then done[name] = true for i=1,#functions do functions[i](value) @@ -4769,7 +4759,7 @@ function setters.register(t,what,...) functions = { } data[what] = functions if trace_initialize then - report(t.name,"defining %s",what) + t.report("defining %s",what) end end local default = functions.default -- can be set from cnf file @@ -4777,7 +4767,7 @@ function setters.register(t,what,...) local typ = type(fnc) if typ == "string" then if trace_initialize then - report(t.name,"coupling %s to %s",what,fnc) + t.report("coupling %s to %s",what,fnc) end local s = fnc -- else wrong reference fnc = function(value) set(t,s,value) end @@ -4831,9 +4821,9 @@ function setters.list(t) -- pattern end function setters.show(t) - commands.writestatus("","") - local list = setters.list(t) local category = t.name + local list = setters.list(t) + t.report() for k=1,#list do local name = list[k] local functions = t.data[name] @@ -4841,10 +4831,10 @@ function setters.show(t) local value, default, modules = functions.value, functions.default, #functions value = value == nil and "unset" or tostring(value) default = default == nil and "unset" or tostring(default) - commands.writestatus(category,format("%-30s modules: %2i default: %5s value: %5s",name,modules,default,value)) + t.report("%-30s modules: %2i default: %6s value: %6s",name,modules,default,value) end end - commands.writestatus("","") + t.report() end -- we could have used a bit of oo and the trackers:enable syntax but @@ -4854,57 +4844,62 @@ end local enable, disable, register, list, show = setters.enable, setters.disable, setters.register, setters.list, setters.show +local function report(setter,...) + local report = logs and logs.report + if report then + report(setter.name,...) + else -- fallback, as this module is loaded before the logger + write_nl(format("%-16s: %s\n",setter.name,format(...))) + end +end + function setters.new(name) - local t -- we need to access it in t - t = { + local setter -- we need to access it in setter itself + setter = { data = allocate(), -- indexed, but also default and value fields name = name, - enable = function(...) enable (t,...) end, - disable = function(...) disable (t,...) end, - register = function(...) register(t,...) end, - list = function(...) list (t,...) end, - show = function(...) show (t,...) end, + report = function(...) report (setter,...) end, + enable = function(...) enable (setter,...) end, + disable = function(...) disable (setter,...) end, + register = function(...) register(setter,...) end, + list = function(...) list (setter,...) end, + show = function(...) show (setter,...) end, } - data[name] = t - return t + data[name] = setter + return setter end trackers = setters.new("trackers") directives = setters.new("directives") experiments = setters.new("experiments") -local t_enable, t_disable = trackers .enable, trackers .disable -local d_enable, d_disable = directives .enable, directives .disable -local e_enable, e_disable = experiments.enable, experiments.disable +local t_enable, t_disable, t_report = trackers .enable, trackers .disable, trackers .report +local d_enable, d_disable, d_report = directives .enable, directives .disable, directives .report +local e_enable, e_disable, e_report = experiments.enable, experiments.disable, experiments.report -- nice trick: we overload two of the directives related functions with variants that -- do tracing (itself using a tracker) .. proof of concept -local function report(...) -- messy .. chicken or egg - local p = (commands and commands.writestatus) or (logs and logs.report) - if p then p(...) end -end - local trace_directives = false local trace_directives = false trackers.register("system.directives", function(v) trace_directives = v end) local trace_experiments = false local trace_experiments = false trackers.register("system.experiments", function(v) trace_experiments = v end) function directives.enable(...) - report("directives","enabling: %s",concat({...}," ")) + d_report("enabling: %s",concat({...}," ")) d_enable(...) end function directives.disable(...) - report("directives","disabling: %s",concat({...}," ")) + d_report("disabling: %s",concat({...}," ")) d_disable(...) end function experiments.enable(...) - report("experiments","enabling: %s",concat({...}," ")) + e_report("enabling: %s",concat({...}," ")) e_enable(...) end function experiments.disable(...) - report("experiments","disabling: %s",concat({...}," ")) + e_report("disabling: %s",concat({...}," ")) e_disable(...) end @@ -4967,20 +4962,19 @@ if not modules then modules = { } end modules ['trac-log'] = { license = "see context related readme files" } --- xml logging is only usefull in normal runs, not in ini mode --- it looks like some tex logging (like filenames) is broken (no longer --- interceoted at the tex end so the xml variant is not that useable now) +-- todo: less categories, more subcategories (e.g. nodes) local write_nl, write = texio and texio.write_nl or print, texio and texio.write or io.write -local format, gmatch = string.format, string.gmatch +local format, gmatch, find = string.format, string.gmatch, string.find +local concat = table.concat +local escapedpattern = string.escapedpattern local texcount = tex and tex.count +local next, type = next, type --[[ldx-- -<p>This is a prelude to a more extensive logging module. For the sake -of parsing log files, in addition to the standard logging we will -provide an <l n='xml'/> structured file. Actually, any logging that -is hooked into callbacks will be \XML\ by default.</p> +<p>This is a prelude to a more extensive logging module. We no longer +provide <l n='xml'/> based logging a sparsing is relatively easy anyway.</p> --ldx]]-- logs = logs or { } @@ -4998,96 +4992,239 @@ webpage : http://www.pragma-ade.nl / http://tex.aanhet.net wiki : http://contextgarden.net ]] -local functions = { - 'report', 'status', 'start', 'stop', 'push', 'pop', 'line', 'direct', - 'start_run', 'stop_run', - 'start_page_number', 'stop_page_number', - 'report_output_pages', 'report_output_log', - 'report_tex_stat', 'report_job_stat', - 'show_open', 'show_close', 'show_load', - 'dummy', -} +-- local functions = { +-- 'report', 'status', 'start', 'stop', 'line', 'direct', +-- 'start_run', 'stop_run', +-- 'start_page_number', 'stop_page_number', +-- 'report_output_pages', 'report_output_log', +-- 'report_tex_stat', 'report_job_stat', +-- 'show_open', 'show_close', 'show_load', +-- 'dummy', +-- } -local method = "nop" +-- basic loggers -function logs.setmethod(newmethod) - method = newmethod - -- a direct copy might be faster but let's try this for a while - setmetatable(logs, { __index = logs[method] }) -end +local function ignore() end -function logs.getmethod() - return method -end +setmetatable(logs, { __index = function(t,k) t[k] = ignore ; return ignore end }) --- installer +-- local separator = (tex and (tex.jobname or tex.formatname)) and ">" or "|" -local data = { } +local report, subreport -function logs.new(category) - local logger = data[category] - if not logger then - logger = function(...) - logs.report(category,...) +if tex and tex.jobname or tex.formatname then + + report = function(a,b,c,...) + if c then + write_nl(format("%-15s > %s\n",a,format(b,c,...))) + elseif b then + write_nl(format("%-15s > %s\n",a,b)) + elseif a then + write_nl(format("%-15s >\n", a)) + else + write_nl("\n") end - data[category] = logger end - return logger -end + subreport = function(a,sub,b,c,...) + if c then + write_nl(format("%-15s > %s > %s\n",a,sub,format(b,c,...))) + elseif b then + write_nl(format("%-15s > %s > %s\n",a,sub,b)) + elseif a then + write_nl(format("%-15s > %s >\n", a,sub)) + else + write_nl("\n") + end + end --- nop logging (maybe use __call instead) - -local noplog = { } logs.nop = noplog setmetatable(logs, { __index = noplog }) +else -for i=1,#functions do - noplog[functions[i]] = function() end -end + report = function(a,b,c,...) + if c then + write_nl(format("%-15s | %s",a,format(b,c,...))) + elseif b then + write_nl(format("%-15s | %s",a,b)) + elseif a then + write_nl(format("%-15s |", a)) + else + write_nl("") + end + end --- tex logging + subreport = function(a,sub,b,c,...) + if c then + write_nl(format("%-15s | %s | %s",a,sub,format(b,c,...))) + elseif b then + write_nl(format("%-15s | %s | %s",a,sub,b)) + elseif a then + write_nl(format("%-15s | %s |", a,sub)) + else + write_nl("") + end + end -local texlog = { } logs.tex = texlog setmetatable(texlog, { __index = noplog }) +end -function texlog.report(a,b,c,...) +function logs.status(a,b,c,...) -- at the tex end if c then - write_nl(format("%-16s> %s\n",a,format(b,c,...))) + write_nl(format("%-15s : %s\n",a,format(b,c,...))) elseif b then - write_nl(format("%-16s> %s\n",a,b)) + write_nl(format("%-15s : %s\n",a,b)) -- b can have %'s + elseif a then + write_nl(format("%-15s :\n", a)) else - write_nl(format("%-16s>\n",a)) + write_nl("\n") end end -function texlog.status(a,b,c,...) - if c then - write_nl(format("%-16s: %s\n",a,format(b,c,...))) - elseif b then - write_nl(format("%-16s: %s\n",a,b)) -- b can have %'s - else - write_nl(format("%-16s:>\n",a)) +logs.report = report +logs.subreport = subreport + +-- installer + +-- todo: renew (un) locks when a new one is added and wildcard + +local data, states = { }, nil + +function logs.reporter(category,subcategory) + local logger = data[category] + if not logger then + local state = false + if states == true then + state = true + elseif type(states) == "table" then + for c, _ in next, states do + if find(category,c) then + state = true + break + end + end + end + logger = { + reporters = { }, + state = state, + } + data[category] = logger + end + local reporter = logger.reporters[subcategory or "default"] + if not reporter then + if subcategory then + reporter = function(...) + if not logger.state then + subreport(category,subcategory,...) + end + end + logger.reporters[subcategory] = reporter + else + local tag = category + reporter = function(...) + if not logger.state then + report(category,...) + end + end + logger.reporters.default = reporter + end end + return reporter end -function texlog.line(fmt,...) -- new - if fmt then - write_nl(format(fmt,...)) +logs.new = logs.reporter + +local function doset(category,value) + if category == true then + -- lock all + category, value = "*", true + elseif category == false then + -- unlock all + category, value = "*", false + elseif value == nil then + -- lock selective + value = true + end + if category == "*" then + states = value + for k, v in next, data do + v.state = value + end else - write_nl("") + states = utilities.parsers.settings_to_hash(category) + for c, _ in next, states do + if data[c] then + v.state = value + else + c = escapedpattern(c,true) + for k, v in next, data do + if find(k,c) then + v.state = value + end + end + end + end + end +end + +function logs.disable(category,value) + doset(category,value == nil and true or value) +end + +function logs.enable(category) + doset(category,false) +end + +function logs.categories() + return table.sortedkeys(data) +end + +function logs.show() + local n, c, s, max = 0, 0, 0, 0 + for category, v in table.sortedpairs(data) do + n = n + 1 + local state = v.state + local reporters = v.reporters + local nc = #category + if nc > c then + c = nc + end + for subcategory, _ in next, reporters do + local ns = #subcategory + if ns > c then + s = ns + end + local m = nc + ns + if m > max then + max = m + end + end + local subcategories = concat(table.sortedkeys(reporters),", ") + if state == true then + state = "disabled" + elseif state == false then + state = "enabled" + else + state = "unknown" + end + -- no new here + report("logging","category: '%s', subcategories: '%s', state: '%s'",category,subcategories,state) end + report("logging","categories: %s, max category: %s, max subcategory: %s, max combined: %s",n,c,s,max) end +directives.register("logs.blocked", function(v) + doset(v,true) +end) +-- tex specific loggers (might move elsewhere) +local report_pages = logs.reporter("pages") -- not needed but saves checking when we grep for it local real, user, sub -function texlog.start_page_number() +function logs.start_page_number() real, user, sub = texcount.realpageno, texcount.userpageno, texcount.subpageno end -local report_pages = logs.new("pages") -- not needed but saves checking when we grep for it - -function texlog.stop_page_number() +function logs.stop_page_number() if real > 0 then if user > 0 then if sub > 0 then @@ -5104,176 +5241,98 @@ function texlog.stop_page_number() io.flush() end -texlog.report_job_stat = statistics and statistics.showjobstat +logs.report_job_stat = statistics and statistics.showjobstat --- xml logging +local report_files = logs.reporter("files") -local xmllog = { } logs.xml = xmllog setmetatable(xmllog, { __index = noplog }) +local nesting = 0 +local verbose = false -function xmllog.report(category,fmt,s,...) -- new - if s then - write_nl(format("<r category='%s'>%s</r>",category,format(fmt,s,...))) - elseif fmt then - write_nl(format("<r category='%s'>%s</r>",category,fmt)) - else - write_nl(format("<r category='%s'/>",category)) +function logs.show_open(name) + if verbose then + nesting = nesting + 1 + report_files("level %s, opening %s",nesting,name) end end -function xmllog.status(category,fmt,s,...) - if s then - write_nl(format("<s category='%s'>%s</r>",category,format(fmt,s,...))) - elseif fmt then - write_nl(format("<s category='%s'>%s</r>",category,fmt)) - else - write_nl(format("<s category='%s'/>",category)) +function logs.show_close(name) + if verbose then + report_files("level %s, closing %s",nesting,name) + nesting = nesting - 1 end end -function xmllog.line(fmt,...) -- new - if fmt then - write_nl(format("<r>%s</r>",format(fmt,...))) - else - write_nl("<r/>") +function logs.show_load(name) + if verbose then + report_files("level %s, loading %s",nesting+1,name) end end -function xmllog.start() write_nl("<%s>" ) end -function xmllog.stop () write_nl("</%s>") end -function xmllog.push () write_nl("<!-- ") end -function xmllog.pop () write_nl(" -->" ) end - -function xmllog.start_run() - write_nl("<?xml version='1.0' standalone='yes'?>") - write_nl("<job>") -- xmlns='www.pragma-ade.com/luatex/schemas/context-job.rng' - write_nl("") -end - -function xmllog.stop_run() - write_nl("</job>") -end - -function xmllog.start_page_number() - write_nl(format("<p real='%s' page='%s' sub='%s'", texcount.realpageno, texcount.userpageno, texcount.subpageno)) -end - -function xmllog.stop_page_number() - write("/>") - write_nl("") -end +-- there may be scripts out there using this: -function xmllog.report_output_pages(p,b) - write_nl(format("<v k='pages' v='%s'/>", p)) - write_nl(format("<v k='bytes' v='%s'/>", b)) - write_nl("") -end - -function xmllog.report_output_log() - -- nothing -end +local simple = logs.reporter("comment") -function xmllog.report_tex_stat(k,v) - write_nl("log","<v k='"..k.."'>"..tostring(v).."</v>") -end - -local nesting = 0 - -function xmllog.show_open(name) - nesting = nesting + 1 - write_nl(format("<f l='%s' n='%s'>",nesting,name)) -end +logs.simple = simple +logs.simpleline = simple -function xmllog.show_close(name) - write("</f> ") - nesting = nesting - 1 -end - -function xmllog.show_load(name) - write_nl(format("<f l='%s' n='%s'/>",nesting+1,name)) -end - --- initialization - -if tex and (tex.jobname or tex.formatname) then - -- todo: this can be set in mtxrun ... or maybe we should just forget about this alternative format - if (os.getenv("mtx.directives.logmethod") or os.getenv("mtx_directives_logmethod")) == "xml" then - logs.setmethod('xml') - else - logs.setmethod('tex') - end -else - logs.setmethod('nop') -end +-- obsolete --- logging in runners -> these are actually the nop loggers +function logs.setprogram () end -- obsolete +function logs.extendbanner() end -- obsolete +function logs.reportlines () end -- obsolete +function logs.reportbanner() end -- obsolete +function logs.reportline () end -- obsolete +function logs.simplelines () end -- obsolete +function logs.help () end -- obsolete -local name, banner = 'report', 'context' +-- applications -function noplog.report(category,fmt,...) -- todo: fmt,s - if fmt then - write_nl(format("%s | %s: %s",name,category,format(fmt,...))) - elseif category then - write_nl(format("%s | %s",name,category)) - else - write_nl(format("%s |",name)) +local function reportlines(t,str) + if str then + for line in gmatch(str,"(.-)[\n\r]") do + t.report(line) + end end end -noplog.status = noplog.report -- just to be sure, never used - -function noplog.simple(fmt,...) -- todo: fmt,s - if fmt then - write_nl(format("%s | %s",name,format(fmt,...))) - else - write_nl(format("%s |",name)) +local function reportbanner(t) + local banner = t.banner + if banner then + t.report(banner) + t.report() end end -if utilities then - utilities.report = function(...) logs.simple(...) end -end - -function logs.setprogram(newname,newbanner) - name, banner = newname, newbanner -end - -function logs.extendbanner(newbanner) - banner = banner .. " | ".. newbanner -end - -function logs.reportlines(str) -- todo: <lines></lines> - for line in gmatch(str,"(.-)[\n\r]") do - logs.report(line) +local function reporthelp(t,...) + local helpinfo = t.helpinfo + if type(helpinfo) == "string" then + reportlines(t,helpinfo) + elseif type(helpinfo) == "table" then + local tags = { ... } + for i=1,#tags do + reportlines(t,t.helpinfo[tags[i]]) + if i < #tags then + t.report() + end + end end end -function logs.reportline() -- for scripts too - logs.report() -end - -function logs.simpleline() - logs.report() +local function reportinfo(t) + t.report() + reportlines(t,moreinfo) end -function logs.simplelines(str) -- todo: <lines></lines> - for line in gmatch(str,"(.-)[\n\r]") do - logs.simple(line) - end +function logs.application(t) + t.name = t.name or "unknown" + t.banner = t.banner + t.report = logs.reporter(t.name) + t.help = function(...) reportbanner(t) ; reporthelp(t,...) ; reportinfo(t) end + t.identify = function() reportbanner(t) end + return t end -function logs.reportbanner() -- for scripts too - logs.report(banner) -end - -function logs.help(message,option) - logs.reportbanner() - logs.reportline() - logs.reportlines(message) - if option ~= "nomoreinfo" then - logs.reportline() - logs.reportlines(moreinfo) - end -end +-- somewhat special -- logging to a file @@ -5281,7 +5340,7 @@ end function logs.system(whereto,process,jobname,category,...) local message = format("%s %s => %s => %s => %s\r",os.date("%d/%m/%y %H:%m:%S"),process,jobname,category,format(...)) for i=1,10 do - local f = io.open(whereto,"a") + local f = io.open(whereto,"a") -- we can consider keepint the file open if f then f:write(message) f:close() @@ -5292,30 +5351,24 @@ function logs.system(whereto,process,jobname,category,...) end end --- bonus - -function logs.fatal(where,...) - logs.report(where,"fatal error: %s, aborting now",format(...)) - os.exit() -end - +local report_system = logs.reporter("system","logs") function logs.obsolete(old,new) local o = loadstring("return " .. new)() if type(o) == "function" then return function(...) - logs.report("system","function %s is obsolete, use %s",old,new) + report_system("function %s is obsolete, use %s",old,new) loadstring(old .. "=" .. new .. " return ".. old)()(...) end elseif type(o) == "table" then local t, m = { }, { } m.__index = function(t,k) - logs.report("system","table %s is obsolete, use %s",old,new) + report_system("table %s is obsolete, use %s",old,new) m.__index, m.__newindex = o, o return o[k] end m.__newindex = function(t,k,v) - logs.report("system","table %s is obsolete, use %s",old,new) + report_system("table %s is obsolete, use %s",old,new) m.__index, m.__newindex = o, o o[k] = v end @@ -5327,6 +5380,10 @@ function logs.obsolete(old,new) end end +if utilities then + utilities.report = report_system +end + if tex and tex.error then function logs.texerrormessage(...) -- for the moment we put this function here tex.error(format(...), { }) @@ -5361,7 +5418,7 @@ local getmetatable, setmetatable, rawset, type = getmetatable, setmetatable, raw local trace_namespaces = false trackers.register("system.namespaces", function(v) trace_namespaces = v end) -local report_system = logs.new("system") +local report_system = logs.new("system","protection") namespaces = namespaces or { } local namespaces = namespaces @@ -5530,7 +5587,7 @@ if not modules then modules = { } end modules ['luat-env'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_lua = logs.new("resolvers","lua") local allocate, mark = utilities.storage.allocate, utilities.storage.mark @@ -5754,14 +5811,14 @@ function environment.luafilechunk(filename,silent) -- used for loading lua bytec if fullname and fullname ~= "" then local data = environment.loadedluacode(fullname) if trace_locating then - report_resolvers("loading file %s%s", fullname, not data and " failed" or "") + report_lua("loading file %s%s", fullname, not data and " failed" or "") elseif not silent then texio.write("<",data and "+ " or "- ",fullname,">") end return data else if trace_locating then - report_resolvers("unknown file %s", filename) + report_lua("unknown file %s", filename) end return nil end @@ -5781,7 +5838,7 @@ function environment.loadluafile(filename, version) local fullname = (lucname and environment.luafile(lucname)) or "" if fullname ~= "" then if trace_locating then - report_resolvers("loading %s", fullname) + report_lua("loading %s", fullname) end chunk = loadfile(fullname) -- this way we don't need a file exists check end @@ -5799,7 +5856,7 @@ function environment.loadluafile(filename, version) return true else if trace_locating then - report_resolvers("version mismatch for %s: lua=%s, luc=%s", filename, v, version) + report_lua("version mismatch for %s: lua=%s, luc=%s", filename, v, version) end environment.loadluafile(filename) end @@ -5810,12 +5867,12 @@ function environment.loadluafile(filename, version) fullname = (luaname and environment.luafile(luaname)) or "" if fullname ~= "" then if trace_locating then - report_resolvers("loading %s", fullname) + report_lua("loading %s", fullname) end chunk = loadfile(fullname) -- this way we don't need a file exists check if not chunk then if trace_locating then - report_resolvers("unknown file %s", filename) + report_lua("unknown file %s", filename) end else assert(chunk)() @@ -5844,7 +5901,7 @@ if not modules then modules = { } end modules ['lxml-tab'] = { local trace_entities = false trackers.register("xml.entities", function(v) trace_entities = v end) -local report_xml = logs.new("xml") +local report_xml = logs and logs.new("xml","core") or function(...) print(format(...)) end --[[ldx-- <p>The parser used here is inspired by the variant discussed in the lua book, but @@ -6518,7 +6575,7 @@ function xml.is_valid(root) return root and not root.error end -xml.errorhandler = (logs and logs.report) or (input and logs.report) or print +xml.errorhandler = report --[[ldx-- <p>We cannot load an <l n='lpeg'/> from a filehandle so we need to load @@ -7069,7 +7126,7 @@ local trace_lpath = false if trackers then trackers.register("xml.path", local trace_lparse = false if trackers then trackers.register("xml.parse", function(v) trace_lparse = v end) end local trace_lprofile = false if trackers then trackers.register("xml.profile", function(v) trace_lpath = v trace_lparse = v trace_lprofile = v end) end -local report_lpath = logs.new("lpath") +local report_lpath = logs.new("xml","lpath") --[[ldx-- <p>We've now arrived at an interesting part: accessing the tree using a subset @@ -7951,9 +8008,9 @@ local function traced_apply(list,parsed,nofparsed,order) if trace_lparse then lshow(parsed) end - report_lpath("collecting : %s",parsed.pattern) - report_lpath(" root tags : %s",tagstostring(list)) - report_lpath(" order : %s",order or "unset") + report_lpath("collecting: %s",parsed.pattern) + report_lpath("root tags : %s",tagstostring(list)) + report_lpath("order : %s",order or "unset") local collected = list for i=1,nofparsed do local pi = parsed[i] @@ -9224,7 +9281,7 @@ local trace_locating = false trackers.register("resolvers.locating", functi local trace_detail = false trackers.register("resolvers.details", function(v) trace_detail = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_initialization = logs.new("resolvers","initialization") local ostype, osname, ossetenv, osgetenv = os.type, os.name, os.setenv, os.getenv @@ -9245,7 +9302,7 @@ kpse = { original = kpse } setmetatable(kpse, { __index = function(kp,name) - report_resolvers("fatal error: kpse library is accessed (key: %s)",name) + report_initialization("fatal error: kpse library is accessed (key: %s)",name) os.exit() end } ) @@ -9329,13 +9386,13 @@ do if lfs.chdir(p) then local pp = lfs.currentdir() if trace_locating and p ~= pp then - report_resolvers("following symlink '%s' to '%s'",p,pp) + report_initialization("following symlink '%s' to '%s'",p,pp) end ownpath = pp lfs.chdir(olddir) else if trace_locating then - report_resolvers("unable to check path '%s'",p) + report_initialization("unable to check path '%s'",p) end ownpath = p end @@ -9346,9 +9403,9 @@ do end if not ownpath or ownpath == "" then ownpath = "." - report_resolvers("forcing fallback ownpath .") + report_initialization("forcing fallback ownpath .") elseif trace_locating then - report_resolvers("using ownpath '%s'",ownpath) + report_initialization("using ownpath '%s'",ownpath) end end @@ -9375,7 +9432,7 @@ do ossetenv('SELFAUTODIR', file.collapsepath(ownpath .. "/..")) ossetenv('SELFAUTOPARENT', file.collapsepath(ownpath .. "/../..")) else - report_resolvers("error: unable to locate ownpath") + report_initialization("error: unable to locate ownpath") os.exit() end @@ -9461,7 +9518,7 @@ local collapsepath = file.collapsepath local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_expansions = logs.new("resolvers","expansions") local resolvers = resolvers @@ -9524,7 +9581,7 @@ local replacer_1 = lpeg.replacer { { ",}", ",@}" }, { "{,", "{@," }, } local function splitpathexpr(str, newlist, validate) -- I couldn't resist lpegging it (nice exercise). if trace_expansions then - report_resolvers("expanding variable '%s'",str) + report_expansions("expanding variable '%s'",str) end local t, ok, done = newlist or { }, false, false local n = #t @@ -9550,7 +9607,7 @@ local function splitpathexpr(str, newlist, validate) -- I couldn't resist lpeggi end if trace_expansions then for k=1,#t do - report_resolvers("% 4i: %s",k,t[k]) + report_expansions("% 4i: %s",k,t[k]) end end return t @@ -9585,7 +9642,7 @@ function resolvers.cleanpath(str) homedir = lpegmatch(cleanup,environment.homedir or "") if homedir == string.char(127) or homedir == "" or not lfs.isdir(homedir) then if trace_expansions then - report_resolvers("no home dir set, ignoring dependent paths") + report_expansions("no home dir set, ignoring dependent paths") end function resolvers.cleanpath(str) if find(str,"~") then @@ -9655,9 +9712,9 @@ local function splitconfigurationpath(str) -- beware, this can be either a path end end if trace_expansions then - report_resolvers("splitting path specification '%s'",str) + report_expansions("splitting path specification '%s'",str) for k=1,noffound do - report_resolvers("% 4i: %s",k,found[k]) + report_expansions("% 4i: %s",k,found[k]) end end cache[str] = found @@ -9742,7 +9799,7 @@ end function resolvers.scanfiles(path,branch) if trace_locating then - report_resolvers("scanning path '%s', branch '%s'",path, branch or path) + report_expansions("scanning path '%s', branch '%s'",path, branch or path) end local realpath = resolvers.resolve(path) -- no shortcut local files, n, m, r = scan({ },realpath .. '/',"",0,0,0) @@ -9751,7 +9808,7 @@ function resolvers.scanfiles(path,branch) files.__directories__ = m files.__remappings__ = r if trace_locating then - report_resolvers("%s files found on %s directories with %s uppercase remappings",n,m,r) + report_expansions("%s files found on %s directories with %s uppercase remappings",n,m,r) end return files end @@ -10080,8 +10137,8 @@ local mkdirs, isdir = dir.mkdirs, lfs.isdir local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end) -local report_cache = logs.new("cache") -local report_resolvers = logs.new("resolvers") +local report_caches = logs.new("resolvers","caches") +local report_resolvers = logs.new("resolvers","caching") local resolvers = resolvers @@ -10141,7 +10198,7 @@ local function identify() if not caches.ask or io.ask(format("\nShould I create the cache path %s?",cachepath), "no", { "yes", "no" }) == "yes" then mkdirs(cachepath) if isdir(cachepath) and file.is_writable(cachepath) then - report_cache("created: %s",cachepath) + report_caches("created: %s",cachepath) writable = cachepath readables[#readables+1] = cachepath end @@ -10175,10 +10232,10 @@ local function identify() -- Some extra checking. If we have no writable or readable path then we simply -- quit. if not writable then - report_cache("fatal error: there is no valid writable cache path defined") + report_caches("fatal error: there is no valid writable cache path defined") os.exit() elseif #readables == 0 then - report_cache("fatal error: there is no valid readable cache path defined") + report_caches("fatal error: there is no valid readable cache path defined") os.exit() end -- why here @@ -10200,9 +10257,9 @@ local function identify() -- end if trace_cache then for i=1,#readables do - report_cache("using readable path '%s' (order %s)",readables[i],i) + report_caches("using readable path '%s' (order %s)",readables[i],i) end - report_cache("using writable path '%s'",writable) + report_caches("using writable path '%s'",writable) end identify = function() return writable, readables @@ -10237,7 +10294,7 @@ function caches.hashed(tree) tree = lower(tree) local hash = md5.hex(tree) if trace_cache or trace_locating then - report_cache("hashing tree %s, hash %s",tree,hash) + report_caches("hashing tree %s, hash %s",tree,hash) end return hash end @@ -10463,7 +10520,7 @@ trackers.register("resolvers.locating", function(v) trace_methods = v end) trackers.register("resolvers.methods", function(v) trace_methods = v end) -local report_resolvers = logs.new("resolvers") +local report_methods = logs.new("resolvers","methods") local allocate = utilities.storage.allocate @@ -10505,41 +10562,41 @@ local function methodhandler(what,first,...) -- filename can be nil or false local resolver = namespace and namespace[scheme] if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, scheme=%s, argument=%s",what,how,scheme,first) + report_methods("resolver: method=%s, how=%s, scheme=%s, argument=%s",what,how,scheme,first) end return resolver(specification,...) else resolver = namespace.default or namespace.file if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, default, argument=%s",what,how,first) + report_methods("resolver: method=%s, how=%s, default, argument=%s",what,how,first) end return resolver(specification,...) elseif trace_methods then - report_resolvers("resolver: method=%s, how=%s, no handler",what,how) + report_methods("resolver: method=%s, how=%s, no handler",what,how) end end elseif how == "tag" then local resolver = namespace and namespace[first] if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, tag=%s",what,how,first) + report_methods("resolver: method=%s, how=%s, tag=%s",what,how,first) end return resolver(...) else resolver = namespace.default or namespace.file if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, default",what,how) + report_methods("resolver: method=%s, how=%s, default",what,how) end return resolver(...) elseif trace_methods then - report_resolvers("resolver: method=%s, how=%s, unknown",what,how) + report_methods("resolver: method=%s, how=%s, unknown",what,how) end end end else - report_resolvers("resolver: method=%s, unknown",what) + report_methods("resolver: method=%s, unknown",what) end end @@ -10610,7 +10667,7 @@ local trace_locating = false trackers.register("resolvers.locating", functi local trace_detail = false trackers.register("resolvers.details", function(v) trace_detail = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_resolving = logs.new("resolvers","resolving") local resolvers = resolvers @@ -10712,7 +10769,7 @@ end function resolvers.newinstance() -- todo: all vars will become lowercase and alphanum only if trace_locating then - report_resolvers("creating instance") + report_resolving("creating instance") end local environment, variables, expansions, order = allocate(), allocate(), allocate(), allocate() @@ -10830,9 +10887,9 @@ local function reportcriticalvariables() for i=1,#resolvers.criticalvars do local k = resolvers.criticalvars[i] local v = resolvers.getenv(k) or "unknown" -- this one will not resolve ! - report_resolvers("variable '%s' set to '%s'",k,v) + report_resolving("variable '%s' set to '%s'",k,v) end - report_resolvers() + report_resolving() end reportcriticalvariables = function() end end @@ -10856,17 +10913,17 @@ local function identify_configuration_files() if lfs.isfile(realname) then specification[#specification+1] = filename if trace_locating then - report_resolvers("found configuration file '%s'",realname) + report_resolving("found configuration file '%s'",realname) end elseif trace_locating then - report_resolvers("unknown configuration file '%s'",realname) + report_resolving("unknown configuration file '%s'",realname) end end if trace_locating then - report_resolvers() + report_resolving() end elseif trace_locating then - report_resolvers("configuration files already identified") + report_resolving("configuration files already identified") end end @@ -10886,8 +10943,8 @@ local function load_configuration_files() data = data and data.content if data then if trace_locating then - report_resolvers("loading configuration file '%s'",filename) - report_resolvers() + report_resolving("loading configuration file '%s'",filename) + report_resolving() end local variables = data.variables or { } local warning = false @@ -10897,7 +10954,7 @@ local function load_configuration_files() initializesetter(filename,k,v) elseif variables[k] == nil then if trace_locating and not warning then - report_resolvers("variables like '%s' in configuration file '%s' should move to the 'variables' subtable", + report_resolving("variables like '%s' in configuration file '%s' should move to the 'variables' subtable", k,resolvers.resolve(filename)) warning = true end @@ -10910,7 +10967,7 @@ local function load_configuration_files() local cnfspec = variables["TEXMFCNF"] if cnfspec then if trace_locating then - report_resolvers("reloading configuration due to TEXMF redefinition") + report_resolving("reloading configuration due to TEXMF redefinition") end -- we push the value into the main environment (osenv) so -- that it takes precedence over the default one and therefore @@ -10929,13 +10986,13 @@ local function load_configuration_files() else if trace_locating then - report_resolvers("skipping configuration file '%s' (no content)",filename) + report_resolving("skipping configuration file '%s' (no content)",filename) end setups[pathname] = { } instance.loaderror = true end elseif trace_locating then - report_resolvers("skipping configuration file '%s' (no file)",filename) + report_resolving("skipping configuration file '%s' (no file)",filename) end instance.order[#instance.order+1] = instance.setups[pathname] if instance.loaderror then @@ -10943,7 +11000,7 @@ local function load_configuration_files() end end elseif trace_locating then - report_resolvers("warning: no lua configuration files found") + report_resolving("warning: no lua configuration files found") end end @@ -10979,19 +11036,19 @@ local function locate_file_databases() end if trace_locating then if runtime then - report_resolvers("locating list of '%s' (runtime)",path) + report_resolving("locating list of '%s' (runtime)",path) else - report_resolvers("locating list of '%s' (cached)",path) + report_resolving("locating list of '%s' (cached)",path) end end methodhandler('locators',stripped) end end if trace_locating then - report_resolvers() + report_resolving() end elseif trace_locating then - report_resolvers("no texmf paths are defined (using TEXMF)") + report_resolving("no texmf paths are defined (using TEXMF)") end end @@ -11002,7 +11059,7 @@ local function generate_file_databases() methodhandler('generators',hash.name) end if trace_locating then - report_resolvers() + report_resolving() end end @@ -11014,11 +11071,11 @@ local function save_file_databases() -- will become cachers local content = instance.files[cachename] caches.collapsecontent(content) if trace_locating then - report_resolvers("saving tree '%s'",cachename) + report_resolving("saving tree '%s'",cachename) end caches.savecontent(cachename,"files",content) elseif trace_locating then - report_resolvers("not saving runtime tree '%s'",cachename) + report_resolving("not saving runtime tree '%s'",cachename) end end end @@ -11043,7 +11100,7 @@ function resolvers.appendhash(type,name,cache) -- safeguard ... tricky as it's actually a bug when seen twice if not instance.hashed[name] then if trace_locating then - report_resolvers("hash '%s' appended",name) + report_resolving("hash '%s' appended",name) end insert(instance.hashes, { type = type, name = name, cache = cache } ) instance.hashed[name] = cache @@ -11054,7 +11111,7 @@ function resolvers.prependhash(type,name,cache) -- safeguard ... tricky as it's actually a bug when seen twice if not instance.hashed[name] then if trace_locating then - report_resolvers("hash '%s' prepended",name) + report_resolving("hash '%s' prepended",name) end insert(instance.hashes, 1, { type = type, name = name, cache = cache } ) instance.hashed[name] = cache @@ -11287,9 +11344,9 @@ function isreadable(name) local readable = lfs.isfile(name) -- not file.is_readable(name) asit can be a dir if trace_detail then if readable then - report_resolvers("file '%s' is readable",name) + report_resolving("file '%s' is readable",name) else - report_resolvers("file '%s' is not readable", name) + report_resolving("file '%s' is not readable", name) end end return readable @@ -11303,7 +11360,7 @@ local function collect_files(names) for k=1,#names do local fname = names[k] if trace_detail then - report_resolvers("checking name '%s'",fname) + report_resolving("checking name '%s'",fname) end local bname = filebasename(fname) local dname = filedirname(fname) @@ -11319,7 +11376,7 @@ local function collect_files(names) local files = blobpath and instance.files[blobpath] if files then if trace_detail then - report_resolvers("deep checking '%s' (%s)",blobpath,bname) + report_resolving("deep checking '%s' (%s)",blobpath,bname) end local blobfile = files[bname] if not blobfile then @@ -11339,7 +11396,7 @@ local function collect_files(names) local search = filejoin(blobroot,blobfile,bname) local result = methodhandler('concatinators',hash.type,blobroot,blobfile,bname) if trace_detail then - report_resolvers("match: kind '%s', search '%s', result '%s'",kind,search,result) + report_resolving("match: kind '%s', search '%s', result '%s'",kind,search,result) end noffiles = noffiles + 1 filelist[noffiles] = { kind, search, result } @@ -11353,7 +11410,7 @@ local function collect_files(names) local search = filejoin(blobroot,vv,bname) local result = methodhandler('concatinators',hash.type,blobroot,vv,bname) if trace_detail then - report_resolvers("match: kind '%s', search '%s', result '%s'",kind,search,result) + report_resolving("match: kind '%s', search '%s', result '%s'",kind,search,result) end noffiles = noffiles + 1 filelist[noffiles] = { kind, search, result } @@ -11362,7 +11419,7 @@ local function collect_files(names) end end elseif trace_locating then - report_resolvers("no match in '%s' (%s)",blobpath,bname) + report_resolving("no match in '%s' (%s)",blobpath,bname) end end end @@ -11403,7 +11460,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : stamp = filename .. "--" .. askedformat if instance.found[stamp] then if trace_locating then - report_resolvers("remembered file '%s'",filename) + report_resolving("remembered file '%s'",filename) end resolvers.registerintrees(filename) -- for tracing used files return instance.found[stamp] @@ -11412,7 +11469,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : if not dangerous[askedformat] then if isreadable(filename) then if trace_detail then - report_resolvers("file '%s' found directly",filename) + report_resolving("file '%s' found directly",filename) end if stamp then instance.found[stamp] = { filename } @@ -11422,13 +11479,13 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end if find(filename,'%*') then if trace_locating then - report_resolvers("checking wildcard '%s'", filename) + report_resolving("checking wildcard '%s'", filename) end result = resolvers.findwildcardfiles(filename) -- we can use th elocal elseif file.is_qualified_path(filename) then if isreadable(filename) then if trace_locating then - report_resolvers("qualified name '%s'", filename) + report_resolving("qualified name '%s'", filename) end result = { filename } else @@ -11441,7 +11498,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : forcedname = filename .. "." .. s if isreadable(forcedname) then if trace_locating then - report_resolvers("no suffix, forcing format filetype '%s'", s) + report_resolving("no suffix, forcing format filetype '%s'", s) end result, ok = { forcedname }, true break @@ -11494,7 +11551,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : -- end end if not ok and trace_locating then - report_resolvers("qualified name '%s'", filename) + report_resolving("qualified name '%s'", filename) end end else @@ -11513,13 +11570,13 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : wantedfiles[#wantedfiles+1] = forcedname filetype = resolvers.formatofsuffix(forcedname) if trace_locating then - report_resolvers("forcing filetype '%s'",filetype) + report_resolving("forcing filetype '%s'",filetype) end end else filetype = resolvers.formatofsuffix(filename) if trace_locating then - report_resolvers("using suffix based filetype '%s'",filetype) + report_resolving("using suffix based filetype '%s'",filetype) end end else @@ -11533,7 +11590,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end filetype = askedformat if trace_locating then - report_resolvers("using given filetype '%s'",filetype) + report_resolving("using given filetype '%s'",filetype) end end local typespec = resolvers.variableofformat(filetype) @@ -11541,7 +11598,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : if not pathlist or #pathlist == 0 then -- no pathlist, access check only / todo == wildcard if trace_detail then - report_resolvers("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) + report_resolving("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) end for k=1,#wantedfiles do local fname = wantedfiles[k] @@ -11569,7 +11626,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end end if trace_detail then - report_resolvers("checking filename '%s'",filename) + report_resolving("checking filename '%s'",filename) end for k=1,#pathlist do local path = pathlist[k] @@ -11581,7 +11638,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : -- compare list entries with permitted pattern -- /xx /xx// local expression = makepathexpression(pathname) if trace_detail then - report_resolvers("using pattern '%s' for path '%s'",expression,pathname) + report_resolving("using pattern '%s' for path '%s'",expression,pathname) end for k=1,#filelist do local fl = filelist[k] @@ -11593,16 +11650,16 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : done = true if allresults then if trace_detail then - report_resolvers("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) + report_resolving("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) end else if trace_detail then - report_resolvers("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) + report_resolving("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) end break end elseif trace_detail then - report_resolvers("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) + report_resolving("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) end end end @@ -11619,7 +11676,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : local fname = filejoin(ppname,w) if isreadable(fname) then if trace_detail then - report_resolvers("found '%s' by scanning",fname) + report_resolving("found '%s' by scanning",fname) end result[#result+1] = fname done = true @@ -11824,7 +11881,7 @@ end local function report(str) if trace_locating then - report_resolvers(str) -- has already verbose + report_resolving(str) -- has already verbose else print(str) end @@ -12219,7 +12276,7 @@ if not modules then modules = { } end modules ['data-fil'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_files = logs.new("resolvers","files") local resolvers = resolvers @@ -12233,11 +12290,11 @@ function locators.file(specification) local realname = resolvers.resolve(name) -- no shortcut if realname and realname ~= '' and lfs.isdir(realname) then if trace_locating then - report_resolvers("file locator '%s' found as '%s'",name,realname) + report_files("file locator '%s' found as '%s'",name,realname) end resolvers.appendhash('file',name,true) -- cache elseif trace_locating then - report_resolvers("file locator '%s' not found",name) + report_files("file locator '%s' not found",name) end end @@ -12260,12 +12317,12 @@ function finders.file(specification,filetype) local foundname = resolvers.findfile(filename,filetype) if foundname and foundname ~= "" then if trace_locating then - report_resolvers("file finder: '%s' found",filename) + report_files("file finder: '%s' found",filename) end return foundname else if trace_locating then - report_resolvers("file finder: %s' not found",filename) + report_files("file finder: %s' not found",filename) end return finders.notfound() end @@ -12286,13 +12343,13 @@ function openers.file(specification,filetype) local f = io.open(filename,"r") if f then if trace_locating then - report_resolvers("file opener, '%s' opened",filename) + report_files("file opener, '%s' opened",filename) end return openers.helpers.textopener("file",filename,f) end end if trace_locating then - report_resolvers("file opener, '%s' not found",filename) + report_files("file opener, '%s' not found",filename) end return openers.notfound() end @@ -12304,7 +12361,7 @@ function loaders.file(specification,filetype) if f then logs.show_load(filename) if trace_locating then - report_resolvers("file loader, '%s' loaded",filename) + report_files("file loader, '%s' loaded",filename) end local s = f:read("*a") if checkgarbage then @@ -12317,7 +12374,7 @@ function loaders.file(specification,filetype) end end if trace_locating then - report_resolvers("file loader, '%s' not found",filename) + report_files("file loader, '%s' not found",filename) end return loaders.notfound() end @@ -12358,11 +12415,11 @@ containers = containers or { } local containers = containers containers.usecache = true -local report_cache = logs.new("cache") +local report_containers = logs.new("resolvers","containers") local function report(container,tag,name) if trace_cache or trace_containers then - report_cache("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') + report_containers("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') end end @@ -12480,7 +12537,7 @@ local format, lower, gsub, find = string.format, string.lower, string.gsub, stri local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_mounts = logs.new("resolvers","mounts") local resolvers = resolvers @@ -12505,7 +12562,7 @@ function resolvers.automount(usecache) -- skip elseif find(line,"^zip://") then if trace_locating then - report_resolvers("mounting %s",line) + report_mounts("mounting %s",line) end table.insert(resolvers.automounted,line) resolvers.usezipfile(line) @@ -12585,7 +12642,7 @@ local format, find, match = string.format, string.find, string.match local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_zip = logs.new("resolvers","zip") -- zip:///oeps.zip?name=bla/bla.tex -- zip:///oeps.zip?tree=tex/texmf-local @@ -12638,9 +12695,9 @@ function resolvers.locators.zip(specification) local zipfile = archive and archive ~= "" and zip.openarchive(archive) -- tricky, could be in to be initialized tree if trace_locating then if zipfile then - report_resolvers("zip locator, archive '%s' found",archive) + report_zip("locator, archive '%s' found",archive) else - report_resolvers("zip locator, archive '%s' not found",archive) + report_zip("locator, archive '%s' not found",archive) end end end @@ -12648,7 +12705,7 @@ end function resolvers.hashers.zip(specification) local archive = specification.filename if trace_locating then - report_resolvers("loading zip file '%s'",archive) + report_zip("loading file '%s'",archive) end resolvers.usezipfile(specification.original) end @@ -12671,25 +12728,25 @@ function resolvers.finders.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip finder, archive '%s' found",archive) + report_zip("finder, archive '%s' found",archive) end local dfile = zfile:open(queryname) if dfile then dfile = zfile:close() if trace_locating then - report_resolvers("zip finder, file '%s' found",queryname) + report_zip("finder, file '%s' found",queryname) end return specification.original elseif trace_locating then - report_resolvers("zip finder, file '%s' not found",queryname) + report_zip("finder, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip finder, unknown archive '%s'",archive) + report_zip("finder, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip finder, '%s' not found",original) + report_zip("finder, '%s' not found",original) end return resolvers.finders.notfound() end @@ -12704,24 +12761,24 @@ function resolvers.openers.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip opener, archive '%s' opened",archive) + report_zip("opener, archive '%s' opened",archive) end local dfile = zfile:open(queryname) if dfile then if trace_locating then - report_resolvers("zip opener, file '%s' found",queryname) + report_zip("opener, file '%s' found",queryname) end return resolvers.openers.helpers.textopener('zip',original,dfile) elseif trace_locating then - report_resolvers("zip opener, file '%s' not found",queryname) + report_zip("opener, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip opener, unknown archive '%s'",archive) + report_zip("opener, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip opener, '%s' not found",original) + report_zip("opener, '%s' not found",original) end return resolvers.openers.notfound() end @@ -12736,27 +12793,27 @@ function resolvers.loaders.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip loader, archive '%s' opened",archive) + report_zip("loader, archive '%s' opened",archive) end local dfile = zfile:open(queryname) if dfile then logs.show_load(original) if trace_locating then - report_resolvers("zip loader, file '%s' loaded",original) + report_zip("loader, file '%s' loaded",original) end local s = dfile:read("*all") dfile:close() return true, s, #s elseif trace_locating then - report_resolvers("zip loader, file '%s' not found",queryname) + report_zip("loader, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip loader, unknown archive '%s'",archive) + report_zip("loader, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip loader, '%s' not found",original) + report_zip("loader, '%s' not found",original) end return resolvers.openers.notfound() end @@ -12772,7 +12829,7 @@ function resolvers.usezipfile(archive) if z then local tree = url.query(specification.query).tree or "" if trace_locating then - report_resolvers("zip registering, registering archive '%s'",archive) + report_zip("registering, registering archive '%s'",archive) end statistics.starttiming(resolvers.instance) resolvers.prependhash('zip',archive) @@ -12781,10 +12838,10 @@ function resolvers.usezipfile(archive) instance.files[archive] = resolvers.registerzipfile(z,tree) statistics.stoptiming(resolvers.instance) elseif trace_locating then - report_resolvers("zip registering, unknown archive '%s'",archive) + report_zip("registering, unknown archive '%s'",archive) end elseif trace_locating then - report_resolvers("zip registering, '%s' not found",archive) + report_zip("registering, '%s' not found",archive) end end @@ -12796,7 +12853,7 @@ function resolvers.registerzipfile(z,tree) filter = format("^%s/(.+)/(.-)$",tree) end if trace_locating then - report_resolvers("zip registering, using filter '%s'",filter) + report_zip("registering, using filter '%s'",filter) end local register, n = resolvers.registerfile, 0 for i in z:files() do @@ -12813,7 +12870,7 @@ function resolvers.registerzipfile(z,tree) n = n + 1 end end - report_resolvers("zip registering, %s files registered",n) + report_zip("registering, %s files registered",n) return files end @@ -12836,7 +12893,7 @@ local find, gsub, format = string.find, string.gsub, string.format local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_trees = logs.new("resolvers","trees") local resolvers = resolvers @@ -12874,18 +12931,18 @@ function resolvers.locators.tree(specification) local name = specification.filename if name ~= '' and lfs.isdir(name) then if trace_locating then - report_resolvers("tree locator '%s' found",name) + report_trees("locator '%s' found",name) end resolvers.appendhash('tree',name,false) -- don't cache elseif trace_locating then - report_resolvers("tree locator '%s' not found",name) + report_trees("locator '%s' not found",name) end end function resolvers.hashers.tree(specification) local name = specification.filename if trace_locating then - report_resolvers("analysing tree '%s'",name) + report_trees("analysing '%s'",name) end resolvers.methodhandler("hashers",name) end @@ -12981,7 +13038,7 @@ if not modules then modules = { } end modules ['data-lua'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_libraries = logs.new("resolvers","libraries") local gsub, insert = string.gsub, table.insert local unpack = unpack or table.unpack @@ -13013,7 +13070,7 @@ local function thepath(...) local t = { ... } t[#t+1] = "?.lua" local path = file.join(unpack(t)) if trace_locating then - report_resolvers("! appending '%s' to 'package.path'",path) + report_libraries("! appending '%s' to 'package.path'",path) end return path end @@ -13035,11 +13092,11 @@ local function loaded(libpaths,name,simple) local libpath = libpaths[i] local resolved = gsub(libpath,"%?",simple) if trace_locating then -- more detail - report_resolvers("! checking for '%s' on 'package.path': '%s' => '%s'",simple,libpath,resolved) + report_libraries("! checking for '%s' on 'package.path': '%s' => '%s'",simple,libpath,resolved) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'package.path': '%s'",name,resolved) + report_libraries("! lib '%s' located via 'package.path': '%s'",name,resolved) end return loadfile(resolved) end @@ -13048,17 +13105,17 @@ end package.loaders[2] = function(name) -- was [#package.loaders+1] if trace_locating then -- mode detail - report_resolvers("! locating '%s'",name) + report_libraries("! locating '%s'",name) end for i=1,#libformats do local format = libformats[i] local resolved = resolvers.findfile(name,format) or "" if trace_locating then -- mode detail - report_resolvers("! checking for '%s' using 'libformat path': '%s'",name,format) + report_libraries("! checking for '%s' using 'libformat path': '%s'",name,format) end if resolved ~= "" then if trace_locating then - report_resolvers("! lib '%s' located via environment: '%s'",name,resolved) + report_libraries("! lib '%s' located via environment: '%s'",name,resolved) end return loadfile(resolved) end @@ -13081,11 +13138,11 @@ package.loaders[2] = function(name) -- was [#package.loaders+1] local path = paths[p] local resolved = file.join(path,libname) if trace_locating then -- mode detail - report_resolvers("! checking for '%s' using 'clibformat path': '%s'",libname,path) + report_libraries("! checking for '%s' using 'clibformat path': '%s'",libname,path) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'clibformat': '%s'",libname,resolved) + report_libraries("! lib '%s' located via 'clibformat': '%s'",libname,resolved) end return package.loadlib(resolved,name) end @@ -13095,28 +13152,28 @@ package.loaders[2] = function(name) -- was [#package.loaders+1] local libpath = clibpaths[i] local resolved = gsub(libpath,"?",simple) if trace_locating then -- more detail - report_resolvers("! checking for '%s' on 'package.cpath': '%s'",simple,libpath) + report_libraries("! checking for '%s' on 'package.cpath': '%s'",simple,libpath) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'package.cpath': '%s'",name,resolved) + report_libraries("! lib '%s' located via 'package.cpath': '%s'",name,resolved) end return package.loadlib(resolved,name) end end -- just in case the distribution is messed up if trace_loading then -- more detail - report_resolvers("! checking for '%s' using 'luatexlibs': '%s'",name) + report_libraries("! checking for '%s' using 'luatexlibs': '%s'",name) end local resolved = resolvers.findfile(file.basename(name),'luatexlibs') or "" if resolved ~= "" then if trace_locating then - report_resolvers("! lib '%s' located by basename via environment: '%s'",name,resolved) + report_libraries("! lib '%s' located by basename via environment: '%s'",name,resolved) end return loadfile(resolved) end if trace_locating then - report_resolvers('? unable to locate lib: %s',name) + report_libraries('? unable to locate lib: %s',name) end -- return "unable to locate " .. name end @@ -13153,48 +13210,48 @@ local trace_locating = false trackers.register("resolvers.locating", function(v local resolvers = resolvers -local report_resolvers = logs.new("resolvers") +local report_scripts = logs.new("resolvers","scripts") function resolvers.updatescript(oldname,newname) -- oldname -> own.name, not per se a suffix local scriptpath = "scripts/context/lua" newname = file.addsuffix(newname,"lua") local oldscript = resolvers.cleanpath(oldname) if trace_locating then - report_resolvers("to be replaced old script %s", oldscript) + report_scripts("to be replaced old script %s", oldscript) end local newscripts = resolvers.findfiles(newname) or { } if #newscripts == 0 then if trace_locating then - report_resolvers("unable to locate new script") + report_scripts("unable to locate new script") end else for i=1,#newscripts do local newscript = resolvers.cleanpath(newscripts[i]) if trace_locating then - report_resolvers("checking new script %s", newscript) + report_scripts("checking new script %s", newscript) end if oldscript == newscript then if trace_locating then - report_resolvers("old and new script are the same") + report_scripts("old and new script are the same") end elseif not find(newscript,scriptpath) then if trace_locating then - report_resolvers("new script should come from %s",scriptpath) + report_scripts("new script should come from %s",scriptpath) end elseif not (find(oldscript,file.removesuffix(newname).."$") or find(oldscript,newname.."$")) then if trace_locating then - report_resolvers("invalid new script name") + report_scripts("invalid new script name") end else local newdata = io.loaddata(newscript) if newdata then if trace_locating then - report_resolvers("old script content replaced by new content") + report_scripts("old script content replaced by new content") end io.savedata(oldscript,newdata) break elseif trace_locating then - report_resolvers("unable to load new script") + report_scripts("unable to load new script") end end end @@ -13216,6 +13273,8 @@ if not modules then modules = { } end modules ['data-tmf'] = { local resolvers = resolvers +local report_tds = logs.new("resolvers","tds") + -- = << -- ? ?? -- < += @@ -13236,11 +13295,11 @@ function resolvers.load_tree(tree,resolve) local newpath = file.join(newtree,"bin") if not lfs.isdir(newtree) then - logs.simple("no '%s' under tree %s",texos,tree) + report_tds("no '%s' under tree %s",texos,tree) os.exit() end if not lfs.isdir(newpath) then - logs.simple("no '%s/bin' under tree %s",texos,tree) + report_tds("no '%s/bin' under tree %s",texos,tree) os.exit() end @@ -13264,9 +13323,9 @@ function resolvers.load_tree(tree,resolve) setenv('TEXMFCNF', resolvers.luacnfspec, not resolve) setenv("PATH", newpath .. io.pathseparator .. getenv("PATH")) - logs.simple("changing from root '%s' to '%s'",oldroot,newroot) - logs.simple("prepending '%s' to binary path",newpath) - logs.simple() + report_tds("changing from root '%s' to '%s'",oldroot,newroot) + report_tds("prepending '%s' to binary path",newpath) + report_tds() end end @@ -13291,6 +13350,8 @@ resolvers.listers = resolvers.listers or { } local resolvers = resolvers +local report_lists = logs.new("resolvers","lists") + local function tabstr(str) if type(str) == 'table' then return concat(str," | ") @@ -13319,11 +13380,11 @@ function resolvers.listers.variables(pattern) local exp = table.fastcopy(expansions) for key, value in table.sortedpairs(configured) do if key ~= "" and (pattern == "" or find(upper(key),pattern)) then - logs.simple(key) - logs.simple(" env: %s",tabstr(rawget(environment,key)) or "unset") - logs.simple(" var: %s",tabstr(configured[key]) or "unset") - logs.simple(" exp: %s",tabstr(expansions[key]) or "unset") - logs.simple(" res: %s",resolvers.resolve(expansions[key]) or "unset") + report_lists(key) + report_lists(" env: %s",tabstr(rawget(environment,key)) or "unset") + report_lists(" var: %s",tabstr(configured[key]) or "unset") + report_lists(" exp: %s",tabstr(expansions[key]) or "unset") + report_lists(" res: %s",resolvers.resolve(expansions[key]) or "unset") end end instance.environment = table.fastcopy(env) @@ -13477,6 +13538,8 @@ if not modules then modules = { } end modules ['luat-fmt'] = { local format = string.format +local report_format = logs.new("resolvers","formats") + -- helper for mtxrun local quoted = string.quoted @@ -13501,7 +13564,7 @@ function environment.make_format(name) if path ~= "" then lfs.chdir(path) end - logs.simple("format path: %s",lfs.currentdir()) + report_format("format path: %s",lfs.currentdir()) -- check source file local texsourcename = file.addsuffix(name,"mkiv") local fulltexsourcename = resolvers.findfile(texsourcename,"tex") or "" @@ -13510,11 +13573,11 @@ function environment.make_format(name) fulltexsourcename = resolvers.findfile(texsourcename,"tex") or "" end if fulltexsourcename == "" then - logs.simple("no tex source file with name: %s (mkiv or tex)",name) + report_format("no tex source file with name: %s (mkiv or tex)",name) lfs.chdir(olddir) return else - logs.simple("using tex source file: %s",fulltexsourcename) + report_format("using tex source file: %s",fulltexsourcename) end local texsourcepath = dir.expandname(file.dirname(fulltexsourcename)) -- really needed -- check specification @@ -13525,7 +13588,7 @@ function environment.make_format(name) fullspecificationname = resolvers.findfile(specificationname,"tex") or "" end if fullspecificationname == "" then - logs.simple("unknown stub specification: %s",specificationname) + report_format("unknown stub specification: %s",specificationname) lfs.chdir(olddir) return end @@ -13536,39 +13599,39 @@ function environment.make_format(name) if type(usedlualibs) == "string" then usedluastub = file.join(file.dirname(fullspecificationname),usedlualibs) elseif type(usedlualibs) == "table" then - logs.simple("using stub specification: %s",fullspecificationname) + report_format("using stub specification: %s",fullspecificationname) local texbasename = file.basename(name) local luastubname = file.addsuffix(texbasename,"lua") local lucstubname = file.addsuffix(texbasename,"luc") -- pack libraries in stub - logs.simple("creating initialization file: %s",luastubname) + report_format("creating initialization file: %s",luastubname) utilities.merger.selfcreate(usedlualibs,specificationpath,luastubname) -- compile stub file (does not save that much as we don't use this stub at startup any more) local strip = resolvers.booleanvariable("LUACSTRIP", true) if utilities.lua.compile(luastubname,lucstubname) and lfs.isfile(lucstubname) then - logs.simple("using compiled initialization file: %s",lucstubname) + report_format("using compiled initialization file: %s",lucstubname) usedluastub = lucstubname else - logs.simple("using uncompiled initialization file: %s",luastubname) + report_format("using uncompiled initialization file: %s",luastubname) usedluastub = luastubname end else - logs.simple("invalid stub specification: %s",fullspecificationname) + report_format("invalid stub specification: %s",fullspecificationname) lfs.chdir(olddir) return end -- generate format local command = format("luatex --ini %s --lua=%s %s %sdump",primaryflags(),quoted(usedluastub),quoted(fulltexsourcename),os.platform == "unix" and "\\\\" or "\\") - logs.simple("running command: %s\n",command) + report_format("running command: %s\n",command) os.spawn(command) -- remove related mem files local pattern = file.removesuffix(file.basename(usedluastub)).."-*.mem" - -- logs.simple("removing related mplib format with pattern '%s'", pattern) + -- report_format("removing related mplib format with pattern '%s'", pattern) local mp = dir.glob(pattern) if mp then for i=1,#mp do local name = mp[i] - logs.simple("removing related mplib format %s", file.basename(name)) + report_format("removing related mplib format %s", file.basename(name)) os.remove(name) end end @@ -13585,7 +13648,7 @@ function environment.run_format(name,data,more) end fmtname = resolvers.cleanpath(fmtname) if fmtname == "" then - logs.simple("no format with name: %s",name) + report_format("no format with name: %s",name) else local barename = file.removesuffix(name) -- expanded name local luaname = file.addsuffix(barename,"luc") @@ -13593,11 +13656,11 @@ function environment.run_format(name,data,more) luaname = file.addsuffix(barename,"lua") end if not lfs.isfile(luaname) then - logs.simple("using format name: %s",fmtname) - logs.simple("no luc/lua with name: %s",barename) + report_format("using format name: %s",fmtname) + report_format("no luc/lua with name: %s",barename) else local command = format("luatex %s --fmt=%s --lua=%s %s %s",primaryflags(),quoted(barename),quoted(luaname),quoted(data),more ~= "" and quoted(more) or "") - logs.simple("running command: %s",command) + report_format("running command: %s",command) os.spawn(command) end end @@ -13750,8 +13813,6 @@ if not resolvers then os.exit() end -logs.setprogram('MTXrun',"TDS Runner Tool 1.30") - if environment.arguments["verbose"] then trackers.enable("resolvers.locating") end @@ -13764,10 +13825,7 @@ if trackspec then trackers.enable(trackspec) end -runners = runners or { } -- global -messages = messages or { } - -messages.help = [[ +local helpinfo = [[ --script run an mtx script (lua prefered method) (--noquotes), no script gives list --execute run a script or program (texmfstart method) (--noquotes) --resolve resolve prefixed arguments @@ -13819,6 +13877,19 @@ messages.help = [[ --pattern=str filter variables ]] +local application = logs.application { + name = "mtxrun", + banner = "ConTeXt TDS Runner Tool 1.30", + helpinfo = helpinfo, +} + +local report = application.report + +local verbose = environment.argument("verbose") + +messages = messages or { } -- for the mo + +runners = runners or { } -- global runners.applications = { ["lua"] = "luatex --luaonly", @@ -13872,17 +13943,16 @@ end function runners.prepare() local checkname = environment.argument("ifchanged") - local verbose = environment.argument("verbose") if type(checkname) == "string" and checkname ~= "" then local oldchecksum = file.loadchecksum(checkname) local newchecksum = file.checksum(checkname) if oldchecksum == newchecksum then if verbose then - logs.simple("file '%s' is unchanged",checkname) + report("file '%s' is unchanged",checkname) end return "skip" elseif verbose then - logs.simple("file '%s' is changed, processing started",checkname) + report("file '%s' is changed, processing started",checkname) end file.savechecksum(checkname) end @@ -13892,17 +13962,17 @@ function runners.prepare() if oldname and newname and oldname ~= "" and newname ~= "" then if not file.needs_updating(oldname,newname) then if verbose then - logs.simple("file '%s' and '%s' have same age",oldname,newname) + report("file '%s' and '%s' have same age",oldname,newname) end return "skip" elseif verbose then - logs.simple("file '%s' is older than '%s'",oldname,newname) + report("file '%s' is older than '%s'",oldname,newname) end end end local runpath = environment.argument("path") if type(runpath) == "string" and not lfs.chdir(runpath) then - logs.simple("unable to change to path '%s'",runpath) + report("unable to change to path '%s'",runpath) return "error" end runners.prepare = function() end @@ -13961,11 +14031,11 @@ function runners.execute_script(fullname,internal,nosplit) result = binary .. " " .. result end local command = result .. " " .. environment.reconstructcommandline(environment.arguments_after,noquote) - if logs.verbose then - logs.simpleline() - logs.simple("executing: %s",command) - logs.simpleline() - logs.simpleline() + if verbose then + report() + report("executing: %s",command) + report() + report() io.flush() end -- no os.exec because otherwise we get the wrong return value @@ -13980,9 +14050,9 @@ function runners.execute_script(fullname,internal,nosplit) return false end end - logs.simpleline() - logs.simple("This script needs '%s' which seems not to be installed.",binary) - logs.simpleline() + report() + report("This script needs '%s' which seems not to be installed.",binary) + report() end return false end @@ -14007,10 +14077,10 @@ function runners.execute_program(fullname) environment.initializearguments(after) fullname = fullname:gsub("^bin:","") local command = fullname .. " " .. (environment.reconstructcommandline(after or "",noquote) or "") - logs.simpleline() - logs.simple("executing: %s",command) - logs.simpleline() - logs.simpleline() + report() + report("executing: %s",command) + report() + report() io.flush() local code = os.exec(command) -- (fullname,unpack(after)) does not work / maybe spawn return code == 0 @@ -14042,18 +14112,18 @@ function runners.handle_stubs(create) if create then if windows then io.savedata(file.join(stubpath,base..".bat"),string.format(windows_stub,name)) - logs.simple("windows stub for '%s' created",base) + report("windows stub for '%s' created",base) end if unix then io.savedata(file.join(stubpath,base),string.format(unix_stub,name)) - logs.simple("unix stub for '%s' created",base) + report("unix stub for '%s' created",base) end else if windows and (os.remove(file.join(stubpath,base..'.bat')) or os.remove(file.join(stubpath,base..'.cmd'))) then - logs.simple("windows stub for '%s' removed", base) + report("windows stub for '%s' removed", base) end if unix and (os.remove(file.join(stubpath,base)) or os.remove(file.join(stubpath,base..'.sh'))) then - logs.simple("unix stub for '%s' removed",base) + report("unix stub for '%s' removed",base) end end end @@ -14078,12 +14148,12 @@ function runners.locate_platform() end function runners.report_location(result) - if logs.verbose then - logs.simpleline() + if verbose then + reportline() if result and result ~= "" then - logs.simple(result) + report(result) else - logs.simple("not found") + report("not found") end else io.write(result) @@ -14095,11 +14165,11 @@ function runners.edit_script(filename) -- we assume that gvim is present on most local rest = resolvers.resolve(filename) if rest ~= "" then local command = editor .. " " .. rest - if logs.verbose then - logs.simpleline() - logs.simple("starting editor: %s",command) - logs.simple_line() - logs.simple_line() + if verbose then + report() + report("starting editor: %s",command) + report() + report() end os.launch(command) end @@ -14148,7 +14218,7 @@ function runners.launch_file(filename) pattern = filename end if not pattern or pattern == "" then - logs.simple("provide name or --pattern=") + report("provide name or --pattern=") else local t = resolvers.findfiles(pattern) if not t or #t == 0 then @@ -14160,15 +14230,15 @@ function runners.launch_file(filename) if t and #t > 0 then if environment.arguments["all"] then for _, v in pairs(t) do - logs.simple("launching %s", v) + report("launching %s", v) resolvers.launch(v) end else - logs.simple("launching %s", t[1]) + report("launching %s", t[1]) resolvers.launch(t[1]) end else - logs.simple("no match for %s", pattern) + report("no match for %s", pattern) end end end @@ -14239,7 +14309,7 @@ function runners.execute_ctx_script(filename,...) local fullname = runners.find_mtx_script(filename) or "" if file.extname(fullname) == "cld" then -- handy in editors where we force --autopdf - logs.simple("running cld script: %s",filename) + report("running cld script: %s",filename) table.insert(arguments,1,fullname) table.insert(arguments,"--autopdf") fullname = runners.find_mtx_script("context") or "" @@ -14270,8 +14340,8 @@ function runners.execute_ctx_script(filename,...) runners.load_script_session(loadname) end filename = environment.files[1] - if logs.verbose then - logs.simple("using script: %s\n",fullname) + if verbose then + report("using script: %s\n",fullname) end environment.ownscript = fullname dofile(fullname) @@ -14306,24 +14376,23 @@ function runners.execute_ctx_script(filename,...) end end if #valid > 0 then - logs.reportbanner() - logs.reportline() - logs.simple("no script name given, known scripts:") - logs.simple() + application.identify() + report("no script name given, known scripts:") + report() for k=1,#valid do local v = valid[k] - logs.simple("%-12s %4s %s",v[1],v[2],v[3]) + report("%-12s %4s %s",v[1],v[2],v[3]) end end else - logs.simple("no script name given") + report("no script name given") end else filename = file.addsuffix(filename,"lua") if file.is_qualified_path(filename) then - logs.simple("unknown script '%s'",filename) + report("unknown script '%s'",filename) else - logs.simple("unknown script '%s' or 'mtx-%s'",filename,filename) + report("unknown script '%s' or 'mtx-%s'",filename,filename) end end return false @@ -14331,9 +14400,9 @@ function runners.execute_ctx_script(filename,...) end function runners.prefixes() - logs.reportbanner() - logs.reportline() - logs.simple(table.concat(resolvers.allprefixes(true)," ")) + application.identify() + report() + report(table.concat(resolvers.allprefixes(true)," ")) end function runners.timedrun(filename) -- just for me @@ -14385,7 +14454,7 @@ if environment.argument("usekpse") or environment.argument("forcekpse") or is_mk local t = os.clock() local k = kpse.original.new("luatex",progname) local dummy = k:find_file("mtxrun.lua") -- so that we're initialized - logs.simple("kpse fallback with progname '%s' initialized in %s seconds",progname,os.clock()-t) + report("kpse fallback with progname '%s' initialized in %s seconds",progname,os.clock()-t) kpse_initialized = function() return k end return k end @@ -14432,11 +14501,11 @@ else function runners.loadbase(...) if not resolvers.load(...) then - logs.simple("forcing cache reload") + report("forcing cache reload") instance.renewcache = true trackers.enable("resolvers.locating") if not resolvers.load(...) then - logs.simple("the resolver databases are not present or outdated") + report("the resolver databases are not present or outdated") end end end @@ -14595,8 +14664,8 @@ elseif environment.argument("find-path") then resolvers.load() local path = resolvers.findpath(filename, instance.my_format) - if logs.verbose then - logs.simple(path) + if verbose then + report(path) else print(path) end @@ -14651,7 +14720,7 @@ elseif environment.argument("format-path") then -- luatools: runners.execute_ctx_script("mtx-base","--format-path",filename) resolvers.load() - logs.simple(caches.getwritablepath("format")) + report(caches.getwritablepath("format")) elseif environment.argument("pattern") then @@ -14695,7 +14764,7 @@ elseif environment.argument("help") and filename=='base' then elseif environment.argument("help") or filename=='help' or filename == "" then - logs.help(messages.help) + application.help() elseif filename:find("^bin:") then @@ -14729,9 +14798,9 @@ else end -if logs.verbose then - logs.simpleline() - logs.simple("runtime: %0.3f seconds",os.runtime()) +if verbose then + report() + report("runtime: %0.3f seconds",os.runtime()) end if os.type ~= "windows" then diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 31d7d9b0f..afc472d1c 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -8,7 +8,6 @@ if not modules then modules = { } end modules ['mtxrun'] = { license = "see context related readme files" } - -- one can make a stub: -- -- #!/bin/sh @@ -132,11 +131,7 @@ local simple_escapes = { } function string.escapedpattern(str,simple) - if simple then - return (gsub(str,".",simple_escapes)) - else - return (gsub(str,".",patterns_escapes)) - end + return (gsub(str,".",simple and simple_escapes or patterns_escapes)) end function string.topattern(str,lowercase,strict) @@ -556,11 +551,7 @@ local p = Cs((S("-.+*%()[]") / patterns_escapes + anything)^0) local s = Cs((S("-.+*%()[]") / simple_escapes + anything)^0) function string.escapedpattern(str,simple) - if simple then - return match(s,str) - else - return match(p,str) - end + return match(simple and s or p,str) end -- utf extensies @@ -3826,7 +3817,7 @@ local type, next = type, next utilities = utilities or {} utilities.merger = utilities.merger or { } -- maybe mergers -utilities.report = utilities.report or print +utilities.report = logs and logs.new("system") or print local merger = utilities.merger @@ -3964,7 +3955,7 @@ if not modules then modules = { } end modules ['util-lua'] = { utilities = utilities or {} utilities.lua = utilities.lua or { } -utilities.report = utilities.report or print +utilities.report = logs and logs.new("system") or print function utilities.lua.compile(luafile,lucfile,cleanup,strip) -- defaults: cleanup=false strip=true utilities.report("lua: compiling %s into %s",luafile,lucfile) @@ -4577,19 +4568,21 @@ function statistics.show(reporter) end end - -local template, nn = nil, 0 -- we only calcute it once +local template, report_statistics, nn = nil, nil, 0 -- we only calcute it once function statistics.showjobstat(tag,data,n) - if type(data) == "table" then + if not logs then + -- sorry + elseif type(data) == "table" then for i=1,#data do statistics.showjobstat(tag,data[i],n) end else if not template or n > nn then - template, n = format("%%-%ss: %%-%ss - %%s",15,n), nn + template, n = format("%%-%ss - %%s",n), nn + report_statistics = logs.new("mkiv lua stats") end - write_nl(format(template,"mkiv lua stats",tag,data)) + report_statistics(format(template,tag,data)) end end @@ -4610,7 +4603,7 @@ function statistics.runtime() end function statistics.timed(action,report) - report = report or logs.simple + report = report or logs.new("system") starttiming("run") action() stoptiming("run") @@ -4664,14 +4657,10 @@ local data = { } -- maybe just local local trace_initialize = false -- only for testing during development -local function report(a,b,...) - texio.write_nl(format("%-16s> %s",a,format(b,...))) -end - function setters.initialize(filename,name,values) -- filename only for diagnostics - local data = data[name] - if data then - data = data.data + local setter = data[name] + if setter then + local data = data.data if data then for key, value in next, values do -- key = gsub(key,"_",".") @@ -4680,7 +4669,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti if functions then if #functions > 0 and not functions.value then if trace_initialize then - report(name,"executing %s (%s -> %s)",key,filename,tostring(value)) + setter.report("executing %s (%s -> %s)",key,filename,tostring(value)) end for i=1,#functions do functions[i](value) @@ -4688,7 +4677,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti functions.value = value else if trace_initialize then - report(name,"skipping %s (%s -> %s)",key,filename,tostring(value)) + setter.report("skipping %s (%s -> %s)",key,filename,tostring(value)) end end else @@ -4697,7 +4686,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti functions = { default = value } data[key] = functions if trace_initialize then - report(name,"storing %s (%s -> %s)",key,filename,tostring(value)) + setter.report("storing %s (%s -> %s)",key,filename,tostring(value)) end end end @@ -4724,10 +4713,11 @@ local function set(t,what,newvalue) else value = is_boolean(value,value) end + w = escapedpattern(w,true) for name, functions in next, data do if done[name] then -- prevent recursion due to wildcards - elseif find(name,escapedpattern(w,true)) then + elseif find(name,w) then done[name] = true for i=1,#functions do functions[i](value) @@ -4769,7 +4759,7 @@ function setters.register(t,what,...) functions = { } data[what] = functions if trace_initialize then - report(t.name,"defining %s",what) + t.report("defining %s",what) end end local default = functions.default -- can be set from cnf file @@ -4777,7 +4767,7 @@ function setters.register(t,what,...) local typ = type(fnc) if typ == "string" then if trace_initialize then - report(t.name,"coupling %s to %s",what,fnc) + t.report("coupling %s to %s",what,fnc) end local s = fnc -- else wrong reference fnc = function(value) set(t,s,value) end @@ -4831,9 +4821,9 @@ function setters.list(t) -- pattern end function setters.show(t) - commands.writestatus("","") - local list = setters.list(t) local category = t.name + local list = setters.list(t) + t.report() for k=1,#list do local name = list[k] local functions = t.data[name] @@ -4841,10 +4831,10 @@ function setters.show(t) local value, default, modules = functions.value, functions.default, #functions value = value == nil and "unset" or tostring(value) default = default == nil and "unset" or tostring(default) - commands.writestatus(category,format("%-30s modules: %2i default: %5s value: %5s",name,modules,default,value)) + t.report("%-30s modules: %2i default: %6s value: %6s",name,modules,default,value) end end - commands.writestatus("","") + t.report() end -- we could have used a bit of oo and the trackers:enable syntax but @@ -4854,57 +4844,62 @@ end local enable, disable, register, list, show = setters.enable, setters.disable, setters.register, setters.list, setters.show +local function report(setter,...) + local report = logs and logs.report + if report then + report(setter.name,...) + else -- fallback, as this module is loaded before the logger + write_nl(format("%-16s: %s\n",setter.name,format(...))) + end +end + function setters.new(name) - local t -- we need to access it in t - t = { + local setter -- we need to access it in setter itself + setter = { data = allocate(), -- indexed, but also default and value fields name = name, - enable = function(...) enable (t,...) end, - disable = function(...) disable (t,...) end, - register = function(...) register(t,...) end, - list = function(...) list (t,...) end, - show = function(...) show (t,...) end, + report = function(...) report (setter,...) end, + enable = function(...) enable (setter,...) end, + disable = function(...) disable (setter,...) end, + register = function(...) register(setter,...) end, + list = function(...) list (setter,...) end, + show = function(...) show (setter,...) end, } - data[name] = t - return t + data[name] = setter + return setter end trackers = setters.new("trackers") directives = setters.new("directives") experiments = setters.new("experiments") -local t_enable, t_disable = trackers .enable, trackers .disable -local d_enable, d_disable = directives .enable, directives .disable -local e_enable, e_disable = experiments.enable, experiments.disable +local t_enable, t_disable, t_report = trackers .enable, trackers .disable, trackers .report +local d_enable, d_disable, d_report = directives .enable, directives .disable, directives .report +local e_enable, e_disable, e_report = experiments.enable, experiments.disable, experiments.report -- nice trick: we overload two of the directives related functions with variants that -- do tracing (itself using a tracker) .. proof of concept -local function report(...) -- messy .. chicken or egg - local p = (commands and commands.writestatus) or (logs and logs.report) - if p then p(...) end -end - local trace_directives = false local trace_directives = false trackers.register("system.directives", function(v) trace_directives = v end) local trace_experiments = false local trace_experiments = false trackers.register("system.experiments", function(v) trace_experiments = v end) function directives.enable(...) - report("directives","enabling: %s",concat({...}," ")) + d_report("enabling: %s",concat({...}," ")) d_enable(...) end function directives.disable(...) - report("directives","disabling: %s",concat({...}," ")) + d_report("disabling: %s",concat({...}," ")) d_disable(...) end function experiments.enable(...) - report("experiments","enabling: %s",concat({...}," ")) + e_report("enabling: %s",concat({...}," ")) e_enable(...) end function experiments.disable(...) - report("experiments","disabling: %s",concat({...}," ")) + e_report("disabling: %s",concat({...}," ")) e_disable(...) end @@ -4967,20 +4962,19 @@ if not modules then modules = { } end modules ['trac-log'] = { license = "see context related readme files" } --- xml logging is only usefull in normal runs, not in ini mode --- it looks like some tex logging (like filenames) is broken (no longer --- interceoted at the tex end so the xml variant is not that useable now) +-- todo: less categories, more subcategories (e.g. nodes) local write_nl, write = texio and texio.write_nl or print, texio and texio.write or io.write -local format, gmatch = string.format, string.gmatch +local format, gmatch, find = string.format, string.gmatch, string.find +local concat = table.concat +local escapedpattern = string.escapedpattern local texcount = tex and tex.count +local next, type = next, type --[[ldx-- -<p>This is a prelude to a more extensive logging module. For the sake -of parsing log files, in addition to the standard logging we will -provide an <l n='xml'/> structured file. Actually, any logging that -is hooked into callbacks will be \XML\ by default.</p> +<p>This is a prelude to a more extensive logging module. We no longer +provide <l n='xml'/> based logging a sparsing is relatively easy anyway.</p> --ldx]]-- logs = logs or { } @@ -4998,96 +4992,239 @@ webpage : http://www.pragma-ade.nl / http://tex.aanhet.net wiki : http://contextgarden.net ]] -local functions = { - 'report', 'status', 'start', 'stop', 'push', 'pop', 'line', 'direct', - 'start_run', 'stop_run', - 'start_page_number', 'stop_page_number', - 'report_output_pages', 'report_output_log', - 'report_tex_stat', 'report_job_stat', - 'show_open', 'show_close', 'show_load', - 'dummy', -} +-- local functions = { +-- 'report', 'status', 'start', 'stop', 'line', 'direct', +-- 'start_run', 'stop_run', +-- 'start_page_number', 'stop_page_number', +-- 'report_output_pages', 'report_output_log', +-- 'report_tex_stat', 'report_job_stat', +-- 'show_open', 'show_close', 'show_load', +-- 'dummy', +-- } -local method = "nop" +-- basic loggers -function logs.setmethod(newmethod) - method = newmethod - -- a direct copy might be faster but let's try this for a while - setmetatable(logs, { __index = logs[method] }) -end +local function ignore() end -function logs.getmethod() - return method -end +setmetatable(logs, { __index = function(t,k) t[k] = ignore ; return ignore end }) --- installer +-- local separator = (tex and (tex.jobname or tex.formatname)) and ">" or "|" -local data = { } +local report, subreport -function logs.new(category) - local logger = data[category] - if not logger then - logger = function(...) - logs.report(category,...) +if tex and tex.jobname or tex.formatname then + + report = function(a,b,c,...) + if c then + write_nl(format("%-15s > %s\n",a,format(b,c,...))) + elseif b then + write_nl(format("%-15s > %s\n",a,b)) + elseif a then + write_nl(format("%-15s >\n", a)) + else + write_nl("\n") end - data[category] = logger end - return logger -end + subreport = function(a,sub,b,c,...) + if c then + write_nl(format("%-15s > %s > %s\n",a,sub,format(b,c,...))) + elseif b then + write_nl(format("%-15s > %s > %s\n",a,sub,b)) + elseif a then + write_nl(format("%-15s > %s >\n", a,sub)) + else + write_nl("\n") + end + end --- nop logging (maybe use __call instead) - -local noplog = { } logs.nop = noplog setmetatable(logs, { __index = noplog }) +else -for i=1,#functions do - noplog[functions[i]] = function() end -end + report = function(a,b,c,...) + if c then + write_nl(format("%-15s | %s",a,format(b,c,...))) + elseif b then + write_nl(format("%-15s | %s",a,b)) + elseif a then + write_nl(format("%-15s |", a)) + else + write_nl("") + end + end --- tex logging + subreport = function(a,sub,b,c,...) + if c then + write_nl(format("%-15s | %s | %s",a,sub,format(b,c,...))) + elseif b then + write_nl(format("%-15s | %s | %s",a,sub,b)) + elseif a then + write_nl(format("%-15s | %s |", a,sub)) + else + write_nl("") + end + end -local texlog = { } logs.tex = texlog setmetatable(texlog, { __index = noplog }) +end -function texlog.report(a,b,c,...) +function logs.status(a,b,c,...) -- at the tex end if c then - write_nl(format("%-16s> %s\n",a,format(b,c,...))) + write_nl(format("%-15s : %s\n",a,format(b,c,...))) elseif b then - write_nl(format("%-16s> %s\n",a,b)) + write_nl(format("%-15s : %s\n",a,b)) -- b can have %'s + elseif a then + write_nl(format("%-15s :\n", a)) else - write_nl(format("%-16s>\n",a)) + write_nl("\n") end end -function texlog.status(a,b,c,...) - if c then - write_nl(format("%-16s: %s\n",a,format(b,c,...))) - elseif b then - write_nl(format("%-16s: %s\n",a,b)) -- b can have %'s - else - write_nl(format("%-16s:>\n",a)) +logs.report = report +logs.subreport = subreport + +-- installer + +-- todo: renew (un) locks when a new one is added and wildcard + +local data, states = { }, nil + +function logs.reporter(category,subcategory) + local logger = data[category] + if not logger then + local state = false + if states == true then + state = true + elseif type(states) == "table" then + for c, _ in next, states do + if find(category,c) then + state = true + break + end + end + end + logger = { + reporters = { }, + state = state, + } + data[category] = logger + end + local reporter = logger.reporters[subcategory or "default"] + if not reporter then + if subcategory then + reporter = function(...) + if not logger.state then + subreport(category,subcategory,...) + end + end + logger.reporters[subcategory] = reporter + else + local tag = category + reporter = function(...) + if not logger.state then + report(category,...) + end + end + logger.reporters.default = reporter + end end + return reporter end -function texlog.line(fmt,...) -- new - if fmt then - write_nl(format(fmt,...)) +logs.new = logs.reporter + +local function doset(category,value) + if category == true then + -- lock all + category, value = "*", true + elseif category == false then + -- unlock all + category, value = "*", false + elseif value == nil then + -- lock selective + value = true + end + if category == "*" then + states = value + for k, v in next, data do + v.state = value + end else - write_nl("") + states = utilities.parsers.settings_to_hash(category) + for c, _ in next, states do + if data[c] then + v.state = value + else + c = escapedpattern(c,true) + for k, v in next, data do + if find(k,c) then + v.state = value + end + end + end + end + end +end + +function logs.disable(category,value) + doset(category,value == nil and true or value) +end + +function logs.enable(category) + doset(category,false) +end + +function logs.categories() + return table.sortedkeys(data) +end + +function logs.show() + local n, c, s, max = 0, 0, 0, 0 + for category, v in table.sortedpairs(data) do + n = n + 1 + local state = v.state + local reporters = v.reporters + local nc = #category + if nc > c then + c = nc + end + for subcategory, _ in next, reporters do + local ns = #subcategory + if ns > c then + s = ns + end + local m = nc + ns + if m > max then + max = m + end + end + local subcategories = concat(table.sortedkeys(reporters),", ") + if state == true then + state = "disabled" + elseif state == false then + state = "enabled" + else + state = "unknown" + end + -- no new here + report("logging","category: '%s', subcategories: '%s', state: '%s'",category,subcategories,state) end + report("logging","categories: %s, max category: %s, max subcategory: %s, max combined: %s",n,c,s,max) end +directives.register("logs.blocked", function(v) + doset(v,true) +end) +-- tex specific loggers (might move elsewhere) +local report_pages = logs.reporter("pages") -- not needed but saves checking when we grep for it local real, user, sub -function texlog.start_page_number() +function logs.start_page_number() real, user, sub = texcount.realpageno, texcount.userpageno, texcount.subpageno end -local report_pages = logs.new("pages") -- not needed but saves checking when we grep for it - -function texlog.stop_page_number() +function logs.stop_page_number() if real > 0 then if user > 0 then if sub > 0 then @@ -5104,176 +5241,98 @@ function texlog.stop_page_number() io.flush() end -texlog.report_job_stat = statistics and statistics.showjobstat +logs.report_job_stat = statistics and statistics.showjobstat --- xml logging +local report_files = logs.reporter("files") -local xmllog = { } logs.xml = xmllog setmetatable(xmllog, { __index = noplog }) +local nesting = 0 +local verbose = false -function xmllog.report(category,fmt,s,...) -- new - if s then - write_nl(format("<r category='%s'>%s</r>",category,format(fmt,s,...))) - elseif fmt then - write_nl(format("<r category='%s'>%s</r>",category,fmt)) - else - write_nl(format("<r category='%s'/>",category)) +function logs.show_open(name) + if verbose then + nesting = nesting + 1 + report_files("level %s, opening %s",nesting,name) end end -function xmllog.status(category,fmt,s,...) - if s then - write_nl(format("<s category='%s'>%s</r>",category,format(fmt,s,...))) - elseif fmt then - write_nl(format("<s category='%s'>%s</r>",category,fmt)) - else - write_nl(format("<s category='%s'/>",category)) +function logs.show_close(name) + if verbose then + report_files("level %s, closing %s",nesting,name) + nesting = nesting - 1 end end -function xmllog.line(fmt,...) -- new - if fmt then - write_nl(format("<r>%s</r>",format(fmt,...))) - else - write_nl("<r/>") +function logs.show_load(name) + if verbose then + report_files("level %s, loading %s",nesting+1,name) end end -function xmllog.start() write_nl("<%s>" ) end -function xmllog.stop () write_nl("</%s>") end -function xmllog.push () write_nl("<!-- ") end -function xmllog.pop () write_nl(" -->" ) end - -function xmllog.start_run() - write_nl("<?xml version='1.0' standalone='yes'?>") - write_nl("<job>") -- xmlns='www.pragma-ade.com/luatex/schemas/context-job.rng' - write_nl("") -end - -function xmllog.stop_run() - write_nl("</job>") -end - -function xmllog.start_page_number() - write_nl(format("<p real='%s' page='%s' sub='%s'", texcount.realpageno, texcount.userpageno, texcount.subpageno)) -end - -function xmllog.stop_page_number() - write("/>") - write_nl("") -end +-- there may be scripts out there using this: -function xmllog.report_output_pages(p,b) - write_nl(format("<v k='pages' v='%s'/>", p)) - write_nl(format("<v k='bytes' v='%s'/>", b)) - write_nl("") -end - -function xmllog.report_output_log() - -- nothing -end +local simple = logs.reporter("comment") -function xmllog.report_tex_stat(k,v) - write_nl("log","<v k='"..k.."'>"..tostring(v).."</v>") -end - -local nesting = 0 - -function xmllog.show_open(name) - nesting = nesting + 1 - write_nl(format("<f l='%s' n='%s'>",nesting,name)) -end +logs.simple = simple +logs.simpleline = simple -function xmllog.show_close(name) - write("</f> ") - nesting = nesting - 1 -end - -function xmllog.show_load(name) - write_nl(format("<f l='%s' n='%s'/>",nesting+1,name)) -end - --- initialization - -if tex and (tex.jobname or tex.formatname) then - -- todo: this can be set in mtxrun ... or maybe we should just forget about this alternative format - if (os.getenv("mtx.directives.logmethod") or os.getenv("mtx_directives_logmethod")) == "xml" then - logs.setmethod('xml') - else - logs.setmethod('tex') - end -else - logs.setmethod('nop') -end +-- obsolete --- logging in runners -> these are actually the nop loggers +function logs.setprogram () end -- obsolete +function logs.extendbanner() end -- obsolete +function logs.reportlines () end -- obsolete +function logs.reportbanner() end -- obsolete +function logs.reportline () end -- obsolete +function logs.simplelines () end -- obsolete +function logs.help () end -- obsolete -local name, banner = 'report', 'context' +-- applications -function noplog.report(category,fmt,...) -- todo: fmt,s - if fmt then - write_nl(format("%s | %s: %s",name,category,format(fmt,...))) - elseif category then - write_nl(format("%s | %s",name,category)) - else - write_nl(format("%s |",name)) +local function reportlines(t,str) + if str then + for line in gmatch(str,"(.-)[\n\r]") do + t.report(line) + end end end -noplog.status = noplog.report -- just to be sure, never used - -function noplog.simple(fmt,...) -- todo: fmt,s - if fmt then - write_nl(format("%s | %s",name,format(fmt,...))) - else - write_nl(format("%s |",name)) +local function reportbanner(t) + local banner = t.banner + if banner then + t.report(banner) + t.report() end end -if utilities then - utilities.report = function(...) logs.simple(...) end -end - -function logs.setprogram(newname,newbanner) - name, banner = newname, newbanner -end - -function logs.extendbanner(newbanner) - banner = banner .. " | ".. newbanner -end - -function logs.reportlines(str) -- todo: <lines></lines> - for line in gmatch(str,"(.-)[\n\r]") do - logs.report(line) +local function reporthelp(t,...) + local helpinfo = t.helpinfo + if type(helpinfo) == "string" then + reportlines(t,helpinfo) + elseif type(helpinfo) == "table" then + local tags = { ... } + for i=1,#tags do + reportlines(t,t.helpinfo[tags[i]]) + if i < #tags then + t.report() + end + end end end -function logs.reportline() -- for scripts too - logs.report() -end - -function logs.simpleline() - logs.report() +local function reportinfo(t) + t.report() + reportlines(t,moreinfo) end -function logs.simplelines(str) -- todo: <lines></lines> - for line in gmatch(str,"(.-)[\n\r]") do - logs.simple(line) - end +function logs.application(t) + t.name = t.name or "unknown" + t.banner = t.banner + t.report = logs.reporter(t.name) + t.help = function(...) reportbanner(t) ; reporthelp(t,...) ; reportinfo(t) end + t.identify = function() reportbanner(t) end + return t end -function logs.reportbanner() -- for scripts too - logs.report(banner) -end - -function logs.help(message,option) - logs.reportbanner() - logs.reportline() - logs.reportlines(message) - if option ~= "nomoreinfo" then - logs.reportline() - logs.reportlines(moreinfo) - end -end +-- somewhat special -- logging to a file @@ -5281,7 +5340,7 @@ end function logs.system(whereto,process,jobname,category,...) local message = format("%s %s => %s => %s => %s\r",os.date("%d/%m/%y %H:%m:%S"),process,jobname,category,format(...)) for i=1,10 do - local f = io.open(whereto,"a") + local f = io.open(whereto,"a") -- we can consider keepint the file open if f then f:write(message) f:close() @@ -5292,30 +5351,24 @@ function logs.system(whereto,process,jobname,category,...) end end --- bonus - -function logs.fatal(where,...) - logs.report(where,"fatal error: %s, aborting now",format(...)) - os.exit() -end - +local report_system = logs.reporter("system","logs") function logs.obsolete(old,new) local o = loadstring("return " .. new)() if type(o) == "function" then return function(...) - logs.report("system","function %s is obsolete, use %s",old,new) + report_system("function %s is obsolete, use %s",old,new) loadstring(old .. "=" .. new .. " return ".. old)()(...) end elseif type(o) == "table" then local t, m = { }, { } m.__index = function(t,k) - logs.report("system","table %s is obsolete, use %s",old,new) + report_system("table %s is obsolete, use %s",old,new) m.__index, m.__newindex = o, o return o[k] end m.__newindex = function(t,k,v) - logs.report("system","table %s is obsolete, use %s",old,new) + report_system("table %s is obsolete, use %s",old,new) m.__index, m.__newindex = o, o o[k] = v end @@ -5327,6 +5380,10 @@ function logs.obsolete(old,new) end end +if utilities then + utilities.report = report_system +end + if tex and tex.error then function logs.texerrormessage(...) -- for the moment we put this function here tex.error(format(...), { }) @@ -5361,7 +5418,7 @@ local getmetatable, setmetatable, rawset, type = getmetatable, setmetatable, raw local trace_namespaces = false trackers.register("system.namespaces", function(v) trace_namespaces = v end) -local report_system = logs.new("system") +local report_system = logs.new("system","protection") namespaces = namespaces or { } local namespaces = namespaces @@ -5530,7 +5587,7 @@ if not modules then modules = { } end modules ['luat-env'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_lua = logs.new("resolvers","lua") local allocate, mark = utilities.storage.allocate, utilities.storage.mark @@ -5754,14 +5811,14 @@ function environment.luafilechunk(filename,silent) -- used for loading lua bytec if fullname and fullname ~= "" then local data = environment.loadedluacode(fullname) if trace_locating then - report_resolvers("loading file %s%s", fullname, not data and " failed" or "") + report_lua("loading file %s%s", fullname, not data and " failed" or "") elseif not silent then texio.write("<",data and "+ " or "- ",fullname,">") end return data else if trace_locating then - report_resolvers("unknown file %s", filename) + report_lua("unknown file %s", filename) end return nil end @@ -5781,7 +5838,7 @@ function environment.loadluafile(filename, version) local fullname = (lucname and environment.luafile(lucname)) or "" if fullname ~= "" then if trace_locating then - report_resolvers("loading %s", fullname) + report_lua("loading %s", fullname) end chunk = loadfile(fullname) -- this way we don't need a file exists check end @@ -5799,7 +5856,7 @@ function environment.loadluafile(filename, version) return true else if trace_locating then - report_resolvers("version mismatch for %s: lua=%s, luc=%s", filename, v, version) + report_lua("version mismatch for %s: lua=%s, luc=%s", filename, v, version) end environment.loadluafile(filename) end @@ -5810,12 +5867,12 @@ function environment.loadluafile(filename, version) fullname = (luaname and environment.luafile(luaname)) or "" if fullname ~= "" then if trace_locating then - report_resolvers("loading %s", fullname) + report_lua("loading %s", fullname) end chunk = loadfile(fullname) -- this way we don't need a file exists check if not chunk then if trace_locating then - report_resolvers("unknown file %s", filename) + report_lua("unknown file %s", filename) end else assert(chunk)() @@ -5844,7 +5901,7 @@ if not modules then modules = { } end modules ['lxml-tab'] = { local trace_entities = false trackers.register("xml.entities", function(v) trace_entities = v end) -local report_xml = logs.new("xml") +local report_xml = logs and logs.new("xml","core") or function(...) print(format(...)) end --[[ldx-- <p>The parser used here is inspired by the variant discussed in the lua book, but @@ -6518,7 +6575,7 @@ function xml.is_valid(root) return root and not root.error end -xml.errorhandler = (logs and logs.report) or (input and logs.report) or print +xml.errorhandler = report --[[ldx-- <p>We cannot load an <l n='lpeg'/> from a filehandle so we need to load @@ -7069,7 +7126,7 @@ local trace_lpath = false if trackers then trackers.register("xml.path", local trace_lparse = false if trackers then trackers.register("xml.parse", function(v) trace_lparse = v end) end local trace_lprofile = false if trackers then trackers.register("xml.profile", function(v) trace_lpath = v trace_lparse = v trace_lprofile = v end) end -local report_lpath = logs.new("lpath") +local report_lpath = logs.new("xml","lpath") --[[ldx-- <p>We've now arrived at an interesting part: accessing the tree using a subset @@ -7951,9 +8008,9 @@ local function traced_apply(list,parsed,nofparsed,order) if trace_lparse then lshow(parsed) end - report_lpath("collecting : %s",parsed.pattern) - report_lpath(" root tags : %s",tagstostring(list)) - report_lpath(" order : %s",order or "unset") + report_lpath("collecting: %s",parsed.pattern) + report_lpath("root tags : %s",tagstostring(list)) + report_lpath("order : %s",order or "unset") local collected = list for i=1,nofparsed do local pi = parsed[i] @@ -9224,7 +9281,7 @@ local trace_locating = false trackers.register("resolvers.locating", functi local trace_detail = false trackers.register("resolvers.details", function(v) trace_detail = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_initialization = logs.new("resolvers","initialization") local ostype, osname, ossetenv, osgetenv = os.type, os.name, os.setenv, os.getenv @@ -9245,7 +9302,7 @@ kpse = { original = kpse } setmetatable(kpse, { __index = function(kp,name) - report_resolvers("fatal error: kpse library is accessed (key: %s)",name) + report_initialization("fatal error: kpse library is accessed (key: %s)",name) os.exit() end } ) @@ -9329,13 +9386,13 @@ do if lfs.chdir(p) then local pp = lfs.currentdir() if trace_locating and p ~= pp then - report_resolvers("following symlink '%s' to '%s'",p,pp) + report_initialization("following symlink '%s' to '%s'",p,pp) end ownpath = pp lfs.chdir(olddir) else if trace_locating then - report_resolvers("unable to check path '%s'",p) + report_initialization("unable to check path '%s'",p) end ownpath = p end @@ -9346,9 +9403,9 @@ do end if not ownpath or ownpath == "" then ownpath = "." - report_resolvers("forcing fallback ownpath .") + report_initialization("forcing fallback ownpath .") elseif trace_locating then - report_resolvers("using ownpath '%s'",ownpath) + report_initialization("using ownpath '%s'",ownpath) end end @@ -9375,7 +9432,7 @@ do ossetenv('SELFAUTODIR', file.collapsepath(ownpath .. "/..")) ossetenv('SELFAUTOPARENT', file.collapsepath(ownpath .. "/../..")) else - report_resolvers("error: unable to locate ownpath") + report_initialization("error: unable to locate ownpath") os.exit() end @@ -9461,7 +9518,7 @@ local collapsepath = file.collapsepath local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_expansions = logs.new("resolvers","expansions") local resolvers = resolvers @@ -9524,7 +9581,7 @@ local replacer_1 = lpeg.replacer { { ",}", ",@}" }, { "{,", "{@," }, } local function splitpathexpr(str, newlist, validate) -- I couldn't resist lpegging it (nice exercise). if trace_expansions then - report_resolvers("expanding variable '%s'",str) + report_expansions("expanding variable '%s'",str) end local t, ok, done = newlist or { }, false, false local n = #t @@ -9550,7 +9607,7 @@ local function splitpathexpr(str, newlist, validate) -- I couldn't resist lpeggi end if trace_expansions then for k=1,#t do - report_resolvers("% 4i: %s",k,t[k]) + report_expansions("% 4i: %s",k,t[k]) end end return t @@ -9585,7 +9642,7 @@ function resolvers.cleanpath(str) homedir = lpegmatch(cleanup,environment.homedir or "") if homedir == string.char(127) or homedir == "" or not lfs.isdir(homedir) then if trace_expansions then - report_resolvers("no home dir set, ignoring dependent paths") + report_expansions("no home dir set, ignoring dependent paths") end function resolvers.cleanpath(str) if find(str,"~") then @@ -9655,9 +9712,9 @@ local function splitconfigurationpath(str) -- beware, this can be either a path end end if trace_expansions then - report_resolvers("splitting path specification '%s'",str) + report_expansions("splitting path specification '%s'",str) for k=1,noffound do - report_resolvers("% 4i: %s",k,found[k]) + report_expansions("% 4i: %s",k,found[k]) end end cache[str] = found @@ -9742,7 +9799,7 @@ end function resolvers.scanfiles(path,branch) if trace_locating then - report_resolvers("scanning path '%s', branch '%s'",path, branch or path) + report_expansions("scanning path '%s', branch '%s'",path, branch or path) end local realpath = resolvers.resolve(path) -- no shortcut local files, n, m, r = scan({ },realpath .. '/',"",0,0,0) @@ -9751,7 +9808,7 @@ function resolvers.scanfiles(path,branch) files.__directories__ = m files.__remappings__ = r if trace_locating then - report_resolvers("%s files found on %s directories with %s uppercase remappings",n,m,r) + report_expansions("%s files found on %s directories with %s uppercase remappings",n,m,r) end return files end @@ -10080,8 +10137,8 @@ local mkdirs, isdir = dir.mkdirs, lfs.isdir local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end) -local report_cache = logs.new("cache") -local report_resolvers = logs.new("resolvers") +local report_caches = logs.new("resolvers","caches") +local report_resolvers = logs.new("resolvers","caching") local resolvers = resolvers @@ -10141,7 +10198,7 @@ local function identify() if not caches.ask or io.ask(format("\nShould I create the cache path %s?",cachepath), "no", { "yes", "no" }) == "yes" then mkdirs(cachepath) if isdir(cachepath) and file.is_writable(cachepath) then - report_cache("created: %s",cachepath) + report_caches("created: %s",cachepath) writable = cachepath readables[#readables+1] = cachepath end @@ -10175,10 +10232,10 @@ local function identify() -- Some extra checking. If we have no writable or readable path then we simply -- quit. if not writable then - report_cache("fatal error: there is no valid writable cache path defined") + report_caches("fatal error: there is no valid writable cache path defined") os.exit() elseif #readables == 0 then - report_cache("fatal error: there is no valid readable cache path defined") + report_caches("fatal error: there is no valid readable cache path defined") os.exit() end -- why here @@ -10200,9 +10257,9 @@ local function identify() -- end if trace_cache then for i=1,#readables do - report_cache("using readable path '%s' (order %s)",readables[i],i) + report_caches("using readable path '%s' (order %s)",readables[i],i) end - report_cache("using writable path '%s'",writable) + report_caches("using writable path '%s'",writable) end identify = function() return writable, readables @@ -10237,7 +10294,7 @@ function caches.hashed(tree) tree = lower(tree) local hash = md5.hex(tree) if trace_cache or trace_locating then - report_cache("hashing tree %s, hash %s",tree,hash) + report_caches("hashing tree %s, hash %s",tree,hash) end return hash end @@ -10463,7 +10520,7 @@ trackers.register("resolvers.locating", function(v) trace_methods = v end) trackers.register("resolvers.methods", function(v) trace_methods = v end) -local report_resolvers = logs.new("resolvers") +local report_methods = logs.new("resolvers","methods") local allocate = utilities.storage.allocate @@ -10505,41 +10562,41 @@ local function methodhandler(what,first,...) -- filename can be nil or false local resolver = namespace and namespace[scheme] if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, scheme=%s, argument=%s",what,how,scheme,first) + report_methods("resolver: method=%s, how=%s, scheme=%s, argument=%s",what,how,scheme,first) end return resolver(specification,...) else resolver = namespace.default or namespace.file if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, default, argument=%s",what,how,first) + report_methods("resolver: method=%s, how=%s, default, argument=%s",what,how,first) end return resolver(specification,...) elseif trace_methods then - report_resolvers("resolver: method=%s, how=%s, no handler",what,how) + report_methods("resolver: method=%s, how=%s, no handler",what,how) end end elseif how == "tag" then local resolver = namespace and namespace[first] if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, tag=%s",what,how,first) + report_methods("resolver: method=%s, how=%s, tag=%s",what,how,first) end return resolver(...) else resolver = namespace.default or namespace.file if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, default",what,how) + report_methods("resolver: method=%s, how=%s, default",what,how) end return resolver(...) elseif trace_methods then - report_resolvers("resolver: method=%s, how=%s, unknown",what,how) + report_methods("resolver: method=%s, how=%s, unknown",what,how) end end end else - report_resolvers("resolver: method=%s, unknown",what) + report_methods("resolver: method=%s, unknown",what) end end @@ -10610,7 +10667,7 @@ local trace_locating = false trackers.register("resolvers.locating", functi local trace_detail = false trackers.register("resolvers.details", function(v) trace_detail = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_resolving = logs.new("resolvers","resolving") local resolvers = resolvers @@ -10712,7 +10769,7 @@ end function resolvers.newinstance() -- todo: all vars will become lowercase and alphanum only if trace_locating then - report_resolvers("creating instance") + report_resolving("creating instance") end local environment, variables, expansions, order = allocate(), allocate(), allocate(), allocate() @@ -10830,9 +10887,9 @@ local function reportcriticalvariables() for i=1,#resolvers.criticalvars do local k = resolvers.criticalvars[i] local v = resolvers.getenv(k) or "unknown" -- this one will not resolve ! - report_resolvers("variable '%s' set to '%s'",k,v) + report_resolving("variable '%s' set to '%s'",k,v) end - report_resolvers() + report_resolving() end reportcriticalvariables = function() end end @@ -10856,17 +10913,17 @@ local function identify_configuration_files() if lfs.isfile(realname) then specification[#specification+1] = filename if trace_locating then - report_resolvers("found configuration file '%s'",realname) + report_resolving("found configuration file '%s'",realname) end elseif trace_locating then - report_resolvers("unknown configuration file '%s'",realname) + report_resolving("unknown configuration file '%s'",realname) end end if trace_locating then - report_resolvers() + report_resolving() end elseif trace_locating then - report_resolvers("configuration files already identified") + report_resolving("configuration files already identified") end end @@ -10886,8 +10943,8 @@ local function load_configuration_files() data = data and data.content if data then if trace_locating then - report_resolvers("loading configuration file '%s'",filename) - report_resolvers() + report_resolving("loading configuration file '%s'",filename) + report_resolving() end local variables = data.variables or { } local warning = false @@ -10897,7 +10954,7 @@ local function load_configuration_files() initializesetter(filename,k,v) elseif variables[k] == nil then if trace_locating and not warning then - report_resolvers("variables like '%s' in configuration file '%s' should move to the 'variables' subtable", + report_resolving("variables like '%s' in configuration file '%s' should move to the 'variables' subtable", k,resolvers.resolve(filename)) warning = true end @@ -10910,7 +10967,7 @@ local function load_configuration_files() local cnfspec = variables["TEXMFCNF"] if cnfspec then if trace_locating then - report_resolvers("reloading configuration due to TEXMF redefinition") + report_resolving("reloading configuration due to TEXMF redefinition") end -- we push the value into the main environment (osenv) so -- that it takes precedence over the default one and therefore @@ -10929,13 +10986,13 @@ local function load_configuration_files() else if trace_locating then - report_resolvers("skipping configuration file '%s' (no content)",filename) + report_resolving("skipping configuration file '%s' (no content)",filename) end setups[pathname] = { } instance.loaderror = true end elseif trace_locating then - report_resolvers("skipping configuration file '%s' (no file)",filename) + report_resolving("skipping configuration file '%s' (no file)",filename) end instance.order[#instance.order+1] = instance.setups[pathname] if instance.loaderror then @@ -10943,7 +11000,7 @@ local function load_configuration_files() end end elseif trace_locating then - report_resolvers("warning: no lua configuration files found") + report_resolving("warning: no lua configuration files found") end end @@ -10979,19 +11036,19 @@ local function locate_file_databases() end if trace_locating then if runtime then - report_resolvers("locating list of '%s' (runtime)",path) + report_resolving("locating list of '%s' (runtime)",path) else - report_resolvers("locating list of '%s' (cached)",path) + report_resolving("locating list of '%s' (cached)",path) end end methodhandler('locators',stripped) end end if trace_locating then - report_resolvers() + report_resolving() end elseif trace_locating then - report_resolvers("no texmf paths are defined (using TEXMF)") + report_resolving("no texmf paths are defined (using TEXMF)") end end @@ -11002,7 +11059,7 @@ local function generate_file_databases() methodhandler('generators',hash.name) end if trace_locating then - report_resolvers() + report_resolving() end end @@ -11014,11 +11071,11 @@ local function save_file_databases() -- will become cachers local content = instance.files[cachename] caches.collapsecontent(content) if trace_locating then - report_resolvers("saving tree '%s'",cachename) + report_resolving("saving tree '%s'",cachename) end caches.savecontent(cachename,"files",content) elseif trace_locating then - report_resolvers("not saving runtime tree '%s'",cachename) + report_resolving("not saving runtime tree '%s'",cachename) end end end @@ -11043,7 +11100,7 @@ function resolvers.appendhash(type,name,cache) -- safeguard ... tricky as it's actually a bug when seen twice if not instance.hashed[name] then if trace_locating then - report_resolvers("hash '%s' appended",name) + report_resolving("hash '%s' appended",name) end insert(instance.hashes, { type = type, name = name, cache = cache } ) instance.hashed[name] = cache @@ -11054,7 +11111,7 @@ function resolvers.prependhash(type,name,cache) -- safeguard ... tricky as it's actually a bug when seen twice if not instance.hashed[name] then if trace_locating then - report_resolvers("hash '%s' prepended",name) + report_resolving("hash '%s' prepended",name) end insert(instance.hashes, 1, { type = type, name = name, cache = cache } ) instance.hashed[name] = cache @@ -11287,9 +11344,9 @@ function isreadable(name) local readable = lfs.isfile(name) -- not file.is_readable(name) asit can be a dir if trace_detail then if readable then - report_resolvers("file '%s' is readable",name) + report_resolving("file '%s' is readable",name) else - report_resolvers("file '%s' is not readable", name) + report_resolving("file '%s' is not readable", name) end end return readable @@ -11303,7 +11360,7 @@ local function collect_files(names) for k=1,#names do local fname = names[k] if trace_detail then - report_resolvers("checking name '%s'",fname) + report_resolving("checking name '%s'",fname) end local bname = filebasename(fname) local dname = filedirname(fname) @@ -11319,7 +11376,7 @@ local function collect_files(names) local files = blobpath and instance.files[blobpath] if files then if trace_detail then - report_resolvers("deep checking '%s' (%s)",blobpath,bname) + report_resolving("deep checking '%s' (%s)",blobpath,bname) end local blobfile = files[bname] if not blobfile then @@ -11339,7 +11396,7 @@ local function collect_files(names) local search = filejoin(blobroot,blobfile,bname) local result = methodhandler('concatinators',hash.type,blobroot,blobfile,bname) if trace_detail then - report_resolvers("match: kind '%s', search '%s', result '%s'",kind,search,result) + report_resolving("match: kind '%s', search '%s', result '%s'",kind,search,result) end noffiles = noffiles + 1 filelist[noffiles] = { kind, search, result } @@ -11353,7 +11410,7 @@ local function collect_files(names) local search = filejoin(blobroot,vv,bname) local result = methodhandler('concatinators',hash.type,blobroot,vv,bname) if trace_detail then - report_resolvers("match: kind '%s', search '%s', result '%s'",kind,search,result) + report_resolving("match: kind '%s', search '%s', result '%s'",kind,search,result) end noffiles = noffiles + 1 filelist[noffiles] = { kind, search, result } @@ -11362,7 +11419,7 @@ local function collect_files(names) end end elseif trace_locating then - report_resolvers("no match in '%s' (%s)",blobpath,bname) + report_resolving("no match in '%s' (%s)",blobpath,bname) end end end @@ -11403,7 +11460,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : stamp = filename .. "--" .. askedformat if instance.found[stamp] then if trace_locating then - report_resolvers("remembered file '%s'",filename) + report_resolving("remembered file '%s'",filename) end resolvers.registerintrees(filename) -- for tracing used files return instance.found[stamp] @@ -11412,7 +11469,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : if not dangerous[askedformat] then if isreadable(filename) then if trace_detail then - report_resolvers("file '%s' found directly",filename) + report_resolving("file '%s' found directly",filename) end if stamp then instance.found[stamp] = { filename } @@ -11422,13 +11479,13 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end if find(filename,'%*') then if trace_locating then - report_resolvers("checking wildcard '%s'", filename) + report_resolving("checking wildcard '%s'", filename) end result = resolvers.findwildcardfiles(filename) -- we can use th elocal elseif file.is_qualified_path(filename) then if isreadable(filename) then if trace_locating then - report_resolvers("qualified name '%s'", filename) + report_resolving("qualified name '%s'", filename) end result = { filename } else @@ -11441,7 +11498,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : forcedname = filename .. "." .. s if isreadable(forcedname) then if trace_locating then - report_resolvers("no suffix, forcing format filetype '%s'", s) + report_resolving("no suffix, forcing format filetype '%s'", s) end result, ok = { forcedname }, true break @@ -11494,7 +11551,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : -- end end if not ok and trace_locating then - report_resolvers("qualified name '%s'", filename) + report_resolving("qualified name '%s'", filename) end end else @@ -11513,13 +11570,13 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : wantedfiles[#wantedfiles+1] = forcedname filetype = resolvers.formatofsuffix(forcedname) if trace_locating then - report_resolvers("forcing filetype '%s'",filetype) + report_resolving("forcing filetype '%s'",filetype) end end else filetype = resolvers.formatofsuffix(filename) if trace_locating then - report_resolvers("using suffix based filetype '%s'",filetype) + report_resolving("using suffix based filetype '%s'",filetype) end end else @@ -11533,7 +11590,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end filetype = askedformat if trace_locating then - report_resolvers("using given filetype '%s'",filetype) + report_resolving("using given filetype '%s'",filetype) end end local typespec = resolvers.variableofformat(filetype) @@ -11541,7 +11598,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : if not pathlist or #pathlist == 0 then -- no pathlist, access check only / todo == wildcard if trace_detail then - report_resolvers("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) + report_resolving("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) end for k=1,#wantedfiles do local fname = wantedfiles[k] @@ -11569,7 +11626,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end end if trace_detail then - report_resolvers("checking filename '%s'",filename) + report_resolving("checking filename '%s'",filename) end for k=1,#pathlist do local path = pathlist[k] @@ -11581,7 +11638,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : -- compare list entries with permitted pattern -- /xx /xx// local expression = makepathexpression(pathname) if trace_detail then - report_resolvers("using pattern '%s' for path '%s'",expression,pathname) + report_resolving("using pattern '%s' for path '%s'",expression,pathname) end for k=1,#filelist do local fl = filelist[k] @@ -11593,16 +11650,16 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : done = true if allresults then if trace_detail then - report_resolvers("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) + report_resolving("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) end else if trace_detail then - report_resolvers("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) + report_resolving("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) end break end elseif trace_detail then - report_resolvers("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) + report_resolving("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) end end end @@ -11619,7 +11676,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : local fname = filejoin(ppname,w) if isreadable(fname) then if trace_detail then - report_resolvers("found '%s' by scanning",fname) + report_resolving("found '%s' by scanning",fname) end result[#result+1] = fname done = true @@ -11824,7 +11881,7 @@ end local function report(str) if trace_locating then - report_resolvers(str) -- has already verbose + report_resolving(str) -- has already verbose else print(str) end @@ -12219,7 +12276,7 @@ if not modules then modules = { } end modules ['data-fil'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_files = logs.new("resolvers","files") local resolvers = resolvers @@ -12233,11 +12290,11 @@ function locators.file(specification) local realname = resolvers.resolve(name) -- no shortcut if realname and realname ~= '' and lfs.isdir(realname) then if trace_locating then - report_resolvers("file locator '%s' found as '%s'",name,realname) + report_files("file locator '%s' found as '%s'",name,realname) end resolvers.appendhash('file',name,true) -- cache elseif trace_locating then - report_resolvers("file locator '%s' not found",name) + report_files("file locator '%s' not found",name) end end @@ -12260,12 +12317,12 @@ function finders.file(specification,filetype) local foundname = resolvers.findfile(filename,filetype) if foundname and foundname ~= "" then if trace_locating then - report_resolvers("file finder: '%s' found",filename) + report_files("file finder: '%s' found",filename) end return foundname else if trace_locating then - report_resolvers("file finder: %s' not found",filename) + report_files("file finder: %s' not found",filename) end return finders.notfound() end @@ -12286,13 +12343,13 @@ function openers.file(specification,filetype) local f = io.open(filename,"r") if f then if trace_locating then - report_resolvers("file opener, '%s' opened",filename) + report_files("file opener, '%s' opened",filename) end return openers.helpers.textopener("file",filename,f) end end if trace_locating then - report_resolvers("file opener, '%s' not found",filename) + report_files("file opener, '%s' not found",filename) end return openers.notfound() end @@ -12304,7 +12361,7 @@ function loaders.file(specification,filetype) if f then logs.show_load(filename) if trace_locating then - report_resolvers("file loader, '%s' loaded",filename) + report_files("file loader, '%s' loaded",filename) end local s = f:read("*a") if checkgarbage then @@ -12317,7 +12374,7 @@ function loaders.file(specification,filetype) end end if trace_locating then - report_resolvers("file loader, '%s' not found",filename) + report_files("file loader, '%s' not found",filename) end return loaders.notfound() end @@ -12358,11 +12415,11 @@ containers = containers or { } local containers = containers containers.usecache = true -local report_cache = logs.new("cache") +local report_containers = logs.new("resolvers","containers") local function report(container,tag,name) if trace_cache or trace_containers then - report_cache("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') + report_containers("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') end end @@ -12480,7 +12537,7 @@ local format, lower, gsub, find = string.format, string.lower, string.gsub, stri local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_mounts = logs.new("resolvers","mounts") local resolvers = resolvers @@ -12505,7 +12562,7 @@ function resolvers.automount(usecache) -- skip elseif find(line,"^zip://") then if trace_locating then - report_resolvers("mounting %s",line) + report_mounts("mounting %s",line) end table.insert(resolvers.automounted,line) resolvers.usezipfile(line) @@ -12585,7 +12642,7 @@ local format, find, match = string.format, string.find, string.match local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_zip = logs.new("resolvers","zip") -- zip:///oeps.zip?name=bla/bla.tex -- zip:///oeps.zip?tree=tex/texmf-local @@ -12638,9 +12695,9 @@ function resolvers.locators.zip(specification) local zipfile = archive and archive ~= "" and zip.openarchive(archive) -- tricky, could be in to be initialized tree if trace_locating then if zipfile then - report_resolvers("zip locator, archive '%s' found",archive) + report_zip("locator, archive '%s' found",archive) else - report_resolvers("zip locator, archive '%s' not found",archive) + report_zip("locator, archive '%s' not found",archive) end end end @@ -12648,7 +12705,7 @@ end function resolvers.hashers.zip(specification) local archive = specification.filename if trace_locating then - report_resolvers("loading zip file '%s'",archive) + report_zip("loading file '%s'",archive) end resolvers.usezipfile(specification.original) end @@ -12671,25 +12728,25 @@ function resolvers.finders.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip finder, archive '%s' found",archive) + report_zip("finder, archive '%s' found",archive) end local dfile = zfile:open(queryname) if dfile then dfile = zfile:close() if trace_locating then - report_resolvers("zip finder, file '%s' found",queryname) + report_zip("finder, file '%s' found",queryname) end return specification.original elseif trace_locating then - report_resolvers("zip finder, file '%s' not found",queryname) + report_zip("finder, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip finder, unknown archive '%s'",archive) + report_zip("finder, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip finder, '%s' not found",original) + report_zip("finder, '%s' not found",original) end return resolvers.finders.notfound() end @@ -12704,24 +12761,24 @@ function resolvers.openers.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip opener, archive '%s' opened",archive) + report_zip("opener, archive '%s' opened",archive) end local dfile = zfile:open(queryname) if dfile then if trace_locating then - report_resolvers("zip opener, file '%s' found",queryname) + report_zip("opener, file '%s' found",queryname) end return resolvers.openers.helpers.textopener('zip',original,dfile) elseif trace_locating then - report_resolvers("zip opener, file '%s' not found",queryname) + report_zip("opener, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip opener, unknown archive '%s'",archive) + report_zip("opener, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip opener, '%s' not found",original) + report_zip("opener, '%s' not found",original) end return resolvers.openers.notfound() end @@ -12736,27 +12793,27 @@ function resolvers.loaders.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip loader, archive '%s' opened",archive) + report_zip("loader, archive '%s' opened",archive) end local dfile = zfile:open(queryname) if dfile then logs.show_load(original) if trace_locating then - report_resolvers("zip loader, file '%s' loaded",original) + report_zip("loader, file '%s' loaded",original) end local s = dfile:read("*all") dfile:close() return true, s, #s elseif trace_locating then - report_resolvers("zip loader, file '%s' not found",queryname) + report_zip("loader, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip loader, unknown archive '%s'",archive) + report_zip("loader, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip loader, '%s' not found",original) + report_zip("loader, '%s' not found",original) end return resolvers.openers.notfound() end @@ -12772,7 +12829,7 @@ function resolvers.usezipfile(archive) if z then local tree = url.query(specification.query).tree or "" if trace_locating then - report_resolvers("zip registering, registering archive '%s'",archive) + report_zip("registering, registering archive '%s'",archive) end statistics.starttiming(resolvers.instance) resolvers.prependhash('zip',archive) @@ -12781,10 +12838,10 @@ function resolvers.usezipfile(archive) instance.files[archive] = resolvers.registerzipfile(z,tree) statistics.stoptiming(resolvers.instance) elseif trace_locating then - report_resolvers("zip registering, unknown archive '%s'",archive) + report_zip("registering, unknown archive '%s'",archive) end elseif trace_locating then - report_resolvers("zip registering, '%s' not found",archive) + report_zip("registering, '%s' not found",archive) end end @@ -12796,7 +12853,7 @@ function resolvers.registerzipfile(z,tree) filter = format("^%s/(.+)/(.-)$",tree) end if trace_locating then - report_resolvers("zip registering, using filter '%s'",filter) + report_zip("registering, using filter '%s'",filter) end local register, n = resolvers.registerfile, 0 for i in z:files() do @@ -12813,7 +12870,7 @@ function resolvers.registerzipfile(z,tree) n = n + 1 end end - report_resolvers("zip registering, %s files registered",n) + report_zip("registering, %s files registered",n) return files end @@ -12836,7 +12893,7 @@ local find, gsub, format = string.find, string.gsub, string.format local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_trees = logs.new("resolvers","trees") local resolvers = resolvers @@ -12874,18 +12931,18 @@ function resolvers.locators.tree(specification) local name = specification.filename if name ~= '' and lfs.isdir(name) then if trace_locating then - report_resolvers("tree locator '%s' found",name) + report_trees("locator '%s' found",name) end resolvers.appendhash('tree',name,false) -- don't cache elseif trace_locating then - report_resolvers("tree locator '%s' not found",name) + report_trees("locator '%s' not found",name) end end function resolvers.hashers.tree(specification) local name = specification.filename if trace_locating then - report_resolvers("analysing tree '%s'",name) + report_trees("analysing '%s'",name) end resolvers.methodhandler("hashers",name) end @@ -12981,7 +13038,7 @@ if not modules then modules = { } end modules ['data-lua'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_libraries = logs.new("resolvers","libraries") local gsub, insert = string.gsub, table.insert local unpack = unpack or table.unpack @@ -13013,7 +13070,7 @@ local function thepath(...) local t = { ... } t[#t+1] = "?.lua" local path = file.join(unpack(t)) if trace_locating then - report_resolvers("! appending '%s' to 'package.path'",path) + report_libraries("! appending '%s' to 'package.path'",path) end return path end @@ -13035,11 +13092,11 @@ local function loaded(libpaths,name,simple) local libpath = libpaths[i] local resolved = gsub(libpath,"%?",simple) if trace_locating then -- more detail - report_resolvers("! checking for '%s' on 'package.path': '%s' => '%s'",simple,libpath,resolved) + report_libraries("! checking for '%s' on 'package.path': '%s' => '%s'",simple,libpath,resolved) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'package.path': '%s'",name,resolved) + report_libraries("! lib '%s' located via 'package.path': '%s'",name,resolved) end return loadfile(resolved) end @@ -13048,17 +13105,17 @@ end package.loaders[2] = function(name) -- was [#package.loaders+1] if trace_locating then -- mode detail - report_resolvers("! locating '%s'",name) + report_libraries("! locating '%s'",name) end for i=1,#libformats do local format = libformats[i] local resolved = resolvers.findfile(name,format) or "" if trace_locating then -- mode detail - report_resolvers("! checking for '%s' using 'libformat path': '%s'",name,format) + report_libraries("! checking for '%s' using 'libformat path': '%s'",name,format) end if resolved ~= "" then if trace_locating then - report_resolvers("! lib '%s' located via environment: '%s'",name,resolved) + report_libraries("! lib '%s' located via environment: '%s'",name,resolved) end return loadfile(resolved) end @@ -13081,11 +13138,11 @@ package.loaders[2] = function(name) -- was [#package.loaders+1] local path = paths[p] local resolved = file.join(path,libname) if trace_locating then -- mode detail - report_resolvers("! checking for '%s' using 'clibformat path': '%s'",libname,path) + report_libraries("! checking for '%s' using 'clibformat path': '%s'",libname,path) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'clibformat': '%s'",libname,resolved) + report_libraries("! lib '%s' located via 'clibformat': '%s'",libname,resolved) end return package.loadlib(resolved,name) end @@ -13095,28 +13152,28 @@ package.loaders[2] = function(name) -- was [#package.loaders+1] local libpath = clibpaths[i] local resolved = gsub(libpath,"?",simple) if trace_locating then -- more detail - report_resolvers("! checking for '%s' on 'package.cpath': '%s'",simple,libpath) + report_libraries("! checking for '%s' on 'package.cpath': '%s'",simple,libpath) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'package.cpath': '%s'",name,resolved) + report_libraries("! lib '%s' located via 'package.cpath': '%s'",name,resolved) end return package.loadlib(resolved,name) end end -- just in case the distribution is messed up if trace_loading then -- more detail - report_resolvers("! checking for '%s' using 'luatexlibs': '%s'",name) + report_libraries("! checking for '%s' using 'luatexlibs': '%s'",name) end local resolved = resolvers.findfile(file.basename(name),'luatexlibs') or "" if resolved ~= "" then if trace_locating then - report_resolvers("! lib '%s' located by basename via environment: '%s'",name,resolved) + report_libraries("! lib '%s' located by basename via environment: '%s'",name,resolved) end return loadfile(resolved) end if trace_locating then - report_resolvers('? unable to locate lib: %s',name) + report_libraries('? unable to locate lib: %s',name) end -- return "unable to locate " .. name end @@ -13153,48 +13210,48 @@ local trace_locating = false trackers.register("resolvers.locating", function(v local resolvers = resolvers -local report_resolvers = logs.new("resolvers") +local report_scripts = logs.new("resolvers","scripts") function resolvers.updatescript(oldname,newname) -- oldname -> own.name, not per se a suffix local scriptpath = "scripts/context/lua" newname = file.addsuffix(newname,"lua") local oldscript = resolvers.cleanpath(oldname) if trace_locating then - report_resolvers("to be replaced old script %s", oldscript) + report_scripts("to be replaced old script %s", oldscript) end local newscripts = resolvers.findfiles(newname) or { } if #newscripts == 0 then if trace_locating then - report_resolvers("unable to locate new script") + report_scripts("unable to locate new script") end else for i=1,#newscripts do local newscript = resolvers.cleanpath(newscripts[i]) if trace_locating then - report_resolvers("checking new script %s", newscript) + report_scripts("checking new script %s", newscript) end if oldscript == newscript then if trace_locating then - report_resolvers("old and new script are the same") + report_scripts("old and new script are the same") end elseif not find(newscript,scriptpath) then if trace_locating then - report_resolvers("new script should come from %s",scriptpath) + report_scripts("new script should come from %s",scriptpath) end elseif not (find(oldscript,file.removesuffix(newname).."$") or find(oldscript,newname.."$")) then if trace_locating then - report_resolvers("invalid new script name") + report_scripts("invalid new script name") end else local newdata = io.loaddata(newscript) if newdata then if trace_locating then - report_resolvers("old script content replaced by new content") + report_scripts("old script content replaced by new content") end io.savedata(oldscript,newdata) break elseif trace_locating then - report_resolvers("unable to load new script") + report_scripts("unable to load new script") end end end @@ -13216,6 +13273,8 @@ if not modules then modules = { } end modules ['data-tmf'] = { local resolvers = resolvers +local report_tds = logs.new("resolvers","tds") + -- = << -- ? ?? -- < += @@ -13236,11 +13295,11 @@ function resolvers.load_tree(tree,resolve) local newpath = file.join(newtree,"bin") if not lfs.isdir(newtree) then - logs.simple("no '%s' under tree %s",texos,tree) + report_tds("no '%s' under tree %s",texos,tree) os.exit() end if not lfs.isdir(newpath) then - logs.simple("no '%s/bin' under tree %s",texos,tree) + report_tds("no '%s/bin' under tree %s",texos,tree) os.exit() end @@ -13264,9 +13323,9 @@ function resolvers.load_tree(tree,resolve) setenv('TEXMFCNF', resolvers.luacnfspec, not resolve) setenv("PATH", newpath .. io.pathseparator .. getenv("PATH")) - logs.simple("changing from root '%s' to '%s'",oldroot,newroot) - logs.simple("prepending '%s' to binary path",newpath) - logs.simple() + report_tds("changing from root '%s' to '%s'",oldroot,newroot) + report_tds("prepending '%s' to binary path",newpath) + report_tds() end end @@ -13291,6 +13350,8 @@ resolvers.listers = resolvers.listers or { } local resolvers = resolvers +local report_lists = logs.new("resolvers","lists") + local function tabstr(str) if type(str) == 'table' then return concat(str," | ") @@ -13319,11 +13380,11 @@ function resolvers.listers.variables(pattern) local exp = table.fastcopy(expansions) for key, value in table.sortedpairs(configured) do if key ~= "" and (pattern == "" or find(upper(key),pattern)) then - logs.simple(key) - logs.simple(" env: %s",tabstr(rawget(environment,key)) or "unset") - logs.simple(" var: %s",tabstr(configured[key]) or "unset") - logs.simple(" exp: %s",tabstr(expansions[key]) or "unset") - logs.simple(" res: %s",resolvers.resolve(expansions[key]) or "unset") + report_lists(key) + report_lists(" env: %s",tabstr(rawget(environment,key)) or "unset") + report_lists(" var: %s",tabstr(configured[key]) or "unset") + report_lists(" exp: %s",tabstr(expansions[key]) or "unset") + report_lists(" res: %s",resolvers.resolve(expansions[key]) or "unset") end end instance.environment = table.fastcopy(env) @@ -13477,6 +13538,8 @@ if not modules then modules = { } end modules ['luat-fmt'] = { local format = string.format +local report_format = logs.new("resolvers","formats") + -- helper for mtxrun local quoted = string.quoted @@ -13501,7 +13564,7 @@ function environment.make_format(name) if path ~= "" then lfs.chdir(path) end - logs.simple("format path: %s",lfs.currentdir()) + report_format("format path: %s",lfs.currentdir()) -- check source file local texsourcename = file.addsuffix(name,"mkiv") local fulltexsourcename = resolvers.findfile(texsourcename,"tex") or "" @@ -13510,11 +13573,11 @@ function environment.make_format(name) fulltexsourcename = resolvers.findfile(texsourcename,"tex") or "" end if fulltexsourcename == "" then - logs.simple("no tex source file with name: %s (mkiv or tex)",name) + report_format("no tex source file with name: %s (mkiv or tex)",name) lfs.chdir(olddir) return else - logs.simple("using tex source file: %s",fulltexsourcename) + report_format("using tex source file: %s",fulltexsourcename) end local texsourcepath = dir.expandname(file.dirname(fulltexsourcename)) -- really needed -- check specification @@ -13525,7 +13588,7 @@ function environment.make_format(name) fullspecificationname = resolvers.findfile(specificationname,"tex") or "" end if fullspecificationname == "" then - logs.simple("unknown stub specification: %s",specificationname) + report_format("unknown stub specification: %s",specificationname) lfs.chdir(olddir) return end @@ -13536,39 +13599,39 @@ function environment.make_format(name) if type(usedlualibs) == "string" then usedluastub = file.join(file.dirname(fullspecificationname),usedlualibs) elseif type(usedlualibs) == "table" then - logs.simple("using stub specification: %s",fullspecificationname) + report_format("using stub specification: %s",fullspecificationname) local texbasename = file.basename(name) local luastubname = file.addsuffix(texbasename,"lua") local lucstubname = file.addsuffix(texbasename,"luc") -- pack libraries in stub - logs.simple("creating initialization file: %s",luastubname) + report_format("creating initialization file: %s",luastubname) utilities.merger.selfcreate(usedlualibs,specificationpath,luastubname) -- compile stub file (does not save that much as we don't use this stub at startup any more) local strip = resolvers.booleanvariable("LUACSTRIP", true) if utilities.lua.compile(luastubname,lucstubname) and lfs.isfile(lucstubname) then - logs.simple("using compiled initialization file: %s",lucstubname) + report_format("using compiled initialization file: %s",lucstubname) usedluastub = lucstubname else - logs.simple("using uncompiled initialization file: %s",luastubname) + report_format("using uncompiled initialization file: %s",luastubname) usedluastub = luastubname end else - logs.simple("invalid stub specification: %s",fullspecificationname) + report_format("invalid stub specification: %s",fullspecificationname) lfs.chdir(olddir) return end -- generate format local command = format("luatex --ini %s --lua=%s %s %sdump",primaryflags(),quoted(usedluastub),quoted(fulltexsourcename),os.platform == "unix" and "\\\\" or "\\") - logs.simple("running command: %s\n",command) + report_format("running command: %s\n",command) os.spawn(command) -- remove related mem files local pattern = file.removesuffix(file.basename(usedluastub)).."-*.mem" - -- logs.simple("removing related mplib format with pattern '%s'", pattern) + -- report_format("removing related mplib format with pattern '%s'", pattern) local mp = dir.glob(pattern) if mp then for i=1,#mp do local name = mp[i] - logs.simple("removing related mplib format %s", file.basename(name)) + report_format("removing related mplib format %s", file.basename(name)) os.remove(name) end end @@ -13585,7 +13648,7 @@ function environment.run_format(name,data,more) end fmtname = resolvers.cleanpath(fmtname) if fmtname == "" then - logs.simple("no format with name: %s",name) + report_format("no format with name: %s",name) else local barename = file.removesuffix(name) -- expanded name local luaname = file.addsuffix(barename,"luc") @@ -13593,11 +13656,11 @@ function environment.run_format(name,data,more) luaname = file.addsuffix(barename,"lua") end if not lfs.isfile(luaname) then - logs.simple("using format name: %s",fmtname) - logs.simple("no luc/lua with name: %s",barename) + report_format("using format name: %s",fmtname) + report_format("no luc/lua with name: %s",barename) else local command = format("luatex %s --fmt=%s --lua=%s %s %s",primaryflags(),quoted(barename),quoted(luaname),quoted(data),more ~= "" and quoted(more) or "") - logs.simple("running command: %s",command) + report_format("running command: %s",command) os.spawn(command) end end @@ -13750,8 +13813,6 @@ if not resolvers then os.exit() end -logs.setprogram('MTXrun',"TDS Runner Tool 1.30") - if environment.arguments["verbose"] then trackers.enable("resolvers.locating") end @@ -13764,10 +13825,7 @@ if trackspec then trackers.enable(trackspec) end -runners = runners or { } -- global -messages = messages or { } - -messages.help = [[ +local helpinfo = [[ --script run an mtx script (lua prefered method) (--noquotes), no script gives list --execute run a script or program (texmfstart method) (--noquotes) --resolve resolve prefixed arguments @@ -13819,6 +13877,19 @@ messages.help = [[ --pattern=str filter variables ]] +local application = logs.application { + name = "mtxrun", + banner = "ConTeXt TDS Runner Tool 1.30", + helpinfo = helpinfo, +} + +local report = application.report + +local verbose = environment.argument("verbose") + +messages = messages or { } -- for the mo + +runners = runners or { } -- global runners.applications = { ["lua"] = "luatex --luaonly", @@ -13872,17 +13943,16 @@ end function runners.prepare() local checkname = environment.argument("ifchanged") - local verbose = environment.argument("verbose") if type(checkname) == "string" and checkname ~= "" then local oldchecksum = file.loadchecksum(checkname) local newchecksum = file.checksum(checkname) if oldchecksum == newchecksum then if verbose then - logs.simple("file '%s' is unchanged",checkname) + report("file '%s' is unchanged",checkname) end return "skip" elseif verbose then - logs.simple("file '%s' is changed, processing started",checkname) + report("file '%s' is changed, processing started",checkname) end file.savechecksum(checkname) end @@ -13892,17 +13962,17 @@ function runners.prepare() if oldname and newname and oldname ~= "" and newname ~= "" then if not file.needs_updating(oldname,newname) then if verbose then - logs.simple("file '%s' and '%s' have same age",oldname,newname) + report("file '%s' and '%s' have same age",oldname,newname) end return "skip" elseif verbose then - logs.simple("file '%s' is older than '%s'",oldname,newname) + report("file '%s' is older than '%s'",oldname,newname) end end end local runpath = environment.argument("path") if type(runpath) == "string" and not lfs.chdir(runpath) then - logs.simple("unable to change to path '%s'",runpath) + report("unable to change to path '%s'",runpath) return "error" end runners.prepare = function() end @@ -13961,11 +14031,11 @@ function runners.execute_script(fullname,internal,nosplit) result = binary .. " " .. result end local command = result .. " " .. environment.reconstructcommandline(environment.arguments_after,noquote) - if logs.verbose then - logs.simpleline() - logs.simple("executing: %s",command) - logs.simpleline() - logs.simpleline() + if verbose then + report() + report("executing: %s",command) + report() + report() io.flush() end -- no os.exec because otherwise we get the wrong return value @@ -13980,9 +14050,9 @@ function runners.execute_script(fullname,internal,nosplit) return false end end - logs.simpleline() - logs.simple("This script needs '%s' which seems not to be installed.",binary) - logs.simpleline() + report() + report("This script needs '%s' which seems not to be installed.",binary) + report() end return false end @@ -14007,10 +14077,10 @@ function runners.execute_program(fullname) environment.initializearguments(after) fullname = fullname:gsub("^bin:","") local command = fullname .. " " .. (environment.reconstructcommandline(after or "",noquote) or "") - logs.simpleline() - logs.simple("executing: %s",command) - logs.simpleline() - logs.simpleline() + report() + report("executing: %s",command) + report() + report() io.flush() local code = os.exec(command) -- (fullname,unpack(after)) does not work / maybe spawn return code == 0 @@ -14042,18 +14112,18 @@ function runners.handle_stubs(create) if create then if windows then io.savedata(file.join(stubpath,base..".bat"),string.format(windows_stub,name)) - logs.simple("windows stub for '%s' created",base) + report("windows stub for '%s' created",base) end if unix then io.savedata(file.join(stubpath,base),string.format(unix_stub,name)) - logs.simple("unix stub for '%s' created",base) + report("unix stub for '%s' created",base) end else if windows and (os.remove(file.join(stubpath,base..'.bat')) or os.remove(file.join(stubpath,base..'.cmd'))) then - logs.simple("windows stub for '%s' removed", base) + report("windows stub for '%s' removed", base) end if unix and (os.remove(file.join(stubpath,base)) or os.remove(file.join(stubpath,base..'.sh'))) then - logs.simple("unix stub for '%s' removed",base) + report("unix stub for '%s' removed",base) end end end @@ -14078,12 +14148,12 @@ function runners.locate_platform() end function runners.report_location(result) - if logs.verbose then - logs.simpleline() + if verbose then + reportline() if result and result ~= "" then - logs.simple(result) + report(result) else - logs.simple("not found") + report("not found") end else io.write(result) @@ -14095,11 +14165,11 @@ function runners.edit_script(filename) -- we assume that gvim is present on most local rest = resolvers.resolve(filename) if rest ~= "" then local command = editor .. " " .. rest - if logs.verbose then - logs.simpleline() - logs.simple("starting editor: %s",command) - logs.simple_line() - logs.simple_line() + if verbose then + report() + report("starting editor: %s",command) + report() + report() end os.launch(command) end @@ -14148,7 +14218,7 @@ function runners.launch_file(filename) pattern = filename end if not pattern or pattern == "" then - logs.simple("provide name or --pattern=") + report("provide name or --pattern=") else local t = resolvers.findfiles(pattern) if not t or #t == 0 then @@ -14160,15 +14230,15 @@ function runners.launch_file(filename) if t and #t > 0 then if environment.arguments["all"] then for _, v in pairs(t) do - logs.simple("launching %s", v) + report("launching %s", v) resolvers.launch(v) end else - logs.simple("launching %s", t[1]) + report("launching %s", t[1]) resolvers.launch(t[1]) end else - logs.simple("no match for %s", pattern) + report("no match for %s", pattern) end end end @@ -14239,7 +14309,7 @@ function runners.execute_ctx_script(filename,...) local fullname = runners.find_mtx_script(filename) or "" if file.extname(fullname) == "cld" then -- handy in editors where we force --autopdf - logs.simple("running cld script: %s",filename) + report("running cld script: %s",filename) table.insert(arguments,1,fullname) table.insert(arguments,"--autopdf") fullname = runners.find_mtx_script("context") or "" @@ -14270,8 +14340,8 @@ function runners.execute_ctx_script(filename,...) runners.load_script_session(loadname) end filename = environment.files[1] - if logs.verbose then - logs.simple("using script: %s\n",fullname) + if verbose then + report("using script: %s\n",fullname) end environment.ownscript = fullname dofile(fullname) @@ -14306,24 +14376,23 @@ function runners.execute_ctx_script(filename,...) end end if #valid > 0 then - logs.reportbanner() - logs.reportline() - logs.simple("no script name given, known scripts:") - logs.simple() + application.identify() + report("no script name given, known scripts:") + report() for k=1,#valid do local v = valid[k] - logs.simple("%-12s %4s %s",v[1],v[2],v[3]) + report("%-12s %4s %s",v[1],v[2],v[3]) end end else - logs.simple("no script name given") + report("no script name given") end else filename = file.addsuffix(filename,"lua") if file.is_qualified_path(filename) then - logs.simple("unknown script '%s'",filename) + report("unknown script '%s'",filename) else - logs.simple("unknown script '%s' or 'mtx-%s'",filename,filename) + report("unknown script '%s' or 'mtx-%s'",filename,filename) end end return false @@ -14331,9 +14400,9 @@ function runners.execute_ctx_script(filename,...) end function runners.prefixes() - logs.reportbanner() - logs.reportline() - logs.simple(table.concat(resolvers.allprefixes(true)," ")) + application.identify() + report() + report(table.concat(resolvers.allprefixes(true)," ")) end function runners.timedrun(filename) -- just for me @@ -14385,7 +14454,7 @@ if environment.argument("usekpse") or environment.argument("forcekpse") or is_mk local t = os.clock() local k = kpse.original.new("luatex",progname) local dummy = k:find_file("mtxrun.lua") -- so that we're initialized - logs.simple("kpse fallback with progname '%s' initialized in %s seconds",progname,os.clock()-t) + report("kpse fallback with progname '%s' initialized in %s seconds",progname,os.clock()-t) kpse_initialized = function() return k end return k end @@ -14432,11 +14501,11 @@ else function runners.loadbase(...) if not resolvers.load(...) then - logs.simple("forcing cache reload") + report("forcing cache reload") instance.renewcache = true trackers.enable("resolvers.locating") if not resolvers.load(...) then - logs.simple("the resolver databases are not present or outdated") + report("the resolver databases are not present or outdated") end end end @@ -14595,8 +14664,8 @@ elseif environment.argument("find-path") then resolvers.load() local path = resolvers.findpath(filename, instance.my_format) - if logs.verbose then - logs.simple(path) + if verbose then + report(path) else print(path) end @@ -14651,7 +14720,7 @@ elseif environment.argument("format-path") then -- luatools: runners.execute_ctx_script("mtx-base","--format-path",filename) resolvers.load() - logs.simple(caches.getwritablepath("format")) + report(caches.getwritablepath("format")) elseif environment.argument("pattern") then @@ -14695,7 +14764,7 @@ elseif environment.argument("help") and filename=='base' then elseif environment.argument("help") or filename=='help' or filename == "" then - logs.help(messages.help) + application.help() elseif filename:find("^bin:") then @@ -14729,9 +14798,9 @@ else end -if logs.verbose then - logs.simpleline() - logs.simple("runtime: %0.3f seconds",os.runtime()) +if verbose then + report() + report("runtime: %0.3f seconds",os.runtime()) end if os.type ~= "windows" then diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 31d7d9b0f..afc472d1c 100755 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -8,7 +8,6 @@ if not modules then modules = { } end modules ['mtxrun'] = { license = "see context related readme files" } - -- one can make a stub: -- -- #!/bin/sh @@ -132,11 +131,7 @@ local simple_escapes = { } function string.escapedpattern(str,simple) - if simple then - return (gsub(str,".",simple_escapes)) - else - return (gsub(str,".",patterns_escapes)) - end + return (gsub(str,".",simple and simple_escapes or patterns_escapes)) end function string.topattern(str,lowercase,strict) @@ -556,11 +551,7 @@ local p = Cs((S("-.+*%()[]") / patterns_escapes + anything)^0) local s = Cs((S("-.+*%()[]") / simple_escapes + anything)^0) function string.escapedpattern(str,simple) - if simple then - return match(s,str) - else - return match(p,str) - end + return match(simple and s or p,str) end -- utf extensies @@ -3826,7 +3817,7 @@ local type, next = type, next utilities = utilities or {} utilities.merger = utilities.merger or { } -- maybe mergers -utilities.report = utilities.report or print +utilities.report = logs and logs.new("system") or print local merger = utilities.merger @@ -3964,7 +3955,7 @@ if not modules then modules = { } end modules ['util-lua'] = { utilities = utilities or {} utilities.lua = utilities.lua or { } -utilities.report = utilities.report or print +utilities.report = logs and logs.new("system") or print function utilities.lua.compile(luafile,lucfile,cleanup,strip) -- defaults: cleanup=false strip=true utilities.report("lua: compiling %s into %s",luafile,lucfile) @@ -4577,19 +4568,21 @@ function statistics.show(reporter) end end - -local template, nn = nil, 0 -- we only calcute it once +local template, report_statistics, nn = nil, nil, 0 -- we only calcute it once function statistics.showjobstat(tag,data,n) - if type(data) == "table" then + if not logs then + -- sorry + elseif type(data) == "table" then for i=1,#data do statistics.showjobstat(tag,data[i],n) end else if not template or n > nn then - template, n = format("%%-%ss: %%-%ss - %%s",15,n), nn + template, n = format("%%-%ss - %%s",n), nn + report_statistics = logs.new("mkiv lua stats") end - write_nl(format(template,"mkiv lua stats",tag,data)) + report_statistics(format(template,tag,data)) end end @@ -4610,7 +4603,7 @@ function statistics.runtime() end function statistics.timed(action,report) - report = report or logs.simple + report = report or logs.new("system") starttiming("run") action() stoptiming("run") @@ -4664,14 +4657,10 @@ local data = { } -- maybe just local local trace_initialize = false -- only for testing during development -local function report(a,b,...) - texio.write_nl(format("%-16s> %s",a,format(b,...))) -end - function setters.initialize(filename,name,values) -- filename only for diagnostics - local data = data[name] - if data then - data = data.data + local setter = data[name] + if setter then + local data = data.data if data then for key, value in next, values do -- key = gsub(key,"_",".") @@ -4680,7 +4669,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti if functions then if #functions > 0 and not functions.value then if trace_initialize then - report(name,"executing %s (%s -> %s)",key,filename,tostring(value)) + setter.report("executing %s (%s -> %s)",key,filename,tostring(value)) end for i=1,#functions do functions[i](value) @@ -4688,7 +4677,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti functions.value = value else if trace_initialize then - report(name,"skipping %s (%s -> %s)",key,filename,tostring(value)) + setter.report("skipping %s (%s -> %s)",key,filename,tostring(value)) end end else @@ -4697,7 +4686,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti functions = { default = value } data[key] = functions if trace_initialize then - report(name,"storing %s (%s -> %s)",key,filename,tostring(value)) + setter.report("storing %s (%s -> %s)",key,filename,tostring(value)) end end end @@ -4724,10 +4713,11 @@ local function set(t,what,newvalue) else value = is_boolean(value,value) end + w = escapedpattern(w,true) for name, functions in next, data do if done[name] then -- prevent recursion due to wildcards - elseif find(name,escapedpattern(w,true)) then + elseif find(name,w) then done[name] = true for i=1,#functions do functions[i](value) @@ -4769,7 +4759,7 @@ function setters.register(t,what,...) functions = { } data[what] = functions if trace_initialize then - report(t.name,"defining %s",what) + t.report("defining %s",what) end end local default = functions.default -- can be set from cnf file @@ -4777,7 +4767,7 @@ function setters.register(t,what,...) local typ = type(fnc) if typ == "string" then if trace_initialize then - report(t.name,"coupling %s to %s",what,fnc) + t.report("coupling %s to %s",what,fnc) end local s = fnc -- else wrong reference fnc = function(value) set(t,s,value) end @@ -4831,9 +4821,9 @@ function setters.list(t) -- pattern end function setters.show(t) - commands.writestatus("","") - local list = setters.list(t) local category = t.name + local list = setters.list(t) + t.report() for k=1,#list do local name = list[k] local functions = t.data[name] @@ -4841,10 +4831,10 @@ function setters.show(t) local value, default, modules = functions.value, functions.default, #functions value = value == nil and "unset" or tostring(value) default = default == nil and "unset" or tostring(default) - commands.writestatus(category,format("%-30s modules: %2i default: %5s value: %5s",name,modules,default,value)) + t.report("%-30s modules: %2i default: %6s value: %6s",name,modules,default,value) end end - commands.writestatus("","") + t.report() end -- we could have used a bit of oo and the trackers:enable syntax but @@ -4854,57 +4844,62 @@ end local enable, disable, register, list, show = setters.enable, setters.disable, setters.register, setters.list, setters.show +local function report(setter,...) + local report = logs and logs.report + if report then + report(setter.name,...) + else -- fallback, as this module is loaded before the logger + write_nl(format("%-16s: %s\n",setter.name,format(...))) + end +end + function setters.new(name) - local t -- we need to access it in t - t = { + local setter -- we need to access it in setter itself + setter = { data = allocate(), -- indexed, but also default and value fields name = name, - enable = function(...) enable (t,...) end, - disable = function(...) disable (t,...) end, - register = function(...) register(t,...) end, - list = function(...) list (t,...) end, - show = function(...) show (t,...) end, + report = function(...) report (setter,...) end, + enable = function(...) enable (setter,...) end, + disable = function(...) disable (setter,...) end, + register = function(...) register(setter,...) end, + list = function(...) list (setter,...) end, + show = function(...) show (setter,...) end, } - data[name] = t - return t + data[name] = setter + return setter end trackers = setters.new("trackers") directives = setters.new("directives") experiments = setters.new("experiments") -local t_enable, t_disable = trackers .enable, trackers .disable -local d_enable, d_disable = directives .enable, directives .disable -local e_enable, e_disable = experiments.enable, experiments.disable +local t_enable, t_disable, t_report = trackers .enable, trackers .disable, trackers .report +local d_enable, d_disable, d_report = directives .enable, directives .disable, directives .report +local e_enable, e_disable, e_report = experiments.enable, experiments.disable, experiments.report -- nice trick: we overload two of the directives related functions with variants that -- do tracing (itself using a tracker) .. proof of concept -local function report(...) -- messy .. chicken or egg - local p = (commands and commands.writestatus) or (logs and logs.report) - if p then p(...) end -end - local trace_directives = false local trace_directives = false trackers.register("system.directives", function(v) trace_directives = v end) local trace_experiments = false local trace_experiments = false trackers.register("system.experiments", function(v) trace_experiments = v end) function directives.enable(...) - report("directives","enabling: %s",concat({...}," ")) + d_report("enabling: %s",concat({...}," ")) d_enable(...) end function directives.disable(...) - report("directives","disabling: %s",concat({...}," ")) + d_report("disabling: %s",concat({...}," ")) d_disable(...) end function experiments.enable(...) - report("experiments","enabling: %s",concat({...}," ")) + e_report("enabling: %s",concat({...}," ")) e_enable(...) end function experiments.disable(...) - report("experiments","disabling: %s",concat({...}," ")) + e_report("disabling: %s",concat({...}," ")) e_disable(...) end @@ -4967,20 +4962,19 @@ if not modules then modules = { } end modules ['trac-log'] = { license = "see context related readme files" } --- xml logging is only usefull in normal runs, not in ini mode --- it looks like some tex logging (like filenames) is broken (no longer --- interceoted at the tex end so the xml variant is not that useable now) +-- todo: less categories, more subcategories (e.g. nodes) local write_nl, write = texio and texio.write_nl or print, texio and texio.write or io.write -local format, gmatch = string.format, string.gmatch +local format, gmatch, find = string.format, string.gmatch, string.find +local concat = table.concat +local escapedpattern = string.escapedpattern local texcount = tex and tex.count +local next, type = next, type --[[ldx-- -<p>This is a prelude to a more extensive logging module. For the sake -of parsing log files, in addition to the standard logging we will -provide an <l n='xml'/> structured file. Actually, any logging that -is hooked into callbacks will be \XML\ by default.</p> +<p>This is a prelude to a more extensive logging module. We no longer +provide <l n='xml'/> based logging a sparsing is relatively easy anyway.</p> --ldx]]-- logs = logs or { } @@ -4998,96 +4992,239 @@ webpage : http://www.pragma-ade.nl / http://tex.aanhet.net wiki : http://contextgarden.net ]] -local functions = { - 'report', 'status', 'start', 'stop', 'push', 'pop', 'line', 'direct', - 'start_run', 'stop_run', - 'start_page_number', 'stop_page_number', - 'report_output_pages', 'report_output_log', - 'report_tex_stat', 'report_job_stat', - 'show_open', 'show_close', 'show_load', - 'dummy', -} +-- local functions = { +-- 'report', 'status', 'start', 'stop', 'line', 'direct', +-- 'start_run', 'stop_run', +-- 'start_page_number', 'stop_page_number', +-- 'report_output_pages', 'report_output_log', +-- 'report_tex_stat', 'report_job_stat', +-- 'show_open', 'show_close', 'show_load', +-- 'dummy', +-- } -local method = "nop" +-- basic loggers -function logs.setmethod(newmethod) - method = newmethod - -- a direct copy might be faster but let's try this for a while - setmetatable(logs, { __index = logs[method] }) -end +local function ignore() end -function logs.getmethod() - return method -end +setmetatable(logs, { __index = function(t,k) t[k] = ignore ; return ignore end }) --- installer +-- local separator = (tex and (tex.jobname or tex.formatname)) and ">" or "|" -local data = { } +local report, subreport -function logs.new(category) - local logger = data[category] - if not logger then - logger = function(...) - logs.report(category,...) +if tex and tex.jobname or tex.formatname then + + report = function(a,b,c,...) + if c then + write_nl(format("%-15s > %s\n",a,format(b,c,...))) + elseif b then + write_nl(format("%-15s > %s\n",a,b)) + elseif a then + write_nl(format("%-15s >\n", a)) + else + write_nl("\n") end - data[category] = logger end - return logger -end + subreport = function(a,sub,b,c,...) + if c then + write_nl(format("%-15s > %s > %s\n",a,sub,format(b,c,...))) + elseif b then + write_nl(format("%-15s > %s > %s\n",a,sub,b)) + elseif a then + write_nl(format("%-15s > %s >\n", a,sub)) + else + write_nl("\n") + end + end --- nop logging (maybe use __call instead) - -local noplog = { } logs.nop = noplog setmetatable(logs, { __index = noplog }) +else -for i=1,#functions do - noplog[functions[i]] = function() end -end + report = function(a,b,c,...) + if c then + write_nl(format("%-15s | %s",a,format(b,c,...))) + elseif b then + write_nl(format("%-15s | %s",a,b)) + elseif a then + write_nl(format("%-15s |", a)) + else + write_nl("") + end + end --- tex logging + subreport = function(a,sub,b,c,...) + if c then + write_nl(format("%-15s | %s | %s",a,sub,format(b,c,...))) + elseif b then + write_nl(format("%-15s | %s | %s",a,sub,b)) + elseif a then + write_nl(format("%-15s | %s |", a,sub)) + else + write_nl("") + end + end -local texlog = { } logs.tex = texlog setmetatable(texlog, { __index = noplog }) +end -function texlog.report(a,b,c,...) +function logs.status(a,b,c,...) -- at the tex end if c then - write_nl(format("%-16s> %s\n",a,format(b,c,...))) + write_nl(format("%-15s : %s\n",a,format(b,c,...))) elseif b then - write_nl(format("%-16s> %s\n",a,b)) + write_nl(format("%-15s : %s\n",a,b)) -- b can have %'s + elseif a then + write_nl(format("%-15s :\n", a)) else - write_nl(format("%-16s>\n",a)) + write_nl("\n") end end -function texlog.status(a,b,c,...) - if c then - write_nl(format("%-16s: %s\n",a,format(b,c,...))) - elseif b then - write_nl(format("%-16s: %s\n",a,b)) -- b can have %'s - else - write_nl(format("%-16s:>\n",a)) +logs.report = report +logs.subreport = subreport + +-- installer + +-- todo: renew (un) locks when a new one is added and wildcard + +local data, states = { }, nil + +function logs.reporter(category,subcategory) + local logger = data[category] + if not logger then + local state = false + if states == true then + state = true + elseif type(states) == "table" then + for c, _ in next, states do + if find(category,c) then + state = true + break + end + end + end + logger = { + reporters = { }, + state = state, + } + data[category] = logger + end + local reporter = logger.reporters[subcategory or "default"] + if not reporter then + if subcategory then + reporter = function(...) + if not logger.state then + subreport(category,subcategory,...) + end + end + logger.reporters[subcategory] = reporter + else + local tag = category + reporter = function(...) + if not logger.state then + report(category,...) + end + end + logger.reporters.default = reporter + end end + return reporter end -function texlog.line(fmt,...) -- new - if fmt then - write_nl(format(fmt,...)) +logs.new = logs.reporter + +local function doset(category,value) + if category == true then + -- lock all + category, value = "*", true + elseif category == false then + -- unlock all + category, value = "*", false + elseif value == nil then + -- lock selective + value = true + end + if category == "*" then + states = value + for k, v in next, data do + v.state = value + end else - write_nl("") + states = utilities.parsers.settings_to_hash(category) + for c, _ in next, states do + if data[c] then + v.state = value + else + c = escapedpattern(c,true) + for k, v in next, data do + if find(k,c) then + v.state = value + end + end + end + end + end +end + +function logs.disable(category,value) + doset(category,value == nil and true or value) +end + +function logs.enable(category) + doset(category,false) +end + +function logs.categories() + return table.sortedkeys(data) +end + +function logs.show() + local n, c, s, max = 0, 0, 0, 0 + for category, v in table.sortedpairs(data) do + n = n + 1 + local state = v.state + local reporters = v.reporters + local nc = #category + if nc > c then + c = nc + end + for subcategory, _ in next, reporters do + local ns = #subcategory + if ns > c then + s = ns + end + local m = nc + ns + if m > max then + max = m + end + end + local subcategories = concat(table.sortedkeys(reporters),", ") + if state == true then + state = "disabled" + elseif state == false then + state = "enabled" + else + state = "unknown" + end + -- no new here + report("logging","category: '%s', subcategories: '%s', state: '%s'",category,subcategories,state) end + report("logging","categories: %s, max category: %s, max subcategory: %s, max combined: %s",n,c,s,max) end +directives.register("logs.blocked", function(v) + doset(v,true) +end) +-- tex specific loggers (might move elsewhere) +local report_pages = logs.reporter("pages") -- not needed but saves checking when we grep for it local real, user, sub -function texlog.start_page_number() +function logs.start_page_number() real, user, sub = texcount.realpageno, texcount.userpageno, texcount.subpageno end -local report_pages = logs.new("pages") -- not needed but saves checking when we grep for it - -function texlog.stop_page_number() +function logs.stop_page_number() if real > 0 then if user > 0 then if sub > 0 then @@ -5104,176 +5241,98 @@ function texlog.stop_page_number() io.flush() end -texlog.report_job_stat = statistics and statistics.showjobstat +logs.report_job_stat = statistics and statistics.showjobstat --- xml logging +local report_files = logs.reporter("files") -local xmllog = { } logs.xml = xmllog setmetatable(xmllog, { __index = noplog }) +local nesting = 0 +local verbose = false -function xmllog.report(category,fmt,s,...) -- new - if s then - write_nl(format("<r category='%s'>%s</r>",category,format(fmt,s,...))) - elseif fmt then - write_nl(format("<r category='%s'>%s</r>",category,fmt)) - else - write_nl(format("<r category='%s'/>",category)) +function logs.show_open(name) + if verbose then + nesting = nesting + 1 + report_files("level %s, opening %s",nesting,name) end end -function xmllog.status(category,fmt,s,...) - if s then - write_nl(format("<s category='%s'>%s</r>",category,format(fmt,s,...))) - elseif fmt then - write_nl(format("<s category='%s'>%s</r>",category,fmt)) - else - write_nl(format("<s category='%s'/>",category)) +function logs.show_close(name) + if verbose then + report_files("level %s, closing %s",nesting,name) + nesting = nesting - 1 end end -function xmllog.line(fmt,...) -- new - if fmt then - write_nl(format("<r>%s</r>",format(fmt,...))) - else - write_nl("<r/>") +function logs.show_load(name) + if verbose then + report_files("level %s, loading %s",nesting+1,name) end end -function xmllog.start() write_nl("<%s>" ) end -function xmllog.stop () write_nl("</%s>") end -function xmllog.push () write_nl("<!-- ") end -function xmllog.pop () write_nl(" -->" ) end - -function xmllog.start_run() - write_nl("<?xml version='1.0' standalone='yes'?>") - write_nl("<job>") -- xmlns='www.pragma-ade.com/luatex/schemas/context-job.rng' - write_nl("") -end - -function xmllog.stop_run() - write_nl("</job>") -end - -function xmllog.start_page_number() - write_nl(format("<p real='%s' page='%s' sub='%s'", texcount.realpageno, texcount.userpageno, texcount.subpageno)) -end - -function xmllog.stop_page_number() - write("/>") - write_nl("") -end +-- there may be scripts out there using this: -function xmllog.report_output_pages(p,b) - write_nl(format("<v k='pages' v='%s'/>", p)) - write_nl(format("<v k='bytes' v='%s'/>", b)) - write_nl("") -end - -function xmllog.report_output_log() - -- nothing -end +local simple = logs.reporter("comment") -function xmllog.report_tex_stat(k,v) - write_nl("log","<v k='"..k.."'>"..tostring(v).."</v>") -end - -local nesting = 0 - -function xmllog.show_open(name) - nesting = nesting + 1 - write_nl(format("<f l='%s' n='%s'>",nesting,name)) -end +logs.simple = simple +logs.simpleline = simple -function xmllog.show_close(name) - write("</f> ") - nesting = nesting - 1 -end - -function xmllog.show_load(name) - write_nl(format("<f l='%s' n='%s'/>",nesting+1,name)) -end - --- initialization - -if tex and (tex.jobname or tex.formatname) then - -- todo: this can be set in mtxrun ... or maybe we should just forget about this alternative format - if (os.getenv("mtx.directives.logmethod") or os.getenv("mtx_directives_logmethod")) == "xml" then - logs.setmethod('xml') - else - logs.setmethod('tex') - end -else - logs.setmethod('nop') -end +-- obsolete --- logging in runners -> these are actually the nop loggers +function logs.setprogram () end -- obsolete +function logs.extendbanner() end -- obsolete +function logs.reportlines () end -- obsolete +function logs.reportbanner() end -- obsolete +function logs.reportline () end -- obsolete +function logs.simplelines () end -- obsolete +function logs.help () end -- obsolete -local name, banner = 'report', 'context' +-- applications -function noplog.report(category,fmt,...) -- todo: fmt,s - if fmt then - write_nl(format("%s | %s: %s",name,category,format(fmt,...))) - elseif category then - write_nl(format("%s | %s",name,category)) - else - write_nl(format("%s |",name)) +local function reportlines(t,str) + if str then + for line in gmatch(str,"(.-)[\n\r]") do + t.report(line) + end end end -noplog.status = noplog.report -- just to be sure, never used - -function noplog.simple(fmt,...) -- todo: fmt,s - if fmt then - write_nl(format("%s | %s",name,format(fmt,...))) - else - write_nl(format("%s |",name)) +local function reportbanner(t) + local banner = t.banner + if banner then + t.report(banner) + t.report() end end -if utilities then - utilities.report = function(...) logs.simple(...) end -end - -function logs.setprogram(newname,newbanner) - name, banner = newname, newbanner -end - -function logs.extendbanner(newbanner) - banner = banner .. " | ".. newbanner -end - -function logs.reportlines(str) -- todo: <lines></lines> - for line in gmatch(str,"(.-)[\n\r]") do - logs.report(line) +local function reporthelp(t,...) + local helpinfo = t.helpinfo + if type(helpinfo) == "string" then + reportlines(t,helpinfo) + elseif type(helpinfo) == "table" then + local tags = { ... } + for i=1,#tags do + reportlines(t,t.helpinfo[tags[i]]) + if i < #tags then + t.report() + end + end end end -function logs.reportline() -- for scripts too - logs.report() -end - -function logs.simpleline() - logs.report() +local function reportinfo(t) + t.report() + reportlines(t,moreinfo) end -function logs.simplelines(str) -- todo: <lines></lines> - for line in gmatch(str,"(.-)[\n\r]") do - logs.simple(line) - end +function logs.application(t) + t.name = t.name or "unknown" + t.banner = t.banner + t.report = logs.reporter(t.name) + t.help = function(...) reportbanner(t) ; reporthelp(t,...) ; reportinfo(t) end + t.identify = function() reportbanner(t) end + return t end -function logs.reportbanner() -- for scripts too - logs.report(banner) -end - -function logs.help(message,option) - logs.reportbanner() - logs.reportline() - logs.reportlines(message) - if option ~= "nomoreinfo" then - logs.reportline() - logs.reportlines(moreinfo) - end -end +-- somewhat special -- logging to a file @@ -5281,7 +5340,7 @@ end function logs.system(whereto,process,jobname,category,...) local message = format("%s %s => %s => %s => %s\r",os.date("%d/%m/%y %H:%m:%S"),process,jobname,category,format(...)) for i=1,10 do - local f = io.open(whereto,"a") + local f = io.open(whereto,"a") -- we can consider keepint the file open if f then f:write(message) f:close() @@ -5292,30 +5351,24 @@ function logs.system(whereto,process,jobname,category,...) end end --- bonus - -function logs.fatal(where,...) - logs.report(where,"fatal error: %s, aborting now",format(...)) - os.exit() -end - +local report_system = logs.reporter("system","logs") function logs.obsolete(old,new) local o = loadstring("return " .. new)() if type(o) == "function" then return function(...) - logs.report("system","function %s is obsolete, use %s",old,new) + report_system("function %s is obsolete, use %s",old,new) loadstring(old .. "=" .. new .. " return ".. old)()(...) end elseif type(o) == "table" then local t, m = { }, { } m.__index = function(t,k) - logs.report("system","table %s is obsolete, use %s",old,new) + report_system("table %s is obsolete, use %s",old,new) m.__index, m.__newindex = o, o return o[k] end m.__newindex = function(t,k,v) - logs.report("system","table %s is obsolete, use %s",old,new) + report_system("table %s is obsolete, use %s",old,new) m.__index, m.__newindex = o, o o[k] = v end @@ -5327,6 +5380,10 @@ function logs.obsolete(old,new) end end +if utilities then + utilities.report = report_system +end + if tex and tex.error then function logs.texerrormessage(...) -- for the moment we put this function here tex.error(format(...), { }) @@ -5361,7 +5418,7 @@ local getmetatable, setmetatable, rawset, type = getmetatable, setmetatable, raw local trace_namespaces = false trackers.register("system.namespaces", function(v) trace_namespaces = v end) -local report_system = logs.new("system") +local report_system = logs.new("system","protection") namespaces = namespaces or { } local namespaces = namespaces @@ -5530,7 +5587,7 @@ if not modules then modules = { } end modules ['luat-env'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_lua = logs.new("resolvers","lua") local allocate, mark = utilities.storage.allocate, utilities.storage.mark @@ -5754,14 +5811,14 @@ function environment.luafilechunk(filename,silent) -- used for loading lua bytec if fullname and fullname ~= "" then local data = environment.loadedluacode(fullname) if trace_locating then - report_resolvers("loading file %s%s", fullname, not data and " failed" or "") + report_lua("loading file %s%s", fullname, not data and " failed" or "") elseif not silent then texio.write("<",data and "+ " or "- ",fullname,">") end return data else if trace_locating then - report_resolvers("unknown file %s", filename) + report_lua("unknown file %s", filename) end return nil end @@ -5781,7 +5838,7 @@ function environment.loadluafile(filename, version) local fullname = (lucname and environment.luafile(lucname)) or "" if fullname ~= "" then if trace_locating then - report_resolvers("loading %s", fullname) + report_lua("loading %s", fullname) end chunk = loadfile(fullname) -- this way we don't need a file exists check end @@ -5799,7 +5856,7 @@ function environment.loadluafile(filename, version) return true else if trace_locating then - report_resolvers("version mismatch for %s: lua=%s, luc=%s", filename, v, version) + report_lua("version mismatch for %s: lua=%s, luc=%s", filename, v, version) end environment.loadluafile(filename) end @@ -5810,12 +5867,12 @@ function environment.loadluafile(filename, version) fullname = (luaname and environment.luafile(luaname)) or "" if fullname ~= "" then if trace_locating then - report_resolvers("loading %s", fullname) + report_lua("loading %s", fullname) end chunk = loadfile(fullname) -- this way we don't need a file exists check if not chunk then if trace_locating then - report_resolvers("unknown file %s", filename) + report_lua("unknown file %s", filename) end else assert(chunk)() @@ -5844,7 +5901,7 @@ if not modules then modules = { } end modules ['lxml-tab'] = { local trace_entities = false trackers.register("xml.entities", function(v) trace_entities = v end) -local report_xml = logs.new("xml") +local report_xml = logs and logs.new("xml","core") or function(...) print(format(...)) end --[[ldx-- <p>The parser used here is inspired by the variant discussed in the lua book, but @@ -6518,7 +6575,7 @@ function xml.is_valid(root) return root and not root.error end -xml.errorhandler = (logs and logs.report) or (input and logs.report) or print +xml.errorhandler = report --[[ldx-- <p>We cannot load an <l n='lpeg'/> from a filehandle so we need to load @@ -7069,7 +7126,7 @@ local trace_lpath = false if trackers then trackers.register("xml.path", local trace_lparse = false if trackers then trackers.register("xml.parse", function(v) trace_lparse = v end) end local trace_lprofile = false if trackers then trackers.register("xml.profile", function(v) trace_lpath = v trace_lparse = v trace_lprofile = v end) end -local report_lpath = logs.new("lpath") +local report_lpath = logs.new("xml","lpath") --[[ldx-- <p>We've now arrived at an interesting part: accessing the tree using a subset @@ -7951,9 +8008,9 @@ local function traced_apply(list,parsed,nofparsed,order) if trace_lparse then lshow(parsed) end - report_lpath("collecting : %s",parsed.pattern) - report_lpath(" root tags : %s",tagstostring(list)) - report_lpath(" order : %s",order or "unset") + report_lpath("collecting: %s",parsed.pattern) + report_lpath("root tags : %s",tagstostring(list)) + report_lpath("order : %s",order or "unset") local collected = list for i=1,nofparsed do local pi = parsed[i] @@ -9224,7 +9281,7 @@ local trace_locating = false trackers.register("resolvers.locating", functi local trace_detail = false trackers.register("resolvers.details", function(v) trace_detail = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_initialization = logs.new("resolvers","initialization") local ostype, osname, ossetenv, osgetenv = os.type, os.name, os.setenv, os.getenv @@ -9245,7 +9302,7 @@ kpse = { original = kpse } setmetatable(kpse, { __index = function(kp,name) - report_resolvers("fatal error: kpse library is accessed (key: %s)",name) + report_initialization("fatal error: kpse library is accessed (key: %s)",name) os.exit() end } ) @@ -9329,13 +9386,13 @@ do if lfs.chdir(p) then local pp = lfs.currentdir() if trace_locating and p ~= pp then - report_resolvers("following symlink '%s' to '%s'",p,pp) + report_initialization("following symlink '%s' to '%s'",p,pp) end ownpath = pp lfs.chdir(olddir) else if trace_locating then - report_resolvers("unable to check path '%s'",p) + report_initialization("unable to check path '%s'",p) end ownpath = p end @@ -9346,9 +9403,9 @@ do end if not ownpath or ownpath == "" then ownpath = "." - report_resolvers("forcing fallback ownpath .") + report_initialization("forcing fallback ownpath .") elseif trace_locating then - report_resolvers("using ownpath '%s'",ownpath) + report_initialization("using ownpath '%s'",ownpath) end end @@ -9375,7 +9432,7 @@ do ossetenv('SELFAUTODIR', file.collapsepath(ownpath .. "/..")) ossetenv('SELFAUTOPARENT', file.collapsepath(ownpath .. "/../..")) else - report_resolvers("error: unable to locate ownpath") + report_initialization("error: unable to locate ownpath") os.exit() end @@ -9461,7 +9518,7 @@ local collapsepath = file.collapsepath local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_expansions = logs.new("resolvers","expansions") local resolvers = resolvers @@ -9524,7 +9581,7 @@ local replacer_1 = lpeg.replacer { { ",}", ",@}" }, { "{,", "{@," }, } local function splitpathexpr(str, newlist, validate) -- I couldn't resist lpegging it (nice exercise). if trace_expansions then - report_resolvers("expanding variable '%s'",str) + report_expansions("expanding variable '%s'",str) end local t, ok, done = newlist or { }, false, false local n = #t @@ -9550,7 +9607,7 @@ local function splitpathexpr(str, newlist, validate) -- I couldn't resist lpeggi end if trace_expansions then for k=1,#t do - report_resolvers("% 4i: %s",k,t[k]) + report_expansions("% 4i: %s",k,t[k]) end end return t @@ -9585,7 +9642,7 @@ function resolvers.cleanpath(str) homedir = lpegmatch(cleanup,environment.homedir or "") if homedir == string.char(127) or homedir == "" or not lfs.isdir(homedir) then if trace_expansions then - report_resolvers("no home dir set, ignoring dependent paths") + report_expansions("no home dir set, ignoring dependent paths") end function resolvers.cleanpath(str) if find(str,"~") then @@ -9655,9 +9712,9 @@ local function splitconfigurationpath(str) -- beware, this can be either a path end end if trace_expansions then - report_resolvers("splitting path specification '%s'",str) + report_expansions("splitting path specification '%s'",str) for k=1,noffound do - report_resolvers("% 4i: %s",k,found[k]) + report_expansions("% 4i: %s",k,found[k]) end end cache[str] = found @@ -9742,7 +9799,7 @@ end function resolvers.scanfiles(path,branch) if trace_locating then - report_resolvers("scanning path '%s', branch '%s'",path, branch or path) + report_expansions("scanning path '%s', branch '%s'",path, branch or path) end local realpath = resolvers.resolve(path) -- no shortcut local files, n, m, r = scan({ },realpath .. '/',"",0,0,0) @@ -9751,7 +9808,7 @@ function resolvers.scanfiles(path,branch) files.__directories__ = m files.__remappings__ = r if trace_locating then - report_resolvers("%s files found on %s directories with %s uppercase remappings",n,m,r) + report_expansions("%s files found on %s directories with %s uppercase remappings",n,m,r) end return files end @@ -10080,8 +10137,8 @@ local mkdirs, isdir = dir.mkdirs, lfs.isdir local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end) -local report_cache = logs.new("cache") -local report_resolvers = logs.new("resolvers") +local report_caches = logs.new("resolvers","caches") +local report_resolvers = logs.new("resolvers","caching") local resolvers = resolvers @@ -10141,7 +10198,7 @@ local function identify() if not caches.ask or io.ask(format("\nShould I create the cache path %s?",cachepath), "no", { "yes", "no" }) == "yes" then mkdirs(cachepath) if isdir(cachepath) and file.is_writable(cachepath) then - report_cache("created: %s",cachepath) + report_caches("created: %s",cachepath) writable = cachepath readables[#readables+1] = cachepath end @@ -10175,10 +10232,10 @@ local function identify() -- Some extra checking. If we have no writable or readable path then we simply -- quit. if not writable then - report_cache("fatal error: there is no valid writable cache path defined") + report_caches("fatal error: there is no valid writable cache path defined") os.exit() elseif #readables == 0 then - report_cache("fatal error: there is no valid readable cache path defined") + report_caches("fatal error: there is no valid readable cache path defined") os.exit() end -- why here @@ -10200,9 +10257,9 @@ local function identify() -- end if trace_cache then for i=1,#readables do - report_cache("using readable path '%s' (order %s)",readables[i],i) + report_caches("using readable path '%s' (order %s)",readables[i],i) end - report_cache("using writable path '%s'",writable) + report_caches("using writable path '%s'",writable) end identify = function() return writable, readables @@ -10237,7 +10294,7 @@ function caches.hashed(tree) tree = lower(tree) local hash = md5.hex(tree) if trace_cache or trace_locating then - report_cache("hashing tree %s, hash %s",tree,hash) + report_caches("hashing tree %s, hash %s",tree,hash) end return hash end @@ -10463,7 +10520,7 @@ trackers.register("resolvers.locating", function(v) trace_methods = v end) trackers.register("resolvers.methods", function(v) trace_methods = v end) -local report_resolvers = logs.new("resolvers") +local report_methods = logs.new("resolvers","methods") local allocate = utilities.storage.allocate @@ -10505,41 +10562,41 @@ local function methodhandler(what,first,...) -- filename can be nil or false local resolver = namespace and namespace[scheme] if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, scheme=%s, argument=%s",what,how,scheme,first) + report_methods("resolver: method=%s, how=%s, scheme=%s, argument=%s",what,how,scheme,first) end return resolver(specification,...) else resolver = namespace.default or namespace.file if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, default, argument=%s",what,how,first) + report_methods("resolver: method=%s, how=%s, default, argument=%s",what,how,first) end return resolver(specification,...) elseif trace_methods then - report_resolvers("resolver: method=%s, how=%s, no handler",what,how) + report_methods("resolver: method=%s, how=%s, no handler",what,how) end end elseif how == "tag" then local resolver = namespace and namespace[first] if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, tag=%s",what,how,first) + report_methods("resolver: method=%s, how=%s, tag=%s",what,how,first) end return resolver(...) else resolver = namespace.default or namespace.file if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, default",what,how) + report_methods("resolver: method=%s, how=%s, default",what,how) end return resolver(...) elseif trace_methods then - report_resolvers("resolver: method=%s, how=%s, unknown",what,how) + report_methods("resolver: method=%s, how=%s, unknown",what,how) end end end else - report_resolvers("resolver: method=%s, unknown",what) + report_methods("resolver: method=%s, unknown",what) end end @@ -10610,7 +10667,7 @@ local trace_locating = false trackers.register("resolvers.locating", functi local trace_detail = false trackers.register("resolvers.details", function(v) trace_detail = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_resolving = logs.new("resolvers","resolving") local resolvers = resolvers @@ -10712,7 +10769,7 @@ end function resolvers.newinstance() -- todo: all vars will become lowercase and alphanum only if trace_locating then - report_resolvers("creating instance") + report_resolving("creating instance") end local environment, variables, expansions, order = allocate(), allocate(), allocate(), allocate() @@ -10830,9 +10887,9 @@ local function reportcriticalvariables() for i=1,#resolvers.criticalvars do local k = resolvers.criticalvars[i] local v = resolvers.getenv(k) or "unknown" -- this one will not resolve ! - report_resolvers("variable '%s' set to '%s'",k,v) + report_resolving("variable '%s' set to '%s'",k,v) end - report_resolvers() + report_resolving() end reportcriticalvariables = function() end end @@ -10856,17 +10913,17 @@ local function identify_configuration_files() if lfs.isfile(realname) then specification[#specification+1] = filename if trace_locating then - report_resolvers("found configuration file '%s'",realname) + report_resolving("found configuration file '%s'",realname) end elseif trace_locating then - report_resolvers("unknown configuration file '%s'",realname) + report_resolving("unknown configuration file '%s'",realname) end end if trace_locating then - report_resolvers() + report_resolving() end elseif trace_locating then - report_resolvers("configuration files already identified") + report_resolving("configuration files already identified") end end @@ -10886,8 +10943,8 @@ local function load_configuration_files() data = data and data.content if data then if trace_locating then - report_resolvers("loading configuration file '%s'",filename) - report_resolvers() + report_resolving("loading configuration file '%s'",filename) + report_resolving() end local variables = data.variables or { } local warning = false @@ -10897,7 +10954,7 @@ local function load_configuration_files() initializesetter(filename,k,v) elseif variables[k] == nil then if trace_locating and not warning then - report_resolvers("variables like '%s' in configuration file '%s' should move to the 'variables' subtable", + report_resolving("variables like '%s' in configuration file '%s' should move to the 'variables' subtable", k,resolvers.resolve(filename)) warning = true end @@ -10910,7 +10967,7 @@ local function load_configuration_files() local cnfspec = variables["TEXMFCNF"] if cnfspec then if trace_locating then - report_resolvers("reloading configuration due to TEXMF redefinition") + report_resolving("reloading configuration due to TEXMF redefinition") end -- we push the value into the main environment (osenv) so -- that it takes precedence over the default one and therefore @@ -10929,13 +10986,13 @@ local function load_configuration_files() else if trace_locating then - report_resolvers("skipping configuration file '%s' (no content)",filename) + report_resolving("skipping configuration file '%s' (no content)",filename) end setups[pathname] = { } instance.loaderror = true end elseif trace_locating then - report_resolvers("skipping configuration file '%s' (no file)",filename) + report_resolving("skipping configuration file '%s' (no file)",filename) end instance.order[#instance.order+1] = instance.setups[pathname] if instance.loaderror then @@ -10943,7 +11000,7 @@ local function load_configuration_files() end end elseif trace_locating then - report_resolvers("warning: no lua configuration files found") + report_resolving("warning: no lua configuration files found") end end @@ -10979,19 +11036,19 @@ local function locate_file_databases() end if trace_locating then if runtime then - report_resolvers("locating list of '%s' (runtime)",path) + report_resolving("locating list of '%s' (runtime)",path) else - report_resolvers("locating list of '%s' (cached)",path) + report_resolving("locating list of '%s' (cached)",path) end end methodhandler('locators',stripped) end end if trace_locating then - report_resolvers() + report_resolving() end elseif trace_locating then - report_resolvers("no texmf paths are defined (using TEXMF)") + report_resolving("no texmf paths are defined (using TEXMF)") end end @@ -11002,7 +11059,7 @@ local function generate_file_databases() methodhandler('generators',hash.name) end if trace_locating then - report_resolvers() + report_resolving() end end @@ -11014,11 +11071,11 @@ local function save_file_databases() -- will become cachers local content = instance.files[cachename] caches.collapsecontent(content) if trace_locating then - report_resolvers("saving tree '%s'",cachename) + report_resolving("saving tree '%s'",cachename) end caches.savecontent(cachename,"files",content) elseif trace_locating then - report_resolvers("not saving runtime tree '%s'",cachename) + report_resolving("not saving runtime tree '%s'",cachename) end end end @@ -11043,7 +11100,7 @@ function resolvers.appendhash(type,name,cache) -- safeguard ... tricky as it's actually a bug when seen twice if not instance.hashed[name] then if trace_locating then - report_resolvers("hash '%s' appended",name) + report_resolving("hash '%s' appended",name) end insert(instance.hashes, { type = type, name = name, cache = cache } ) instance.hashed[name] = cache @@ -11054,7 +11111,7 @@ function resolvers.prependhash(type,name,cache) -- safeguard ... tricky as it's actually a bug when seen twice if not instance.hashed[name] then if trace_locating then - report_resolvers("hash '%s' prepended",name) + report_resolving("hash '%s' prepended",name) end insert(instance.hashes, 1, { type = type, name = name, cache = cache } ) instance.hashed[name] = cache @@ -11287,9 +11344,9 @@ function isreadable(name) local readable = lfs.isfile(name) -- not file.is_readable(name) asit can be a dir if trace_detail then if readable then - report_resolvers("file '%s' is readable",name) + report_resolving("file '%s' is readable",name) else - report_resolvers("file '%s' is not readable", name) + report_resolving("file '%s' is not readable", name) end end return readable @@ -11303,7 +11360,7 @@ local function collect_files(names) for k=1,#names do local fname = names[k] if trace_detail then - report_resolvers("checking name '%s'",fname) + report_resolving("checking name '%s'",fname) end local bname = filebasename(fname) local dname = filedirname(fname) @@ -11319,7 +11376,7 @@ local function collect_files(names) local files = blobpath and instance.files[blobpath] if files then if trace_detail then - report_resolvers("deep checking '%s' (%s)",blobpath,bname) + report_resolving("deep checking '%s' (%s)",blobpath,bname) end local blobfile = files[bname] if not blobfile then @@ -11339,7 +11396,7 @@ local function collect_files(names) local search = filejoin(blobroot,blobfile,bname) local result = methodhandler('concatinators',hash.type,blobroot,blobfile,bname) if trace_detail then - report_resolvers("match: kind '%s', search '%s', result '%s'",kind,search,result) + report_resolving("match: kind '%s', search '%s', result '%s'",kind,search,result) end noffiles = noffiles + 1 filelist[noffiles] = { kind, search, result } @@ -11353,7 +11410,7 @@ local function collect_files(names) local search = filejoin(blobroot,vv,bname) local result = methodhandler('concatinators',hash.type,blobroot,vv,bname) if trace_detail then - report_resolvers("match: kind '%s', search '%s', result '%s'",kind,search,result) + report_resolving("match: kind '%s', search '%s', result '%s'",kind,search,result) end noffiles = noffiles + 1 filelist[noffiles] = { kind, search, result } @@ -11362,7 +11419,7 @@ local function collect_files(names) end end elseif trace_locating then - report_resolvers("no match in '%s' (%s)",blobpath,bname) + report_resolving("no match in '%s' (%s)",blobpath,bname) end end end @@ -11403,7 +11460,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : stamp = filename .. "--" .. askedformat if instance.found[stamp] then if trace_locating then - report_resolvers("remembered file '%s'",filename) + report_resolving("remembered file '%s'",filename) end resolvers.registerintrees(filename) -- for tracing used files return instance.found[stamp] @@ -11412,7 +11469,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : if not dangerous[askedformat] then if isreadable(filename) then if trace_detail then - report_resolvers("file '%s' found directly",filename) + report_resolving("file '%s' found directly",filename) end if stamp then instance.found[stamp] = { filename } @@ -11422,13 +11479,13 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end if find(filename,'%*') then if trace_locating then - report_resolvers("checking wildcard '%s'", filename) + report_resolving("checking wildcard '%s'", filename) end result = resolvers.findwildcardfiles(filename) -- we can use th elocal elseif file.is_qualified_path(filename) then if isreadable(filename) then if trace_locating then - report_resolvers("qualified name '%s'", filename) + report_resolving("qualified name '%s'", filename) end result = { filename } else @@ -11441,7 +11498,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : forcedname = filename .. "." .. s if isreadable(forcedname) then if trace_locating then - report_resolvers("no suffix, forcing format filetype '%s'", s) + report_resolving("no suffix, forcing format filetype '%s'", s) end result, ok = { forcedname }, true break @@ -11494,7 +11551,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : -- end end if not ok and trace_locating then - report_resolvers("qualified name '%s'", filename) + report_resolving("qualified name '%s'", filename) end end else @@ -11513,13 +11570,13 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : wantedfiles[#wantedfiles+1] = forcedname filetype = resolvers.formatofsuffix(forcedname) if trace_locating then - report_resolvers("forcing filetype '%s'",filetype) + report_resolving("forcing filetype '%s'",filetype) end end else filetype = resolvers.formatofsuffix(filename) if trace_locating then - report_resolvers("using suffix based filetype '%s'",filetype) + report_resolving("using suffix based filetype '%s'",filetype) end end else @@ -11533,7 +11590,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end filetype = askedformat if trace_locating then - report_resolvers("using given filetype '%s'",filetype) + report_resolving("using given filetype '%s'",filetype) end end local typespec = resolvers.variableofformat(filetype) @@ -11541,7 +11598,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : if not pathlist or #pathlist == 0 then -- no pathlist, access check only / todo == wildcard if trace_detail then - report_resolvers("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) + report_resolving("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) end for k=1,#wantedfiles do local fname = wantedfiles[k] @@ -11569,7 +11626,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end end if trace_detail then - report_resolvers("checking filename '%s'",filename) + report_resolving("checking filename '%s'",filename) end for k=1,#pathlist do local path = pathlist[k] @@ -11581,7 +11638,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : -- compare list entries with permitted pattern -- /xx /xx// local expression = makepathexpression(pathname) if trace_detail then - report_resolvers("using pattern '%s' for path '%s'",expression,pathname) + report_resolving("using pattern '%s' for path '%s'",expression,pathname) end for k=1,#filelist do local fl = filelist[k] @@ -11593,16 +11650,16 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : done = true if allresults then if trace_detail then - report_resolvers("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) + report_resolving("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) end else if trace_detail then - report_resolvers("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) + report_resolving("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) end break end elseif trace_detail then - report_resolvers("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) + report_resolving("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) end end end @@ -11619,7 +11676,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : local fname = filejoin(ppname,w) if isreadable(fname) then if trace_detail then - report_resolvers("found '%s' by scanning",fname) + report_resolving("found '%s' by scanning",fname) end result[#result+1] = fname done = true @@ -11824,7 +11881,7 @@ end local function report(str) if trace_locating then - report_resolvers(str) -- has already verbose + report_resolving(str) -- has already verbose else print(str) end @@ -12219,7 +12276,7 @@ if not modules then modules = { } end modules ['data-fil'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_files = logs.new("resolvers","files") local resolvers = resolvers @@ -12233,11 +12290,11 @@ function locators.file(specification) local realname = resolvers.resolve(name) -- no shortcut if realname and realname ~= '' and lfs.isdir(realname) then if trace_locating then - report_resolvers("file locator '%s' found as '%s'",name,realname) + report_files("file locator '%s' found as '%s'",name,realname) end resolvers.appendhash('file',name,true) -- cache elseif trace_locating then - report_resolvers("file locator '%s' not found",name) + report_files("file locator '%s' not found",name) end end @@ -12260,12 +12317,12 @@ function finders.file(specification,filetype) local foundname = resolvers.findfile(filename,filetype) if foundname and foundname ~= "" then if trace_locating then - report_resolvers("file finder: '%s' found",filename) + report_files("file finder: '%s' found",filename) end return foundname else if trace_locating then - report_resolvers("file finder: %s' not found",filename) + report_files("file finder: %s' not found",filename) end return finders.notfound() end @@ -12286,13 +12343,13 @@ function openers.file(specification,filetype) local f = io.open(filename,"r") if f then if trace_locating then - report_resolvers("file opener, '%s' opened",filename) + report_files("file opener, '%s' opened",filename) end return openers.helpers.textopener("file",filename,f) end end if trace_locating then - report_resolvers("file opener, '%s' not found",filename) + report_files("file opener, '%s' not found",filename) end return openers.notfound() end @@ -12304,7 +12361,7 @@ function loaders.file(specification,filetype) if f then logs.show_load(filename) if trace_locating then - report_resolvers("file loader, '%s' loaded",filename) + report_files("file loader, '%s' loaded",filename) end local s = f:read("*a") if checkgarbage then @@ -12317,7 +12374,7 @@ function loaders.file(specification,filetype) end end if trace_locating then - report_resolvers("file loader, '%s' not found",filename) + report_files("file loader, '%s' not found",filename) end return loaders.notfound() end @@ -12358,11 +12415,11 @@ containers = containers or { } local containers = containers containers.usecache = true -local report_cache = logs.new("cache") +local report_containers = logs.new("resolvers","containers") local function report(container,tag,name) if trace_cache or trace_containers then - report_cache("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') + report_containers("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') end end @@ -12480,7 +12537,7 @@ local format, lower, gsub, find = string.format, string.lower, string.gsub, stri local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_mounts = logs.new("resolvers","mounts") local resolvers = resolvers @@ -12505,7 +12562,7 @@ function resolvers.automount(usecache) -- skip elseif find(line,"^zip://") then if trace_locating then - report_resolvers("mounting %s",line) + report_mounts("mounting %s",line) end table.insert(resolvers.automounted,line) resolvers.usezipfile(line) @@ -12585,7 +12642,7 @@ local format, find, match = string.format, string.find, string.match local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_zip = logs.new("resolvers","zip") -- zip:///oeps.zip?name=bla/bla.tex -- zip:///oeps.zip?tree=tex/texmf-local @@ -12638,9 +12695,9 @@ function resolvers.locators.zip(specification) local zipfile = archive and archive ~= "" and zip.openarchive(archive) -- tricky, could be in to be initialized tree if trace_locating then if zipfile then - report_resolvers("zip locator, archive '%s' found",archive) + report_zip("locator, archive '%s' found",archive) else - report_resolvers("zip locator, archive '%s' not found",archive) + report_zip("locator, archive '%s' not found",archive) end end end @@ -12648,7 +12705,7 @@ end function resolvers.hashers.zip(specification) local archive = specification.filename if trace_locating then - report_resolvers("loading zip file '%s'",archive) + report_zip("loading file '%s'",archive) end resolvers.usezipfile(specification.original) end @@ -12671,25 +12728,25 @@ function resolvers.finders.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip finder, archive '%s' found",archive) + report_zip("finder, archive '%s' found",archive) end local dfile = zfile:open(queryname) if dfile then dfile = zfile:close() if trace_locating then - report_resolvers("zip finder, file '%s' found",queryname) + report_zip("finder, file '%s' found",queryname) end return specification.original elseif trace_locating then - report_resolvers("zip finder, file '%s' not found",queryname) + report_zip("finder, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip finder, unknown archive '%s'",archive) + report_zip("finder, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip finder, '%s' not found",original) + report_zip("finder, '%s' not found",original) end return resolvers.finders.notfound() end @@ -12704,24 +12761,24 @@ function resolvers.openers.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip opener, archive '%s' opened",archive) + report_zip("opener, archive '%s' opened",archive) end local dfile = zfile:open(queryname) if dfile then if trace_locating then - report_resolvers("zip opener, file '%s' found",queryname) + report_zip("opener, file '%s' found",queryname) end return resolvers.openers.helpers.textopener('zip',original,dfile) elseif trace_locating then - report_resolvers("zip opener, file '%s' not found",queryname) + report_zip("opener, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip opener, unknown archive '%s'",archive) + report_zip("opener, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip opener, '%s' not found",original) + report_zip("opener, '%s' not found",original) end return resolvers.openers.notfound() end @@ -12736,27 +12793,27 @@ function resolvers.loaders.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip loader, archive '%s' opened",archive) + report_zip("loader, archive '%s' opened",archive) end local dfile = zfile:open(queryname) if dfile then logs.show_load(original) if trace_locating then - report_resolvers("zip loader, file '%s' loaded",original) + report_zip("loader, file '%s' loaded",original) end local s = dfile:read("*all") dfile:close() return true, s, #s elseif trace_locating then - report_resolvers("zip loader, file '%s' not found",queryname) + report_zip("loader, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip loader, unknown archive '%s'",archive) + report_zip("loader, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip loader, '%s' not found",original) + report_zip("loader, '%s' not found",original) end return resolvers.openers.notfound() end @@ -12772,7 +12829,7 @@ function resolvers.usezipfile(archive) if z then local tree = url.query(specification.query).tree or "" if trace_locating then - report_resolvers("zip registering, registering archive '%s'",archive) + report_zip("registering, registering archive '%s'",archive) end statistics.starttiming(resolvers.instance) resolvers.prependhash('zip',archive) @@ -12781,10 +12838,10 @@ function resolvers.usezipfile(archive) instance.files[archive] = resolvers.registerzipfile(z,tree) statistics.stoptiming(resolvers.instance) elseif trace_locating then - report_resolvers("zip registering, unknown archive '%s'",archive) + report_zip("registering, unknown archive '%s'",archive) end elseif trace_locating then - report_resolvers("zip registering, '%s' not found",archive) + report_zip("registering, '%s' not found",archive) end end @@ -12796,7 +12853,7 @@ function resolvers.registerzipfile(z,tree) filter = format("^%s/(.+)/(.-)$",tree) end if trace_locating then - report_resolvers("zip registering, using filter '%s'",filter) + report_zip("registering, using filter '%s'",filter) end local register, n = resolvers.registerfile, 0 for i in z:files() do @@ -12813,7 +12870,7 @@ function resolvers.registerzipfile(z,tree) n = n + 1 end end - report_resolvers("zip registering, %s files registered",n) + report_zip("registering, %s files registered",n) return files end @@ -12836,7 +12893,7 @@ local find, gsub, format = string.find, string.gsub, string.format local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_trees = logs.new("resolvers","trees") local resolvers = resolvers @@ -12874,18 +12931,18 @@ function resolvers.locators.tree(specification) local name = specification.filename if name ~= '' and lfs.isdir(name) then if trace_locating then - report_resolvers("tree locator '%s' found",name) + report_trees("locator '%s' found",name) end resolvers.appendhash('tree',name,false) -- don't cache elseif trace_locating then - report_resolvers("tree locator '%s' not found",name) + report_trees("locator '%s' not found",name) end end function resolvers.hashers.tree(specification) local name = specification.filename if trace_locating then - report_resolvers("analysing tree '%s'",name) + report_trees("analysing '%s'",name) end resolvers.methodhandler("hashers",name) end @@ -12981,7 +13038,7 @@ if not modules then modules = { } end modules ['data-lua'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_libraries = logs.new("resolvers","libraries") local gsub, insert = string.gsub, table.insert local unpack = unpack or table.unpack @@ -13013,7 +13070,7 @@ local function thepath(...) local t = { ... } t[#t+1] = "?.lua" local path = file.join(unpack(t)) if trace_locating then - report_resolvers("! appending '%s' to 'package.path'",path) + report_libraries("! appending '%s' to 'package.path'",path) end return path end @@ -13035,11 +13092,11 @@ local function loaded(libpaths,name,simple) local libpath = libpaths[i] local resolved = gsub(libpath,"%?",simple) if trace_locating then -- more detail - report_resolvers("! checking for '%s' on 'package.path': '%s' => '%s'",simple,libpath,resolved) + report_libraries("! checking for '%s' on 'package.path': '%s' => '%s'",simple,libpath,resolved) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'package.path': '%s'",name,resolved) + report_libraries("! lib '%s' located via 'package.path': '%s'",name,resolved) end return loadfile(resolved) end @@ -13048,17 +13105,17 @@ end package.loaders[2] = function(name) -- was [#package.loaders+1] if trace_locating then -- mode detail - report_resolvers("! locating '%s'",name) + report_libraries("! locating '%s'",name) end for i=1,#libformats do local format = libformats[i] local resolved = resolvers.findfile(name,format) or "" if trace_locating then -- mode detail - report_resolvers("! checking for '%s' using 'libformat path': '%s'",name,format) + report_libraries("! checking for '%s' using 'libformat path': '%s'",name,format) end if resolved ~= "" then if trace_locating then - report_resolvers("! lib '%s' located via environment: '%s'",name,resolved) + report_libraries("! lib '%s' located via environment: '%s'",name,resolved) end return loadfile(resolved) end @@ -13081,11 +13138,11 @@ package.loaders[2] = function(name) -- was [#package.loaders+1] local path = paths[p] local resolved = file.join(path,libname) if trace_locating then -- mode detail - report_resolvers("! checking for '%s' using 'clibformat path': '%s'",libname,path) + report_libraries("! checking for '%s' using 'clibformat path': '%s'",libname,path) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'clibformat': '%s'",libname,resolved) + report_libraries("! lib '%s' located via 'clibformat': '%s'",libname,resolved) end return package.loadlib(resolved,name) end @@ -13095,28 +13152,28 @@ package.loaders[2] = function(name) -- was [#package.loaders+1] local libpath = clibpaths[i] local resolved = gsub(libpath,"?",simple) if trace_locating then -- more detail - report_resolvers("! checking for '%s' on 'package.cpath': '%s'",simple,libpath) + report_libraries("! checking for '%s' on 'package.cpath': '%s'",simple,libpath) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'package.cpath': '%s'",name,resolved) + report_libraries("! lib '%s' located via 'package.cpath': '%s'",name,resolved) end return package.loadlib(resolved,name) end end -- just in case the distribution is messed up if trace_loading then -- more detail - report_resolvers("! checking for '%s' using 'luatexlibs': '%s'",name) + report_libraries("! checking for '%s' using 'luatexlibs': '%s'",name) end local resolved = resolvers.findfile(file.basename(name),'luatexlibs') or "" if resolved ~= "" then if trace_locating then - report_resolvers("! lib '%s' located by basename via environment: '%s'",name,resolved) + report_libraries("! lib '%s' located by basename via environment: '%s'",name,resolved) end return loadfile(resolved) end if trace_locating then - report_resolvers('? unable to locate lib: %s',name) + report_libraries('? unable to locate lib: %s',name) end -- return "unable to locate " .. name end @@ -13153,48 +13210,48 @@ local trace_locating = false trackers.register("resolvers.locating", function(v local resolvers = resolvers -local report_resolvers = logs.new("resolvers") +local report_scripts = logs.new("resolvers","scripts") function resolvers.updatescript(oldname,newname) -- oldname -> own.name, not per se a suffix local scriptpath = "scripts/context/lua" newname = file.addsuffix(newname,"lua") local oldscript = resolvers.cleanpath(oldname) if trace_locating then - report_resolvers("to be replaced old script %s", oldscript) + report_scripts("to be replaced old script %s", oldscript) end local newscripts = resolvers.findfiles(newname) or { } if #newscripts == 0 then if trace_locating then - report_resolvers("unable to locate new script") + report_scripts("unable to locate new script") end else for i=1,#newscripts do local newscript = resolvers.cleanpath(newscripts[i]) if trace_locating then - report_resolvers("checking new script %s", newscript) + report_scripts("checking new script %s", newscript) end if oldscript == newscript then if trace_locating then - report_resolvers("old and new script are the same") + report_scripts("old and new script are the same") end elseif not find(newscript,scriptpath) then if trace_locating then - report_resolvers("new script should come from %s",scriptpath) + report_scripts("new script should come from %s",scriptpath) end elseif not (find(oldscript,file.removesuffix(newname).."$") or find(oldscript,newname.."$")) then if trace_locating then - report_resolvers("invalid new script name") + report_scripts("invalid new script name") end else local newdata = io.loaddata(newscript) if newdata then if trace_locating then - report_resolvers("old script content replaced by new content") + report_scripts("old script content replaced by new content") end io.savedata(oldscript,newdata) break elseif trace_locating then - report_resolvers("unable to load new script") + report_scripts("unable to load new script") end end end @@ -13216,6 +13273,8 @@ if not modules then modules = { } end modules ['data-tmf'] = { local resolvers = resolvers +local report_tds = logs.new("resolvers","tds") + -- = << -- ? ?? -- < += @@ -13236,11 +13295,11 @@ function resolvers.load_tree(tree,resolve) local newpath = file.join(newtree,"bin") if not lfs.isdir(newtree) then - logs.simple("no '%s' under tree %s",texos,tree) + report_tds("no '%s' under tree %s",texos,tree) os.exit() end if not lfs.isdir(newpath) then - logs.simple("no '%s/bin' under tree %s",texos,tree) + report_tds("no '%s/bin' under tree %s",texos,tree) os.exit() end @@ -13264,9 +13323,9 @@ function resolvers.load_tree(tree,resolve) setenv('TEXMFCNF', resolvers.luacnfspec, not resolve) setenv("PATH", newpath .. io.pathseparator .. getenv("PATH")) - logs.simple("changing from root '%s' to '%s'",oldroot,newroot) - logs.simple("prepending '%s' to binary path",newpath) - logs.simple() + report_tds("changing from root '%s' to '%s'",oldroot,newroot) + report_tds("prepending '%s' to binary path",newpath) + report_tds() end end @@ -13291,6 +13350,8 @@ resolvers.listers = resolvers.listers or { } local resolvers = resolvers +local report_lists = logs.new("resolvers","lists") + local function tabstr(str) if type(str) == 'table' then return concat(str," | ") @@ -13319,11 +13380,11 @@ function resolvers.listers.variables(pattern) local exp = table.fastcopy(expansions) for key, value in table.sortedpairs(configured) do if key ~= "" and (pattern == "" or find(upper(key),pattern)) then - logs.simple(key) - logs.simple(" env: %s",tabstr(rawget(environment,key)) or "unset") - logs.simple(" var: %s",tabstr(configured[key]) or "unset") - logs.simple(" exp: %s",tabstr(expansions[key]) or "unset") - logs.simple(" res: %s",resolvers.resolve(expansions[key]) or "unset") + report_lists(key) + report_lists(" env: %s",tabstr(rawget(environment,key)) or "unset") + report_lists(" var: %s",tabstr(configured[key]) or "unset") + report_lists(" exp: %s",tabstr(expansions[key]) or "unset") + report_lists(" res: %s",resolvers.resolve(expansions[key]) or "unset") end end instance.environment = table.fastcopy(env) @@ -13477,6 +13538,8 @@ if not modules then modules = { } end modules ['luat-fmt'] = { local format = string.format +local report_format = logs.new("resolvers","formats") + -- helper for mtxrun local quoted = string.quoted @@ -13501,7 +13564,7 @@ function environment.make_format(name) if path ~= "" then lfs.chdir(path) end - logs.simple("format path: %s",lfs.currentdir()) + report_format("format path: %s",lfs.currentdir()) -- check source file local texsourcename = file.addsuffix(name,"mkiv") local fulltexsourcename = resolvers.findfile(texsourcename,"tex") or "" @@ -13510,11 +13573,11 @@ function environment.make_format(name) fulltexsourcename = resolvers.findfile(texsourcename,"tex") or "" end if fulltexsourcename == "" then - logs.simple("no tex source file with name: %s (mkiv or tex)",name) + report_format("no tex source file with name: %s (mkiv or tex)",name) lfs.chdir(olddir) return else - logs.simple("using tex source file: %s",fulltexsourcename) + report_format("using tex source file: %s",fulltexsourcename) end local texsourcepath = dir.expandname(file.dirname(fulltexsourcename)) -- really needed -- check specification @@ -13525,7 +13588,7 @@ function environment.make_format(name) fullspecificationname = resolvers.findfile(specificationname,"tex") or "" end if fullspecificationname == "" then - logs.simple("unknown stub specification: %s",specificationname) + report_format("unknown stub specification: %s",specificationname) lfs.chdir(olddir) return end @@ -13536,39 +13599,39 @@ function environment.make_format(name) if type(usedlualibs) == "string" then usedluastub = file.join(file.dirname(fullspecificationname),usedlualibs) elseif type(usedlualibs) == "table" then - logs.simple("using stub specification: %s",fullspecificationname) + report_format("using stub specification: %s",fullspecificationname) local texbasename = file.basename(name) local luastubname = file.addsuffix(texbasename,"lua") local lucstubname = file.addsuffix(texbasename,"luc") -- pack libraries in stub - logs.simple("creating initialization file: %s",luastubname) + report_format("creating initialization file: %s",luastubname) utilities.merger.selfcreate(usedlualibs,specificationpath,luastubname) -- compile stub file (does not save that much as we don't use this stub at startup any more) local strip = resolvers.booleanvariable("LUACSTRIP", true) if utilities.lua.compile(luastubname,lucstubname) and lfs.isfile(lucstubname) then - logs.simple("using compiled initialization file: %s",lucstubname) + report_format("using compiled initialization file: %s",lucstubname) usedluastub = lucstubname else - logs.simple("using uncompiled initialization file: %s",luastubname) + report_format("using uncompiled initialization file: %s",luastubname) usedluastub = luastubname end else - logs.simple("invalid stub specification: %s",fullspecificationname) + report_format("invalid stub specification: %s",fullspecificationname) lfs.chdir(olddir) return end -- generate format local command = format("luatex --ini %s --lua=%s %s %sdump",primaryflags(),quoted(usedluastub),quoted(fulltexsourcename),os.platform == "unix" and "\\\\" or "\\") - logs.simple("running command: %s\n",command) + report_format("running command: %s\n",command) os.spawn(command) -- remove related mem files local pattern = file.removesuffix(file.basename(usedluastub)).."-*.mem" - -- logs.simple("removing related mplib format with pattern '%s'", pattern) + -- report_format("removing related mplib format with pattern '%s'", pattern) local mp = dir.glob(pattern) if mp then for i=1,#mp do local name = mp[i] - logs.simple("removing related mplib format %s", file.basename(name)) + report_format("removing related mplib format %s", file.basename(name)) os.remove(name) end end @@ -13585,7 +13648,7 @@ function environment.run_format(name,data,more) end fmtname = resolvers.cleanpath(fmtname) if fmtname == "" then - logs.simple("no format with name: %s",name) + report_format("no format with name: %s",name) else local barename = file.removesuffix(name) -- expanded name local luaname = file.addsuffix(barename,"luc") @@ -13593,11 +13656,11 @@ function environment.run_format(name,data,more) luaname = file.addsuffix(barename,"lua") end if not lfs.isfile(luaname) then - logs.simple("using format name: %s",fmtname) - logs.simple("no luc/lua with name: %s",barename) + report_format("using format name: %s",fmtname) + report_format("no luc/lua with name: %s",barename) else local command = format("luatex %s --fmt=%s --lua=%s %s %s",primaryflags(),quoted(barename),quoted(luaname),quoted(data),more ~= "" and quoted(more) or "") - logs.simple("running command: %s",command) + report_format("running command: %s",command) os.spawn(command) end end @@ -13750,8 +13813,6 @@ if not resolvers then os.exit() end -logs.setprogram('MTXrun',"TDS Runner Tool 1.30") - if environment.arguments["verbose"] then trackers.enable("resolvers.locating") end @@ -13764,10 +13825,7 @@ if trackspec then trackers.enable(trackspec) end -runners = runners or { } -- global -messages = messages or { } - -messages.help = [[ +local helpinfo = [[ --script run an mtx script (lua prefered method) (--noquotes), no script gives list --execute run a script or program (texmfstart method) (--noquotes) --resolve resolve prefixed arguments @@ -13819,6 +13877,19 @@ messages.help = [[ --pattern=str filter variables ]] +local application = logs.application { + name = "mtxrun", + banner = "ConTeXt TDS Runner Tool 1.30", + helpinfo = helpinfo, +} + +local report = application.report + +local verbose = environment.argument("verbose") + +messages = messages or { } -- for the mo + +runners = runners or { } -- global runners.applications = { ["lua"] = "luatex --luaonly", @@ -13872,17 +13943,16 @@ end function runners.prepare() local checkname = environment.argument("ifchanged") - local verbose = environment.argument("verbose") if type(checkname) == "string" and checkname ~= "" then local oldchecksum = file.loadchecksum(checkname) local newchecksum = file.checksum(checkname) if oldchecksum == newchecksum then if verbose then - logs.simple("file '%s' is unchanged",checkname) + report("file '%s' is unchanged",checkname) end return "skip" elseif verbose then - logs.simple("file '%s' is changed, processing started",checkname) + report("file '%s' is changed, processing started",checkname) end file.savechecksum(checkname) end @@ -13892,17 +13962,17 @@ function runners.prepare() if oldname and newname and oldname ~= "" and newname ~= "" then if not file.needs_updating(oldname,newname) then if verbose then - logs.simple("file '%s' and '%s' have same age",oldname,newname) + report("file '%s' and '%s' have same age",oldname,newname) end return "skip" elseif verbose then - logs.simple("file '%s' is older than '%s'",oldname,newname) + report("file '%s' is older than '%s'",oldname,newname) end end end local runpath = environment.argument("path") if type(runpath) == "string" and not lfs.chdir(runpath) then - logs.simple("unable to change to path '%s'",runpath) + report("unable to change to path '%s'",runpath) return "error" end runners.prepare = function() end @@ -13961,11 +14031,11 @@ function runners.execute_script(fullname,internal,nosplit) result = binary .. " " .. result end local command = result .. " " .. environment.reconstructcommandline(environment.arguments_after,noquote) - if logs.verbose then - logs.simpleline() - logs.simple("executing: %s",command) - logs.simpleline() - logs.simpleline() + if verbose then + report() + report("executing: %s",command) + report() + report() io.flush() end -- no os.exec because otherwise we get the wrong return value @@ -13980,9 +14050,9 @@ function runners.execute_script(fullname,internal,nosplit) return false end end - logs.simpleline() - logs.simple("This script needs '%s' which seems not to be installed.",binary) - logs.simpleline() + report() + report("This script needs '%s' which seems not to be installed.",binary) + report() end return false end @@ -14007,10 +14077,10 @@ function runners.execute_program(fullname) environment.initializearguments(after) fullname = fullname:gsub("^bin:","") local command = fullname .. " " .. (environment.reconstructcommandline(after or "",noquote) or "") - logs.simpleline() - logs.simple("executing: %s",command) - logs.simpleline() - logs.simpleline() + report() + report("executing: %s",command) + report() + report() io.flush() local code = os.exec(command) -- (fullname,unpack(after)) does not work / maybe spawn return code == 0 @@ -14042,18 +14112,18 @@ function runners.handle_stubs(create) if create then if windows then io.savedata(file.join(stubpath,base..".bat"),string.format(windows_stub,name)) - logs.simple("windows stub for '%s' created",base) + report("windows stub for '%s' created",base) end if unix then io.savedata(file.join(stubpath,base),string.format(unix_stub,name)) - logs.simple("unix stub for '%s' created",base) + report("unix stub for '%s' created",base) end else if windows and (os.remove(file.join(stubpath,base..'.bat')) or os.remove(file.join(stubpath,base..'.cmd'))) then - logs.simple("windows stub for '%s' removed", base) + report("windows stub for '%s' removed", base) end if unix and (os.remove(file.join(stubpath,base)) or os.remove(file.join(stubpath,base..'.sh'))) then - logs.simple("unix stub for '%s' removed",base) + report("unix stub for '%s' removed",base) end end end @@ -14078,12 +14148,12 @@ function runners.locate_platform() end function runners.report_location(result) - if logs.verbose then - logs.simpleline() + if verbose then + reportline() if result and result ~= "" then - logs.simple(result) + report(result) else - logs.simple("not found") + report("not found") end else io.write(result) @@ -14095,11 +14165,11 @@ function runners.edit_script(filename) -- we assume that gvim is present on most local rest = resolvers.resolve(filename) if rest ~= "" then local command = editor .. " " .. rest - if logs.verbose then - logs.simpleline() - logs.simple("starting editor: %s",command) - logs.simple_line() - logs.simple_line() + if verbose then + report() + report("starting editor: %s",command) + report() + report() end os.launch(command) end @@ -14148,7 +14218,7 @@ function runners.launch_file(filename) pattern = filename end if not pattern or pattern == "" then - logs.simple("provide name or --pattern=") + report("provide name or --pattern=") else local t = resolvers.findfiles(pattern) if not t or #t == 0 then @@ -14160,15 +14230,15 @@ function runners.launch_file(filename) if t and #t > 0 then if environment.arguments["all"] then for _, v in pairs(t) do - logs.simple("launching %s", v) + report("launching %s", v) resolvers.launch(v) end else - logs.simple("launching %s", t[1]) + report("launching %s", t[1]) resolvers.launch(t[1]) end else - logs.simple("no match for %s", pattern) + report("no match for %s", pattern) end end end @@ -14239,7 +14309,7 @@ function runners.execute_ctx_script(filename,...) local fullname = runners.find_mtx_script(filename) or "" if file.extname(fullname) == "cld" then -- handy in editors where we force --autopdf - logs.simple("running cld script: %s",filename) + report("running cld script: %s",filename) table.insert(arguments,1,fullname) table.insert(arguments,"--autopdf") fullname = runners.find_mtx_script("context") or "" @@ -14270,8 +14340,8 @@ function runners.execute_ctx_script(filename,...) runners.load_script_session(loadname) end filename = environment.files[1] - if logs.verbose then - logs.simple("using script: %s\n",fullname) + if verbose then + report("using script: %s\n",fullname) end environment.ownscript = fullname dofile(fullname) @@ -14306,24 +14376,23 @@ function runners.execute_ctx_script(filename,...) end end if #valid > 0 then - logs.reportbanner() - logs.reportline() - logs.simple("no script name given, known scripts:") - logs.simple() + application.identify() + report("no script name given, known scripts:") + report() for k=1,#valid do local v = valid[k] - logs.simple("%-12s %4s %s",v[1],v[2],v[3]) + report("%-12s %4s %s",v[1],v[2],v[3]) end end else - logs.simple("no script name given") + report("no script name given") end else filename = file.addsuffix(filename,"lua") if file.is_qualified_path(filename) then - logs.simple("unknown script '%s'",filename) + report("unknown script '%s'",filename) else - logs.simple("unknown script '%s' or 'mtx-%s'",filename,filename) + report("unknown script '%s' or 'mtx-%s'",filename,filename) end end return false @@ -14331,9 +14400,9 @@ function runners.execute_ctx_script(filename,...) end function runners.prefixes() - logs.reportbanner() - logs.reportline() - logs.simple(table.concat(resolvers.allprefixes(true)," ")) + application.identify() + report() + report(table.concat(resolvers.allprefixes(true)," ")) end function runners.timedrun(filename) -- just for me @@ -14385,7 +14454,7 @@ if environment.argument("usekpse") or environment.argument("forcekpse") or is_mk local t = os.clock() local k = kpse.original.new("luatex",progname) local dummy = k:find_file("mtxrun.lua") -- so that we're initialized - logs.simple("kpse fallback with progname '%s' initialized in %s seconds",progname,os.clock()-t) + report("kpse fallback with progname '%s' initialized in %s seconds",progname,os.clock()-t) kpse_initialized = function() return k end return k end @@ -14432,11 +14501,11 @@ else function runners.loadbase(...) if not resolvers.load(...) then - logs.simple("forcing cache reload") + report("forcing cache reload") instance.renewcache = true trackers.enable("resolvers.locating") if not resolvers.load(...) then - logs.simple("the resolver databases are not present or outdated") + report("the resolver databases are not present or outdated") end end end @@ -14595,8 +14664,8 @@ elseif environment.argument("find-path") then resolvers.load() local path = resolvers.findpath(filename, instance.my_format) - if logs.verbose then - logs.simple(path) + if verbose then + report(path) else print(path) end @@ -14651,7 +14720,7 @@ elseif environment.argument("format-path") then -- luatools: runners.execute_ctx_script("mtx-base","--format-path",filename) resolvers.load() - logs.simple(caches.getwritablepath("format")) + report(caches.getwritablepath("format")) elseif environment.argument("pattern") then @@ -14695,7 +14764,7 @@ elseif environment.argument("help") and filename=='base' then elseif environment.argument("help") or filename=='help' or filename == "" then - logs.help(messages.help) + application.help() elseif filename:find("^bin:") then @@ -14729,9 +14798,9 @@ else end -if logs.verbose then - logs.simpleline() - logs.simple("runtime: %0.3f seconds",os.runtime()) +if verbose then + report() + report("runtime: %0.3f seconds",os.runtime()) end if os.type ~= "windows" then diff --git a/tex/context/base/attr-col.lua b/tex/context/base/attr-col.lua index d4f1c1198..451cf0ee1 100644 --- a/tex/context/base/attr-col.lua +++ b/tex/context/base/attr-col.lua @@ -15,9 +15,9 @@ local concat = table.concat local allocate = utilities.storage.allocate -local report_attributes = logs.new("attributes") -local report_colors = logs.new("colors") -local report_transparencies = logs.new("transparencies") +local report_attributes = logs.new("attributes","colors") +local report_colors = logs.new("colors","support") +local report_transparencies = logs.new("transparencies","support") local attributes, nodes = attributes, nodes diff --git a/tex/context/base/attr-ini.mkiv b/tex/context/base/attr-ini.mkiv index 5de366ed9..e2952166a 100644 --- a/tex/context/base/attr-ini.mkiv +++ b/tex/context/base/attr-ini.mkiv @@ -44,7 +44,7 @@ \expandafter\newconstant \csname :attr:#1\endcsname \csname :attr:#1\endcsname\lastallocatedattribute \ctxcommand{defineattribute("#1",\number\lastallocatedattribute)}% - %\writestatus\m!systems{defining attribute #1 with number \number\lastallocatedattribute}% + %\writestatus\m!system{defining attribute #1 with number \number\lastallocatedattribute}% \doifnotinset\s!global{#2}{\appendetoks\csname @attr@#1\endcsname\attributeunsetvalue\to\attributesresetlist}% \doifinset \s!public{#2}{\expandafter\let\csname#1attribute\expandafter\endcsname\csname :attr:#1\endcsname}} @@ -56,7 +56,7 @@ \expandafter\attributedef\csname @attr@#1\endcsname\scratchcounter \expandafter\newconstant \csname :attr:#1\endcsname \csname :attr:#1\endcsname\scratchcounter - %\writestatus\m!systems{defining system attribute #1 with number \number\scratchcounter}% + %\writestatus\m!system{defining system attribute #1 with number \number\scratchcounter}% \doifnotinset\s!global{#2}{\appendetoks\csname @attr@#1\endcsname\attributeunsetvalue\to\attributesresetlist}% \doifinset \s!public{#2}{\expandafter\let\csname#1attribute\expandafter\endcsname\csname :attr:#1\endcsname}} diff --git a/tex/context/base/attr-lay.lua b/tex/context/base/attr-lay.lua index 1c13762c4..949c9dbe8 100644 --- a/tex/context/base/attr-lay.lua +++ b/tex/context/base/attr-lay.lua @@ -77,7 +77,7 @@ local function reviver(data,n) data[n] = d return d else - logs.report("viewerlayers","error, unknown reference '%s'",tostring(n)) + report_viewerlayers("error, unknown reference '%s'",tostring(n)) end end end diff --git a/tex/context/base/back-exp.lua b/tex/context/base/back-exp.lua index 56eea251b..8c01e365c 100644 --- a/tex/context/base/back-exp.lua +++ b/tex/context/base/back-exp.lua @@ -50,7 +50,7 @@ local trace_tree = false trackers.register ("structures.export.showtree", local less_state = false directives.register("structures.export.lessstate", function(v) less_state = v end) local page_breaks = false directives.register("structures.export.pagebreaks", function(v) page_breaks = v end) -local report_export = logs.new("export") +local report_export = logs.new("backend","export") local nodes = nodes local attributes = attributes diff --git a/tex/context/base/back-ini.lua b/tex/context/base/back-ini.lua index 10f908798..3cbfb9a30 100644 --- a/tex/context/base/back-ini.lua +++ b/tex/context/base/back-ini.lua @@ -14,7 +14,7 @@ local backends = backends local trace_backend = false trackers.register("backend.initializers", function(v) trace_finalizers = v end) -local report_backends = logs.new("backends") +local report_backend = logs.new("backend","initializing") local function nothing() return nil end @@ -158,7 +158,7 @@ function backends.install(what) local backend = backends[what] if backend then if trace_backend then - report_backends("initializing backend %s (%s)",what,backend.comment or "no comment") + report_backend("initializing backend %s (%s)",what,backend.comment or "no comment") end backends.current = what for _, category in next, { "nodeinjections", "codeinjections", "registrations", "tables" } do @@ -168,28 +168,28 @@ function backends.install(what) for name, meaning in next, whereto do if plugin[name] then whereto[name] = plugin[name] - -- report_backends("installing function %s in category %s of %s",name,category,what) + -- report_backend("installing function %s in category %s of %s",name,category,what) elseif trace_backend then - report_backends("no function %s in category %s of %s",name,category,what) + report_backend("no function %s in category %s of %s",name,category,what) end end elseif trace_backend then - report_backends("no category %s in %s",category,what) + report_backend("no category %s in %s",category,what) end -- extra checks for k, v in next, whereto do if not plugin[k] then - report_backends("entry %s in %s is not set",k,category) + report_backend("entry %s in %s is not set",k,category) end end for k, v in next, plugin do if not whereto[k] then - report_backends("entry %s in %s is not used",k,category) + report_backend("entry %s in %s is not used",k,category) end end end elseif trace_backend then - report_backends("no backend named %s",what) + report_backend("no backend named %s",what) end end end diff --git a/tex/context/base/bibl-bib.lua b/tex/context/base/bibl-bib.lua index f301d9689..518518b42 100644 --- a/tex/context/base/bibl-bib.lua +++ b/tex/context/base/bibl-bib.lua @@ -27,7 +27,7 @@ local P, R, S, C, Cc, Cs, Ct = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cc, lpeg.Cs, local trace_bibxml = false trackers.register("publications.bibxml", function(v) trace_bibtex = v end) -local report_publications = logs.new("publications") +local report_xml = logs.new("publications","xml") bibtex = bibtex or { } local bibtex = bibtex @@ -144,9 +144,9 @@ function bibtex.load(session,filename) if filename ~= "" then local data = io.loaddata(filename) or "" if data == "" then - report_publications("empty file '%s', no conversion to xml",filename) + report_xml("empty file '%s', no conversion to xml",filename) elseif trace_bibxml then - report_publications("converting file '%s' to xml",filename) + report_xml("converting file '%s' to xml",filename) end bibtex.convert(session,data) end diff --git a/tex/context/base/bibl-tra.lua b/tex/context/base/bibl-tra.lua index 3e16e050d..6b44d1b67 100644 --- a/tex/context/base/bibl-tra.lua +++ b/tex/context/base/bibl-tra.lua @@ -17,7 +17,7 @@ local variables, constants = interfaces.variables, interfaces.constants local trace_bibtex = false trackers.register("publications.bibtex", function(v) trace_bibtex = v end) -local report_publications = logs.new("publications") +local report_tex = logs.new("publications","tex") local context, structures = context, structures @@ -41,7 +41,7 @@ function hacks.process(settings) interfaces.showmessage("publications",3) io.savedata(file.addsuffix(jobname,"aux"),format(template,style,database)) if trace_bibtex then - report_publications("processing bibtex file '%s'",jobname) + report_tex("processing bibtex file '%s'",jobname) end os.execute(format("bibtex %s",jobname)) -- purge 'm @@ -50,7 +50,7 @@ end function hacks.register(str) if trace_bibtex then - report_publications("registering bibtex entry '%s'",str) + report_tex("registering bibtex entry '%s'",str) end registered[#registered+1] = str ordered[str] = #registered diff --git a/tex/context/base/buff-ini.lua b/tex/context/base/buff-ini.lua index de5a880e3..be602d0a0 100644 --- a/tex/context/base/buff-ini.lua +++ b/tex/context/base/buff-ini.lua @@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['buff-ini'] = { local trace_run = false trackers.register("buffers.run", function(v) trace_run = v end) local trace_visualize = false trackers.register("buffers.visualize", function(v) trace_visualize = v end) -local report_buffers = logs.new("buffers") +local report_buffers = logs.new("buffers","usage") local concat = table.concat local type, next = type, next @@ -162,12 +162,12 @@ function commands.runbuffer(name,list,encapsulate) local data = io.loaddata(name) if data ~= content then if trace_run then - commands.writestatus("buffers","changes in '%s', processing forced",name) + report_buffers("changes in '%s', processing forced",name) end io.savedata(name,content) os.execute(format(command,name)) elseif trace_run then - commands.writestatus("buffers","no changes in '%s', not processed",name) + report_buffers("no changes in '%s', not processed",name) end end diff --git a/tex/context/base/buff-par.lua b/tex/context/base/buff-par.lua index 763d3481d..aa4841d8a 100644 --- a/tex/context/base/buff-par.lua +++ b/tex/context/base/buff-par.lua @@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['buff-ini'] = { local trace_parallel = false trackers.register("buffers.parallel", function(v) trace_parallel = v end) -local report_parallel = logs.new("parallel") +local report_parallel = logs.new("buffers","parallel") local insert, remove, find, gmatch = table.insert, table.remove, string.find, string.gmatch local strip, format = string.strip, string.format diff --git a/tex/context/base/buff-ver.lua b/tex/context/base/buff-ver.lua index 9c7f6e371..a8721f6ec 100644 --- a/tex/context/base/buff-ver.lua +++ b/tex/context/base/buff-ver.lua @@ -22,7 +22,7 @@ local settings_to_array = utilities.parsers.settings_to_array local trace_visualize = false trackers.register("buffers.visualize", function(v) trace_visualize = v end) -local report_buffers = logs.new("buffers") +local report_visualizers = logs.new("buffers","visualizers") visualizers = visualizers or { } @@ -160,7 +160,7 @@ function visualizers.newgrammar(name,t) g = g and g.grammar if g then if trace_visualize then - report_buffers("cloning grammar '%s'",name) + report_visualizers("cloning grammar '%s'",name) end for k,v in next, g do if not t[k] then @@ -179,12 +179,12 @@ local function getvisualizer(method,nature) local m = specifications[method] or specifications.default if nature then if trace_visualize then - report_buffers("getting visualizer '%s' with nature '%s'",method,nature) + report_visualizers("getting visualizer '%s' with nature '%s'",method,nature) end return m and (m[nature] or m.parser) or nil else if trace_visualize then - report_buffers("getting visualizer '%s'",method) + report_visualizers("getting visualizer '%s'",method) end return m and m.parser or nil end @@ -194,7 +194,7 @@ local fallback = context.verbatim local function makepattern(visualizer,kind,pattern) if not pattern then - logs.simple("error in visualizer: %s",kind) + report_visualizers("error in visualizer: %s",kind) return patterns.alwaystrue else if type(visualizer) == "table" and type(kind) == "string" then @@ -233,11 +233,11 @@ function visualizers.load(name) end if texname == "" or luaname == "" then if trace_visualize then - report_buffers("unknown visualizer '%s'",name) + report_visualizers("unknown visualizer '%s'",name) end else if trace_visualize then - report_buffers("loading visualizer '%s'",name) + report_visualizers("loading visualizer '%s'",name) end lua.registercode(luaname) context.input(texname) @@ -255,7 +255,7 @@ end function visualizers.register(name,specification) name = lower(name) if trace_visualize then - report_buffers("registering visualizer '%s'",name) + report_visualizers("registering visualizer '%s'",name) end specifications[name] = specification local parser, handler = specification.parser, specification.handler @@ -345,7 +345,7 @@ function visualizers.registerescapepattern(name,before,after,normalmethod,escape local escapepattern = escapepatterns[name] if not escapepattern then if trace_visualize then - report_buffers("registering escape pattern, name: '%s', before: '%s', after: '%s'",name,before,after) + report_visualizers("registering escape pattern, name: '%s', before: '%s', after: '%s'",name,before,after) end before, after = P(before) * space_pattern, space_pattern * P(after) escapepattern = ( @@ -363,7 +363,7 @@ function visualizers.registerescapecommand(name,token,normalmethod,escapecommand local escapepattern = escapepatterns[name] if not escapepattern then if trace_visualize then - report_buffers("registering escape token, name: '%s', token: '%s'",name,token) + report_visualizers("registering escape token, name: '%s', token: '%s'",name,token) end token = P(token) local notoken = hack((1 - token)^1) @@ -417,12 +417,12 @@ local function visualize(content,settings) -- maybe also method in settings local n = m and m[nature] if n then if trace_visualize then - report_buffers("visualize using method '%s' and nature '%s'",method,nature) + report_visualizers("visualize using method '%s' and nature '%s'",method,nature) end n(content,settings) else if trace_visualize then - report_buffers("visualize using method '%s'",method) + report_visualizers("visualize using method '%s'",method) end fallback(content,1,settings) end @@ -652,7 +652,6 @@ function commands.typefile(settings) if str and str ~= "" then local regime = settings.regime if regime and regime ~= "" then - regimes.load(regime) str = regimes.translate(str,regime) end if str and str~= "" then diff --git a/tex/context/base/char-ini.mkiv b/tex/context/base/char-ini.mkiv index 1f8a46808..67ba25173 100644 --- a/tex/context/base/char-ini.mkiv +++ b/tex/context/base/char-ini.mkiv @@ -21,6 +21,20 @@ \unprotect +% ¨äëïöüÿ +% ´áćéíĺńóŕśúýź +% ˙ċėġiż +% ¯āēīōū +% ˝őű +% ˆâĉêĝĥîĵôŝûŵŷ +% `àèìòùỳ +% ¸çķļņŗşţ +% ˛ąęįų +% ˚åů +% ˘ăĕğĭŏŭ +% ˇčďěľňřšťž +% ˜ãĩñõũ + % \def\checkedchar#1% #2% % {\relax\iffontchar\font#1 \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi{\char#1}} % diff --git a/tex/context/base/cldf-ini.lua b/tex/context/base/cldf-ini.lua index 42333a65f..5d84bc9fa 100644 --- a/tex/context/base/cldf-ini.lua +++ b/tex/context/base/cldf-ini.lua @@ -50,8 +50,8 @@ local xmlcatcodes = tex.xmlcatcodes local flush = texsprint -local report_context = logs.new("context") -- here -local report_cld = logs.new("cld") +local report_context = logs.new("cld","tex") +local report_cld = logs.new("cld","stack") local processlines = true -- experiments.register("context.processlines", function(v) processlines = v end) diff --git a/tex/context/base/colo-icc.lua b/tex/context/base/colo-icc.lua index fb2f83983..4687bfe3f 100644 --- a/tex/context/base/colo-icc.lua +++ b/tex/context/base/colo-icc.lua @@ -11,6 +11,8 @@ local readstring, readnumber = io.readstring, io.readnumber local colors = attributes and attributes.colors or { } -- when used in mtxrun +local report_colors = logs.new("colors","icc") + local R, Cs, lpegmatch = lpeg.R, lpeg.Cs, lpeg.match local invalid = R(char(0)..char(31)) @@ -97,7 +99,7 @@ function colors.iccprofile(filename,verbose) } else if verbose then - logs.simple("ignoring tag '%s' or type '%s' in profile '%s'",tag,kind,fullname) + report_colors("ignoring tag '%s' or type '%s' in profile '%s'",tag,kind,fullname) end tags[tag] = nil end diff --git a/tex/context/base/colo-ini.lua b/tex/context/base/colo-ini.lua index 6f4c73336..eed68d4c6 100644 --- a/tex/context/base/colo-ini.lua +++ b/tex/context/base/colo-ini.lua @@ -14,7 +14,7 @@ local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns local trace_define = false trackers.register("colors.define",function(v) trace_define = v end) -local report_colors = logs.new("colors") +local report_colors = logs.new("colors","defining") local attributes, context, commands = attributes, context, commands @@ -39,12 +39,12 @@ local function definecolor(name, ca, global) if ca and ca > 0 then if global then if trace_define then - commands.writestatus("color","define global color '%s' with attribute: %s",name,ca) + report_colors("define global color '%s' with attribute: %s",name,ca) end context.colordefagc(name,ca) else if trace_define then - commands.writestatus("color","define local color '%s' with attribute: %s",name,ca) + report_colors("define local color '%s' with attribute: %s",name,ca) end context.colordefalc(name,ca) end @@ -61,12 +61,12 @@ local function inheritcolor(name, ca, global) if ca and ca ~= "" then if global then if trace_define then - commands.writestatus("color","inherit global color '%s' with attribute: %s",name,ca) + report_colors("inherit global color '%s' with attribute: %s",name,ca) end context.colordeffgc(name,ca) -- some day we will set the macro directly else if trace_define then - commands.writestatus("color","inherit local color '%s' with attribute: %s",name,ca) + report_colors("inherit local color '%s' with attribute: %s",name,ca) end context.colordefflc(name,ca) end @@ -83,12 +83,12 @@ local function definetransparent(name, ta, global) if ta and ta > 0 then if global then if trace_define then - commands.writestatus("color","define global transparency '%s' with attribute: %s",name,ta) + report_colors("define global transparency '%s' with attribute: %s",name,ta) end context.colordefagt(name,ta) else if trace_define then - commands.writestatus("color","define local transparency '%s' with attribute: %s",name,ta) + report_colors("define local transparency '%s' with attribute: %s",name,ta) end context.colordefalt(name,ta) end @@ -105,12 +105,12 @@ local function inherittransparent(name, ta, global) if ta and ta ~= "" then if global then if trace_define then - commands.writestatus("color","inherit global transparency '%s' with attribute: %s",name,ta) + report_colors("inherit global transparency '%s' with attribute: %s",name,ta) end context.colordeffgt(name,ta) else if trace_define then - commands.writestatus("color","inherit local transparency '%s' with attribute: %s",name,ta) + report_colors("inherit local transparency '%s' with attribute: %s",name,ta) end context.colordefflt(name,ta) end diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index 6b39c2bdf..a136dc695 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2011.02.04 19:31} +\newcontextversion{2011.02.08 10:06} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 7e0ca5f16..d14bf8c28 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2011.02.04 19:31} +\newcontextversion{2011.02.08 10:06} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new @@ -19,7 +19,7 @@ \unprotect -\writestatus\m!systems{beware: some patches loaded from cont-new.mkiv} +\writestatus\m!system{beware: some patches loaded from cont-new.mkiv} \def\fastscale#1% @@ -581,8 +581,6 @@ % % \setbreakpoints[compound] -% \ctxlua{logs.report = commands.writereport} % this will become default - % till we fixed all styles: \let\\=\crlf diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index 5d1f35894..54f284089 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.02.04 19:31} +\edef\contextversion{2011.02.08 10:06} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 152c50575..a735801c0 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.02.04 19:31} +\edef\contextversion{2011.02.08 10:06} %D For those who want to use this: diff --git a/tex/context/base/core-ctx.lua b/tex/context/base/core-ctx.lua index 111c125da..b6ea7e66b 100644 --- a/tex/context/base/core-ctx.lua +++ b/tex/context/base/core-ctx.lua @@ -6,7 +6,9 @@ if not modules then modules = { } end modules ['core-ctx'] = { license = "see context related readme files" } -local trace_prepfiles = false trackers.register("resolvers.prepfiles", function(v) trace_prepfiles = v end) +local trace_prepfiles = false trackers.register("system.prepfiles", function(v) trace_prepfiles = v end) + +local report_prepfiles = logs.new("system","prepfiles") commands = commands or { } local commands = commands @@ -21,9 +23,9 @@ function commands.loadctxpreplist() islocal = xml.found(x,"ctx:preplist[@local=='yes']") --~ if trace_prepfiles then if islocal then - commands.writestatus("systems","loading ctx log file (local)") -- todo: m!systems + report_prepfiles("loading ctx log file (local)") -- todo: m!systems else - commands.writestatus("systems","loading ctx log file (specified)") -- todo: m!systems + report_prepfiles("loading ctx log file (specified)") -- todo: m!systems end --~ end for e in xml.collected(x,"ctx:prepfile") do @@ -33,7 +35,7 @@ function commands.loadctxpreplist() end local done = e.at['done'] or 'no' if trace_prepfiles then - commands.writestatus("systems","registering %s -> %s",done) + report_prepfiles("registering %s -> %s",done) end found = true list[name] = done -- 'yes' or 'no' @@ -48,7 +50,7 @@ local function found(name) -- used in resolve local prepname = name .. "." .. suffix if list[name] and lfs.isfile(prepname) then if trace_prepfiles then - commands.writestatus("systems", "preprocessing: using %s",prepname) + report_prepfiles("preprocessing: using %s",prepname) end return prepname end diff --git a/tex/context/base/core-fil.mkiv b/tex/context/base/core-fil.mkiv index 4ab78f082..263030a9b 100644 --- a/tex/context/base/core-fil.mkiv +++ b/tex/context/base/core-fil.mkiv @@ -217,7 +217,7 @@ \stopreadingfile \doglobal\setflag{#2}}% \ifx#1\undefined - \writestatus\m!systems{command \string#1 not found in file #2}% + \writestatus\m!system{command \string#1 not found in file #2}% \gdef#1{{\infofont[unknown command \string#1]}}% \fi #1} diff --git a/tex/context/base/core-job.lua b/tex/context/base/core-job.lua index abbbf4e5e..07ff5259e 100644 --- a/tex/context/base/core-job.lua +++ b/tex/context/base/core-job.lua @@ -19,6 +19,8 @@ resolvers.maxreadlevel = 3 directives.register("resolvers.maxreadlevel", function(v) resolvers.maxreadlevel = tonumber(v) or resolvers.maxreadlevel end) +local report_examodes = logs.new("system","examodes") -- maybe another category + local function exists(n) if io.exists(n) then return n @@ -121,10 +123,10 @@ function commands.loadexamodes(filename) end 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 diff --git a/tex/context/base/core-job.mkiv b/tex/context/base/core-job.mkiv index 200bc9be3..28a864655 100644 --- a/tex/context/base/core-job.mkiv +++ b/tex/context/base/core-job.mkiv @@ -62,10 +62,10 @@ \def\doloadexamodes [#1]{\ctxcommand{loadexamodes("#1")}} \def\registerfileinfo[#1#2]#3% geen \showmessage ? - {\writestatus\m!systems{#1#2 file #3 at line \the\inputlineno}} + {\writestatus\m!system{#1#2 file #3 at line \the\inputlineno}} \def\doloadsystemfile#1% only mkiv files - {\readsysfile{#1.\mksuffix}{\showmessage\m!systems2{#1.\mksuffix}}\donothing} + {\readsysfile{#1.\mksuffix}{\showmessage\m!system2{#1.\mksuffix}}\donothing} \def\loadsystemfiles {\doloadsystemfile\f!newfilename % new code, to be integrated at some point, plus fixes posted on the list @@ -77,9 +77,9 @@ \def\loadoptionfile % todo : mark document.* tables as storage {\readjobfile{\jobname.\f!optionextension} - {\showmessage\m!systems2{\jobname.\f!optionextension}% + {\writestatus\m!system{\jobname.\f!optionextension\space loaded}% \ctxcommand{logoptionfile("\jobname.\f!optionextension")}}% - {\writestatus\m!systems {no \jobname.\f!optionextension}}} + {\writestatus\m!system{no \jobname.\f!optionextension}}} % Most natural ... % @@ -119,7 +119,7 @@ \fi} \def\forcequitjob#1% - {\writestatus\m!systems{forcing quit: #1}% + {\writestatus\m!system{forcing quit: #1}% \batchmode \dorecurse\textlevel{\stoptext} \normalend} @@ -129,7 +129,7 @@ \def\autostarttext {\ifcase\textlevel \starttext - \writestatus\m!systems{auto \string\starttext..\string\stoptext}% + \writestatus\m!system{auto \string\starttext..\string\stoptext}% \let\autostoptext\stoptext \fi} @@ -146,7 +146,7 @@ \let\end\finalend \def\emergencyend - {\writestatus\m!systems{invalid \@EA\string\csname\e!start\v!text\endcsname...\@EA\string\csname\e!stop\v!text\endcsname\space structure}% + {\writestatus\m!system{invalid \@EA\string\csname\e!start\v!text\endcsname...\@EA\string\csname\e!stop\v!text\endcsname\space structure}% \stoptext} \def\currentfile{\inputfilename} diff --git a/tex/context/base/core-mis.mkiv b/tex/context/base/core-mis.mkiv index 98f245e0d..2214d77c1 100644 --- a/tex/context/base/core-mis.mkiv +++ b/tex/context/base/core-mis.mkiv @@ -21,7 +21,7 @@ % %D % %D Obsolete now: % % -% % \def\documentstyle{\showmessage\m!systems3\empty\stoptekst} +% % \def\documentstyle{\showmessage\m!system3\empty\stoptekst} % % % % \let\documentclass=\documentstyle % %D \macros diff --git a/tex/context/base/core-sys.mkiv b/tex/context/base/core-sys.mkiv index ec10fa1fa..f61cabec3 100644 --- a/tex/context/base/core-sys.mkiv +++ b/tex/context/base/core-sys.mkiv @@ -142,7 +142,7 @@ \s!default=>\getnewrandomseed\scratchcounter, \s!unknown=>\scratchcounter#1]% \expanded{\setrandomseed{\the\scratchcounter}}% - % \writestatus\m!systems{randomseed: \the\scratchcounter}% + % \writestatus\m!system{randomseed: \the\scratchcounter}% \egroup}} \setupsystem @@ -294,7 +294,7 @@ \def\complexdefine[#1]#2#3% {\ifx#2\undefined \else - \showmessage\m!systems4{\string#2}% + \showmessage\m!system4{\string#2}% \fi \ifcase0#1\def#2{#3}% \or\def#2##1{#3}% diff --git a/tex/context/base/core-uti.lua b/tex/context/base/core-uti.lua index 88afb35a9..f302d6051 100644 --- a/tex/context/base/core-uti.lua +++ b/tex/context/base/core-uti.lua @@ -78,20 +78,22 @@ if not checksums.new then checksums.new = md5.HEX("new") end -- used in experime job.register('job.variables.checksums', checksums) +local rmethod, rvalue + local function initializer() tobesaved = mark(jobvariables.tobesaved) collected = mark(jobvariables.collected) checksums = mark(jobvariables.checksums) - local r = collected.randomseed - if not r then - r = math.random() - math.setrandomseedi(r,"initialize") - report_jobcontrol("initializing randomizer with %s",r) + rvalue = collected.randomseed + if not rvalue then + rvalue = math.random() + math.setrandomseedi(rvalue,"initialize") + rmethod = "initialized" else - math.setrandomseedi(r,"previous run") - report_jobcontrol("resuming randomizer with %s",r) + math.setrandomseedi(rvalue,"previous run") + rmethod = "resumed" end - tobesaved.randomseed = r + tobesaved.randomseed = rvalue for cs, value in next, collected do context.setxvalue(cs,value) end @@ -199,6 +201,12 @@ statistics.register("callbacks", function() end end) +statistics.register("randomizer", function() + if rmethod and rvalue then + return format("%s with value %s",rmethod,rvalue) + end +end) + function statistics.formatruntime(runtime) local shipped = tex.count['nofshipouts'] local pages = tex.count['realpageno'] - 1 diff --git a/tex/context/base/data-aux.lua b/tex/context/base/data-aux.lua index 0a80e04ce..480005a45 100644 --- a/tex/context/base/data-aux.lua +++ b/tex/context/base/data-aux.lua @@ -13,48 +13,48 @@ local trace_locating = false trackers.register("resolvers.locating", function(v local resolvers = resolvers -local report_resolvers = logs.new("resolvers") +local report_scripts = logs.new("resolvers","scripts") function resolvers.updatescript(oldname,newname) -- oldname -> own.name, not per se a suffix local scriptpath = "scripts/context/lua" newname = file.addsuffix(newname,"lua") local oldscript = resolvers.cleanpath(oldname) if trace_locating then - report_resolvers("to be replaced old script %s", oldscript) + report_scripts("to be replaced old script %s", oldscript) end local newscripts = resolvers.findfiles(newname) or { } if #newscripts == 0 then if trace_locating then - report_resolvers("unable to locate new script") + report_scripts("unable to locate new script") end else for i=1,#newscripts do local newscript = resolvers.cleanpath(newscripts[i]) if trace_locating then - report_resolvers("checking new script %s", newscript) + report_scripts("checking new script %s", newscript) end if oldscript == newscript then if trace_locating then - report_resolvers("old and new script are the same") + report_scripts("old and new script are the same") end elseif not find(newscript,scriptpath) then if trace_locating then - report_resolvers("new script should come from %s",scriptpath) + report_scripts("new script should come from %s",scriptpath) end elseif not (find(oldscript,file.removesuffix(newname).."$") or find(oldscript,newname.."$")) then if trace_locating then - report_resolvers("invalid new script name") + report_scripts("invalid new script name") end else local newdata = io.loaddata(newscript) if newdata then if trace_locating then - report_resolvers("old script content replaced by new content") + report_scripts("old script content replaced by new content") end io.savedata(oldscript,newdata) break elseif trace_locating then - report_resolvers("unable to load new script") + report_scripts("unable to load new script") end end end diff --git a/tex/context/base/data-con.lua b/tex/context/base/data-con.lua index 5d9650f8e..673361d74 100644 --- a/tex/context/base/data-con.lua +++ b/tex/context/base/data-con.lua @@ -29,11 +29,11 @@ containers = containers or { } local containers = containers containers.usecache = true -local report_cache = logs.new("cache") +local report_containers = logs.new("resolvers","containers") local function report(container,tag,name) if trace_cache or trace_containers then - report_cache("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') + report_containers("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') end end diff --git a/tex/context/base/data-ctx.lua b/tex/context/base/data-ctx.lua index 1bb3f9e71..6b9dc23ab 100644 --- a/tex/context/base/data-ctx.lua +++ b/tex/context/base/data-ctx.lua @@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['data-ctx'] = { local format = string.format -local report_resolvers = logs.new("resolvers") +local report_dump = logs.new("resolvers","dump") local resolvers = resolvers @@ -36,7 +36,7 @@ local function saveusedfilesin_trees() end f:write("</rl:job>\n") f:close() - report_resolvers("saving used tree files in '%s'",filename) + report_dump("saving used tree files in '%s'",filename) end end diff --git a/tex/context/base/data-exp.lua b/tex/context/base/data-exp.lua index feab32273..7ddf7e319 100644 --- a/tex/context/base/data-exp.lua +++ b/tex/context/base/data-exp.lua @@ -18,7 +18,7 @@ local collapsepath = file.collapsepath local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_expansions = logs.new("resolvers","expansions") local resolvers = resolvers @@ -81,7 +81,7 @@ local replacer_1 = lpeg.replacer { { ",}", ",@}" }, { "{,", "{@," }, } local function splitpathexpr(str, newlist, validate) -- I couldn't resist lpegging it (nice exercise). if trace_expansions then - report_resolvers("expanding variable '%s'",str) + report_expansions("expanding variable '%s'",str) end local t, ok, done = newlist or { }, false, false local n = #t @@ -107,7 +107,7 @@ local function splitpathexpr(str, newlist, validate) -- I couldn't resist lpeggi end if trace_expansions then for k=1,#t do - report_resolvers("% 4i: %s",k,t[k]) + report_expansions("% 4i: %s",k,t[k]) end end return t @@ -142,7 +142,7 @@ function resolvers.cleanpath(str) homedir = lpegmatch(cleanup,environment.homedir or "") if homedir == string.char(127) or homedir == "" or not lfs.isdir(homedir) then if trace_expansions then - report_resolvers("no home dir set, ignoring dependent paths") + report_expansions("no home dir set, ignoring dependent paths") end function resolvers.cleanpath(str) if find(str,"~") then @@ -212,9 +212,9 @@ local function splitconfigurationpath(str) -- beware, this can be either a path end end if trace_expansions then - report_resolvers("splitting path specification '%s'",str) + report_expansions("splitting path specification '%s'",str) for k=1,noffound do - report_resolvers("% 4i: %s",k,found[k]) + report_expansions("% 4i: %s",k,found[k]) end end cache[str] = found @@ -313,7 +313,7 @@ end function resolvers.scanfiles(path,branch) if trace_locating then - report_resolvers("scanning path '%s', branch '%s'",path, branch or path) + report_expansions("scanning path '%s', branch '%s'",path, branch or path) end local realpath = resolvers.resolve(path) -- no shortcut local files, n, m, r = scan({ },realpath .. '/',"",0,0,0) @@ -322,7 +322,7 @@ function resolvers.scanfiles(path,branch) files.__directories__ = m files.__remappings__ = r if trace_locating then - report_resolvers("%s files found on %s directories with %s uppercase remappings",n,m,r) + report_expansions("%s files found on %s directories with %s uppercase remappings",n,m,r) end return files end diff --git a/tex/context/base/data-fil.lua b/tex/context/base/data-fil.lua index ecbeb52e6..c9d8b23e1 100644 --- a/tex/context/base/data-fil.lua +++ b/tex/context/base/data-fil.lua @@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['data-fil'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_files = logs.new("resolvers","files") local resolvers = resolvers @@ -22,11 +22,11 @@ function locators.file(specification) local realname = resolvers.resolve(name) -- no shortcut if realname and realname ~= '' and lfs.isdir(realname) then if trace_locating then - report_resolvers("file locator '%s' found as '%s'",name,realname) + report_files("file locator '%s' found as '%s'",name,realname) end resolvers.appendhash('file',name,true) -- cache elseif trace_locating then - report_resolvers("file locator '%s' not found",name) + report_files("file locator '%s' not found",name) end end @@ -49,12 +49,12 @@ function finders.file(specification,filetype) local foundname = resolvers.findfile(filename,filetype) if foundname and foundname ~= "" then if trace_locating then - report_resolvers("file finder: '%s' found",filename) + report_files("file finder: '%s' found",filename) end return foundname else if trace_locating then - report_resolvers("file finder: %s' not found",filename) + report_files("file finder: %s' not found",filename) end return finders.notfound() end @@ -75,13 +75,13 @@ function openers.file(specification,filetype) local f = io.open(filename,"r") if f then if trace_locating then - report_resolvers("file opener, '%s' opened",filename) + report_files("file opener, '%s' opened",filename) end return openers.helpers.textopener("file",filename,f) end end if trace_locating then - report_resolvers("file opener, '%s' not found",filename) + report_files("file opener, '%s' not found",filename) end return openers.notfound() end @@ -93,7 +93,7 @@ function loaders.file(specification,filetype) if f then logs.show_load(filename) if trace_locating then - report_resolvers("file loader, '%s' loaded",filename) + report_files("file loader, '%s' loaded",filename) end local s = f:read("*a") if checkgarbage then @@ -106,7 +106,7 @@ function loaders.file(specification,filetype) end end if trace_locating then - report_resolvers("file loader, '%s' not found",filename) + report_files("file loader, '%s' not found",filename) end return loaders.notfound() end diff --git a/tex/context/base/data-ini.lua b/tex/context/base/data-ini.lua index 63a7571fe..5579ea964 100644 --- a/tex/context/base/data-ini.lua +++ b/tex/context/base/data-ini.lua @@ -16,7 +16,7 @@ local trace_locating = false trackers.register("resolvers.locating", functi local trace_detail = false trackers.register("resolvers.details", function(v) trace_detail = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_initialization = logs.new("resolvers","initialization") local ostype, osname, ossetenv, osgetenv = os.type, os.name, os.setenv, os.getenv @@ -37,7 +37,7 @@ kpse = { original = kpse } setmetatable(kpse, { __index = function(kp,name) - report_resolvers("fatal error: kpse library is accessed (key: %s)",name) + report_initialization("fatal error: kpse library is accessed (key: %s)",name) os.exit() end } ) @@ -121,13 +121,13 @@ do if lfs.chdir(p) then local pp = lfs.currentdir() if trace_locating and p ~= pp then - report_resolvers("following symlink '%s' to '%s'",p,pp) + report_initialization("following symlink '%s' to '%s'",p,pp) end ownpath = pp lfs.chdir(olddir) else if trace_locating then - report_resolvers("unable to check path '%s'",p) + report_initialization("unable to check path '%s'",p) end ownpath = p end @@ -138,9 +138,9 @@ do end if not ownpath or ownpath == "" then ownpath = "." - report_resolvers("forcing fallback ownpath .") + report_initialization("forcing fallback ownpath .") elseif trace_locating then - report_resolvers("using ownpath '%s'",ownpath) + report_initialization("using ownpath '%s'",ownpath) end end @@ -167,7 +167,7 @@ do ossetenv('SELFAUTODIR', file.collapsepath(ownpath .. "/..")) ossetenv('SELFAUTOPARENT', file.collapsepath(ownpath .. "/../..")) else - report_resolvers("error: unable to locate ownpath") + report_initialization("error: unable to locate ownpath") os.exit() end diff --git a/tex/context/base/data-lst.lua b/tex/context/base/data-lst.lua index 23a2fc2fe..e2ad5164e 100644 --- a/tex/context/base/data-lst.lua +++ b/tex/context/base/data-lst.lua @@ -14,6 +14,8 @@ resolvers.listers = resolvers.listers or { } local resolvers = resolvers +local report_lists = logs.new("resolvers","lists") + local function tabstr(str) if type(str) == 'table' then return concat(str," | ") @@ -42,11 +44,11 @@ function resolvers.listers.variables(pattern) local exp = table.fastcopy(expansions) for key, value in table.sortedpairs(configured) do if key ~= "" and (pattern == "" or find(upper(key),pattern)) then - logs.simple(key) - logs.simple(" env: %s",tabstr(rawget(environment,key)) or "unset") - logs.simple(" var: %s",tabstr(configured[key]) or "unset") - logs.simple(" exp: %s",tabstr(expansions[key]) or "unset") - logs.simple(" res: %s",resolvers.resolve(expansions[key]) or "unset") + report_lists(key) + report_lists(" env: %s",tabstr(rawget(environment,key)) or "unset") + report_lists(" var: %s",tabstr(configured[key]) or "unset") + report_lists(" exp: %s",tabstr(expansions[key]) or "unset") + report_lists(" res: %s",resolvers.resolve(expansions[key]) or "unset") end end instance.environment = table.fastcopy(env) diff --git a/tex/context/base/data-lua.lua b/tex/context/base/data-lua.lua index 9509c97f0..ead64fe42 100644 --- a/tex/context/base/data-lua.lua +++ b/tex/context/base/data-lua.lua @@ -12,7 +12,7 @@ if not modules then modules = { } end modules ['data-lua'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_libraries = logs.new("resolvers","libraries") local gsub, insert = string.gsub, table.insert local unpack = unpack or table.unpack @@ -44,7 +44,7 @@ local function thepath(...) local t = { ... } t[#t+1] = "?.lua" local path = file.join(unpack(t)) if trace_locating then - report_resolvers("! appending '%s' to 'package.path'",path) + report_libraries("! appending '%s' to 'package.path'",path) end return path end @@ -66,11 +66,11 @@ local function loaded(libpaths,name,simple) local libpath = libpaths[i] local resolved = gsub(libpath,"%?",simple) if trace_locating then -- more detail - report_resolvers("! checking for '%s' on 'package.path': '%s' => '%s'",simple,libpath,resolved) + report_libraries("! checking for '%s' on 'package.path': '%s' => '%s'",simple,libpath,resolved) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'package.path': '%s'",name,resolved) + report_libraries("! lib '%s' located via 'package.path': '%s'",name,resolved) end return loadfile(resolved) end @@ -79,17 +79,17 @@ end package.loaders[2] = function(name) -- was [#package.loaders+1] if trace_locating then -- mode detail - report_resolvers("! locating '%s'",name) + report_libraries("! locating '%s'",name) end for i=1,#libformats do local format = libformats[i] local resolved = resolvers.findfile(name,format) or "" if trace_locating then -- mode detail - report_resolvers("! checking for '%s' using 'libformat path': '%s'",name,format) + report_libraries("! checking for '%s' using 'libformat path': '%s'",name,format) end if resolved ~= "" then if trace_locating then - report_resolvers("! lib '%s' located via environment: '%s'",name,resolved) + report_libraries("! lib '%s' located via environment: '%s'",name,resolved) end return loadfile(resolved) end @@ -112,11 +112,11 @@ package.loaders[2] = function(name) -- was [#package.loaders+1] local path = paths[p] local resolved = file.join(path,libname) if trace_locating then -- mode detail - report_resolvers("! checking for '%s' using 'clibformat path': '%s'",libname,path) + report_libraries("! checking for '%s' using 'clibformat path': '%s'",libname,path) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'clibformat': '%s'",libname,resolved) + report_libraries("! lib '%s' located via 'clibformat': '%s'",libname,resolved) end return package.loadlib(resolved,name) end @@ -126,28 +126,28 @@ package.loaders[2] = function(name) -- was [#package.loaders+1] local libpath = clibpaths[i] local resolved = gsub(libpath,"?",simple) if trace_locating then -- more detail - report_resolvers("! checking for '%s' on 'package.cpath': '%s'",simple,libpath) + report_libraries("! checking for '%s' on 'package.cpath': '%s'",simple,libpath) end if file.is_readable(resolved) then if trace_locating then - report_resolvers("! lib '%s' located via 'package.cpath': '%s'",name,resolved) + report_libraries("! lib '%s' located via 'package.cpath': '%s'",name,resolved) end return package.loadlib(resolved,name) end end -- just in case the distribution is messed up if trace_loading then -- more detail - report_resolvers("! checking for '%s' using 'luatexlibs': '%s'",name) + report_libraries("! checking for '%s' using 'luatexlibs': '%s'",name) end local resolved = resolvers.findfile(file.basename(name),'luatexlibs') or "" if resolved ~= "" then if trace_locating then - report_resolvers("! lib '%s' located by basename via environment: '%s'",name,resolved) + report_libraries("! lib '%s' located by basename via environment: '%s'",name,resolved) end return loadfile(resolved) end if trace_locating then - report_resolvers('? unable to locate lib: %s',name) + report_libraries('? unable to locate lib: %s',name) end -- return "unable to locate " .. name end diff --git a/tex/context/base/data-met.lua b/tex/context/base/data-met.lua index a02e7eeb4..f9906c854 100644 --- a/tex/context/base/data-met.lua +++ b/tex/context/base/data-met.lua @@ -17,7 +17,7 @@ trackers.register("resolvers.methods", function(v) trace_methods = v end) --~ trace_methods = true -local report_resolvers = logs.new("resolvers") +local report_methods = logs.new("resolvers","methods") local allocate = utilities.storage.allocate @@ -59,41 +59,41 @@ local function methodhandler(what,first,...) -- filename can be nil or false local resolver = namespace and namespace[scheme] if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, scheme=%s, argument=%s",what,how,scheme,first) + report_methods("resolver: method=%s, how=%s, scheme=%s, argument=%s",what,how,scheme,first) end return resolver(specification,...) else resolver = namespace.default or namespace.file if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, default, argument=%s",what,how,first) + report_methods("resolver: method=%s, how=%s, default, argument=%s",what,how,first) end return resolver(specification,...) elseif trace_methods then - report_resolvers("resolver: method=%s, how=%s, no handler",what,how) + report_methods("resolver: method=%s, how=%s, no handler",what,how) end end elseif how == "tag" then local resolver = namespace and namespace[first] if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, tag=%s",what,how,first) + report_methods("resolver: method=%s, how=%s, tag=%s",what,how,first) end return resolver(...) else resolver = namespace.default or namespace.file if resolver then if trace_methods then - report_resolvers("resolver: method=%s, how=%s, default",what,how) + report_methods("resolver: method=%s, how=%s, default",what,how) end return resolver(...) elseif trace_methods then - report_resolvers("resolver: method=%s, how=%s, unknown",what,how) + report_methods("resolver: method=%s, how=%s, unknown",what,how) end end end else - report_resolvers("resolver: method=%s, unknown",what) + report_methods("resolver: method=%s, unknown",what) end end diff --git a/tex/context/base/data-res.lua b/tex/context/base/data-res.lua index e9dbc5e67..cd63941da 100644 --- a/tex/context/base/data-res.lua +++ b/tex/context/base/data-res.lua @@ -30,7 +30,7 @@ local trace_locating = false trackers.register("resolvers.locating", functi local trace_detail = false trackers.register("resolvers.details", function(v) trace_detail = v end) local trace_expansions = false trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -local report_resolvers = logs.new("resolvers") +local report_resolving = logs.new("resolvers","resolving") local resolvers = resolvers @@ -140,7 +140,7 @@ end function resolvers.newinstance() -- todo: all vars will become lowercase and alphanum only if trace_locating then - report_resolvers("creating instance") + report_resolving("creating instance") end local environment, variables, expansions, order = allocate(), allocate(), allocate(), allocate() @@ -258,9 +258,9 @@ local function reportcriticalvariables() for i=1,#resolvers.criticalvars do local k = resolvers.criticalvars[i] local v = resolvers.getenv(k) or "unknown" -- this one will not resolve ! - report_resolvers("variable '%s' set to '%s'",k,v) + report_resolving("variable '%s' set to '%s'",k,v) end - report_resolvers() + report_resolving() end reportcriticalvariables = function() end end @@ -284,17 +284,17 @@ local function identify_configuration_files() if lfs.isfile(realname) then specification[#specification+1] = filename if trace_locating then - report_resolvers("found configuration file '%s'",realname) + report_resolving("found configuration file '%s'",realname) end elseif trace_locating then - report_resolvers("unknown configuration file '%s'",realname) + report_resolving("unknown configuration file '%s'",realname) end end if trace_locating then - report_resolvers() + report_resolving() end elseif trace_locating then - report_resolvers("configuration files already identified") + report_resolving("configuration files already identified") end end @@ -314,8 +314,8 @@ local function load_configuration_files() data = data and data.content if data then if trace_locating then - report_resolvers("loading configuration file '%s'",filename) - report_resolvers() + report_resolving("loading configuration file '%s'",filename) + report_resolving() end local variables = data.variables or { } local warning = false @@ -325,7 +325,7 @@ local function load_configuration_files() initializesetter(filename,k,v) elseif variables[k] == nil then if trace_locating and not warning then - report_resolvers("variables like '%s' in configuration file '%s' should move to the 'variables' subtable", + report_resolving("variables like '%s' in configuration file '%s' should move to the 'variables' subtable", k,resolvers.resolve(filename)) warning = true end @@ -338,7 +338,7 @@ local function load_configuration_files() local cnfspec = variables["TEXMFCNF"] if cnfspec then if trace_locating then - report_resolvers("reloading configuration due to TEXMF redefinition") + report_resolving("reloading configuration due to TEXMF redefinition") end -- we push the value into the main environment (osenv) so -- that it takes precedence over the default one and therefore @@ -357,13 +357,13 @@ local function load_configuration_files() else if trace_locating then - report_resolvers("skipping configuration file '%s' (no content)",filename) + report_resolving("skipping configuration file '%s' (no content)",filename) end setups[pathname] = { } instance.loaderror = true end elseif trace_locating then - report_resolvers("skipping configuration file '%s' (no file)",filename) + report_resolving("skipping configuration file '%s' (no file)",filename) end instance.order[#instance.order+1] = instance.setups[pathname] if instance.loaderror then @@ -371,7 +371,7 @@ local function load_configuration_files() end end elseif trace_locating then - report_resolvers("warning: no lua configuration files found") + report_resolving("warning: no lua configuration files found") end end @@ -407,19 +407,19 @@ local function locate_file_databases() end if trace_locating then if runtime then - report_resolvers("locating list of '%s' (runtime)",path) + report_resolving("locating list of '%s' (runtime)",path) else - report_resolvers("locating list of '%s' (cached)",path) + report_resolving("locating list of '%s' (cached)",path) end end methodhandler('locators',stripped) end end if trace_locating then - report_resolvers() + report_resolving() end elseif trace_locating then - report_resolvers("no texmf paths are defined (using TEXMF)") + report_resolving("no texmf paths are defined (using TEXMF)") end end @@ -430,7 +430,7 @@ local function generate_file_databases() methodhandler('generators',hash.name) end if trace_locating then - report_resolvers() + report_resolving() end end @@ -442,11 +442,11 @@ local function save_file_databases() -- will become cachers local content = instance.files[cachename] caches.collapsecontent(content) if trace_locating then - report_resolvers("saving tree '%s'",cachename) + report_resolving("saving tree '%s'",cachename) end caches.savecontent(cachename,"files",content) elseif trace_locating then - report_resolvers("not saving runtime tree '%s'",cachename) + report_resolving("not saving runtime tree '%s'",cachename) end end end @@ -471,7 +471,7 @@ function resolvers.appendhash(type,name,cache) -- safeguard ... tricky as it's actually a bug when seen twice if not instance.hashed[name] then if trace_locating then - report_resolvers("hash '%s' appended",name) + report_resolving("hash '%s' appended",name) end insert(instance.hashes, { type = type, name = name, cache = cache } ) instance.hashed[name] = cache @@ -482,7 +482,7 @@ function resolvers.prependhash(type,name,cache) -- safeguard ... tricky as it's actually a bug when seen twice if not instance.hashed[name] then if trace_locating then - report_resolvers("hash '%s' prepended",name) + report_resolving("hash '%s' prepended",name) end insert(instance.hashes, 1, { type = type, name = name, cache = cache } ) instance.hashed[name] = cache @@ -715,9 +715,9 @@ function isreadable(name) local readable = lfs.isfile(name) -- not file.is_readable(name) asit can be a dir if trace_detail then if readable then - report_resolvers("file '%s' is readable",name) + report_resolving("file '%s' is readable",name) else - report_resolvers("file '%s' is not readable", name) + report_resolving("file '%s' is not readable", name) end end return readable @@ -731,7 +731,7 @@ local function collect_files(names) for k=1,#names do local fname = names[k] if trace_detail then - report_resolvers("checking name '%s'",fname) + report_resolving("checking name '%s'",fname) end local bname = filebasename(fname) local dname = filedirname(fname) @@ -747,7 +747,7 @@ local function collect_files(names) local files = blobpath and instance.files[blobpath] if files then if trace_detail then - report_resolvers("deep checking '%s' (%s)",blobpath,bname) + report_resolving("deep checking '%s' (%s)",blobpath,bname) end local blobfile = files[bname] if not blobfile then @@ -767,7 +767,7 @@ local function collect_files(names) local search = filejoin(blobroot,blobfile,bname) local result = methodhandler('concatinators',hash.type,blobroot,blobfile,bname) if trace_detail then - report_resolvers("match: kind '%s', search '%s', result '%s'",kind,search,result) + report_resolving("match: kind '%s', search '%s', result '%s'",kind,search,result) end noffiles = noffiles + 1 filelist[noffiles] = { kind, search, result } @@ -781,7 +781,7 @@ local function collect_files(names) local search = filejoin(blobroot,vv,bname) local result = methodhandler('concatinators',hash.type,blobroot,vv,bname) if trace_detail then - report_resolvers("match: kind '%s', search '%s', result '%s'",kind,search,result) + report_resolving("match: kind '%s', search '%s', result '%s'",kind,search,result) end noffiles = noffiles + 1 filelist[noffiles] = { kind, search, result } @@ -790,7 +790,7 @@ local function collect_files(names) end end elseif trace_locating then - report_resolvers("no match in '%s' (%s)",blobpath,bname) + report_resolving("no match in '%s' (%s)",blobpath,bname) end end end @@ -831,7 +831,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : stamp = filename .. "--" .. askedformat if instance.found[stamp] then if trace_locating then - report_resolvers("remembered file '%s'",filename) + report_resolving("remembered file '%s'",filename) end resolvers.registerintrees(filename) -- for tracing used files return instance.found[stamp] @@ -840,7 +840,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : if not dangerous[askedformat] then if isreadable(filename) then if trace_detail then - report_resolvers("file '%s' found directly",filename) + report_resolving("file '%s' found directly",filename) end if stamp then instance.found[stamp] = { filename } @@ -850,13 +850,13 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end if find(filename,'%*') then if trace_locating then - report_resolvers("checking wildcard '%s'", filename) + report_resolving("checking wildcard '%s'", filename) end result = resolvers.findwildcardfiles(filename) -- we can use th elocal elseif file.is_qualified_path(filename) then if isreadable(filename) then if trace_locating then - report_resolvers("qualified name '%s'", filename) + report_resolving("qualified name '%s'", filename) end result = { filename } else @@ -869,7 +869,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : forcedname = filename .. "." .. s if isreadable(forcedname) then if trace_locating then - report_resolvers("no suffix, forcing format filetype '%s'", s) + report_resolving("no suffix, forcing format filetype '%s'", s) end result, ok = { forcedname }, true break @@ -922,7 +922,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : -- end end if not ok and trace_locating then - report_resolvers("qualified name '%s'", filename) + report_resolving("qualified name '%s'", filename) end end else @@ -941,13 +941,13 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : wantedfiles[#wantedfiles+1] = forcedname filetype = resolvers.formatofsuffix(forcedname) if trace_locating then - report_resolvers("forcing filetype '%s'",filetype) + report_resolving("forcing filetype '%s'",filetype) end end else filetype = resolvers.formatofsuffix(filename) if trace_locating then - report_resolvers("using suffix based filetype '%s'",filetype) + report_resolving("using suffix based filetype '%s'",filetype) end end else @@ -961,7 +961,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end filetype = askedformat if trace_locating then - report_resolvers("using given filetype '%s'",filetype) + report_resolving("using given filetype '%s'",filetype) end end local typespec = resolvers.variableofformat(filetype) @@ -969,7 +969,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : if not pathlist or #pathlist == 0 then -- no pathlist, access check only / todo == wildcard if trace_detail then - report_resolvers("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) + report_resolving("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) end for k=1,#wantedfiles do local fname = wantedfiles[k] @@ -997,7 +997,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : end end if trace_detail then - report_resolvers("checking filename '%s'",filename) + report_resolving("checking filename '%s'",filename) end for k=1,#pathlist do local path = pathlist[k] @@ -1009,7 +1009,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : -- compare list entries with permitted pattern -- /xx /xx// local expression = makepathexpression(pathname) if trace_detail then - report_resolvers("using pattern '%s' for path '%s'",expression,pathname) + report_resolving("using pattern '%s' for path '%s'",expression,pathname) end for k=1,#filelist do local fl = filelist[k] @@ -1021,16 +1021,16 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : done = true if allresults then if trace_detail then - report_resolvers("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) + report_resolving("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) end else if trace_detail then - report_resolvers("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) + report_resolving("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) end break end elseif trace_detail then - report_resolvers("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) + report_resolving("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) end end end @@ -1047,7 +1047,7 @@ local function collect_instance_files(filename,askedformat,allresults) -- todo : local fname = filejoin(ppname,w) if isreadable(fname) then if trace_detail then - report_resolvers("found '%s' by scanning",fname) + report_resolving("found '%s' by scanning",fname) end result[#result+1] = fname done = true @@ -1085,7 +1085,7 @@ end --~ local function find_direct(filename) --~ if not dangerous[askedformat] and isreadable(filename) then --~ if trace_detail then ---~ report_resolvers("file '%s' found directly",filename) +--~ report_resolving("file '%s' found directly",filename) --~ end --~ return { filename } --~ end @@ -1094,7 +1094,7 @@ end --~ local function find_wildcard(filename) --~ if find(filename,'%*') then --~ if trace_locating then ---~ report_resolvers("checking wildcard '%s'", filename) +--~ report_resolving("checking wildcard '%s'", filename) --~ end --~ return resolvers.findwildcardfiles(filename) -- we can use the local --~ end @@ -1105,16 +1105,16 @@ end --~ return --~ end --~ if trace_locating then ---~ report_resolvers("checking qualified name '%s'", filename) +--~ report_resolving("checking qualified name '%s'", filename) --~ end --~ if isreadable(filename) then --~ if trace_detail then ---~ report_resolvers("qualified file '%s' found", filename) +--~ report_resolving("qualified file '%s' found", filename) --~ end --~ return { filename } --~ else --~ if trace_detail then ---~ report_resolvers("locating qualified file '%s'", filename) +--~ report_resolving("locating qualified file '%s'", filename) --~ end --~ local forcedname, suffix = "", fileextname(filename) --~ if suffix == "" then -- why @@ -1125,7 +1125,7 @@ end --~ forcedname = filename .. "." .. s --~ if isreadable(forcedname) then --~ if trace_locating then ---~ report_resolvers("no suffix, forcing format filetype '%s'", s) +--~ report_resolving("no suffix, forcing format filetype '%s'", s) --~ end --~ return { forcedname } --~ end @@ -1203,13 +1203,13 @@ end --~ wantedfiles[#wantedfiles+1] = forcedname --~ filetype = resolvers.formatofsuffix(forcedname) --~ if trace_locating then ---~ report_resolvers("forcing filetype '%s'",filetype) +--~ report_resolving("forcing filetype '%s'",filetype) --~ end --~ end --~ else --~ filetype = resolvers.formatofsuffix(filename) --~ if trace_locating then ---~ report_resolvers("using suffix based filetype '%s'",filetype) +--~ report_resolving("using suffix based filetype '%s'",filetype) --~ end --~ end --~ else @@ -1223,7 +1223,7 @@ end --~ end --~ filetype = askedformat --~ if trace_locating then ---~ report_resolvers("using given filetype '%s'",filetype) +--~ report_resolving("using given filetype '%s'",filetype) --~ end --~ end --~ return filetype, wantedfiles @@ -1242,7 +1242,7 @@ end --~ end --~ end --~ if trace_detail then ---~ report_resolvers("checking filename '%s'",filename) +--~ report_resolving("checking filename '%s'",filename) --~ end --~ local result = { } --~ for k=1,#pathlist do @@ -1255,7 +1255,7 @@ end --~ -- compare list entries with permitted pattern -- /xx /xx// --~ local expression = makepathexpression(pathname) --~ if trace_detail then ---~ report_resolvers("using pattern '%s' for path '%s'",expression,pathname) +--~ report_resolving("using pattern '%s' for path '%s'",expression,pathname) --~ end --~ for k=1,#filelist do --~ local fl = filelist[k] @@ -1267,16 +1267,16 @@ end --~ done = true --~ if allresults then --~ if trace_detail then ---~ report_resolvers("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) +--~ report_resolving("match to '%s' in hash for file '%s' and path '%s', continue scanning",expression,f,d) --~ end --~ else --~ if trace_detail then ---~ report_resolvers("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) +--~ report_resolving("match to '%s' in hash for file '%s' and path '%s', quit scanning",expression,f,d) --~ end --~ break --~ end --~ elseif trace_detail then ---~ report_resolvers("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) +--~ report_resolving("no match to '%s' in hash for file '%s' and path '%s'",expression,f,d) --~ end --~ end --~ end @@ -1293,7 +1293,7 @@ end --~ local fname = filejoin(ppname,w) --~ if isreadable(fname) then --~ if trace_detail then ---~ report_resolvers("found '%s' by scanning",fname) +--~ report_resolving("found '%s' by scanning",fname) --~ end --~ result[#result+1] = fname --~ done = true @@ -1319,7 +1319,7 @@ end --~ local function find_onpath(filename,filetype,wantedfiles) --~ local done = nil --~ if trace_detail then ---~ report_resolvers("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) +--~ report_resolving("checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | ")) --~ end --~ for k=1,#wantedfiles do --~ local fname = wantedfiles[k] @@ -1348,7 +1348,7 @@ end --~ result = stamp and instance.found[stamp] --~ if result then --~ if trace_locating then ---~ report_resolvers("remembered file '%s'",filename) +--~ report_resolving("remembered file '%s'",filename) --~ end --~ return result --~ end @@ -1373,7 +1373,7 @@ end --~ end --~ if stamp then --~ if trace_locating then ---~ report_resolvers("remembering file '%s'",filename) +--~ report_resolving("remembering file '%s'",filename) --~ end --~ instance.found[stamp] = result --~ end @@ -1543,7 +1543,7 @@ end local function report(str) if trace_locating then - report_resolvers(str) -- has already verbose + report_resolving(str) -- has already verbose else print(str) end diff --git a/tex/context/base/data-sch.lua b/tex/context/base/data-sch.lua index af86cd726..7d777319f 100644 --- a/tex/context/base/data-sch.lua +++ b/tex/context/base/data-sch.lua @@ -13,7 +13,7 @@ local finders, openers, loaders = resolvers.finders, resolvers.openers, resolver local trace_schemes = false trackers.register("resolvers.schemes",function(v) trace_schemes = v end) -local report_schemes = logs.new("schemes") +local report_schemes = logs.new("resolvers","schemes") local resolvers = resolvers diff --git a/tex/context/base/data-tex.lua b/tex/context/base/data-tex.lua index f8c847b22..38ecaed74 100644 --- a/tex/context/base/data-tex.lua +++ b/tex/context/base/data-tex.lua @@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['data-tex'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_tex = logs.new("resolvers","tex") local resolvers = resolvers @@ -62,7 +62,7 @@ function helpers.textopener(tag,filename,filehandle) if type(lines) == "string" then local kind = utffiletype(lines) if trace_locating then - report_resolvers("%s opener, '%s' opened using method '%s'",tag,filename,kind) + report_tex("%s opener, '%s' opened using method '%s'",tag,filename,kind) end if kind == "utf-16-be" then lines = unicode.utf16_to_utf8_be(lines) @@ -80,7 +80,7 @@ function helpers.textopener(tag,filename,filehandle) lines = splitlines(lines) end elseif trace_locating then - report_resolvers("%s opener, '%s' opened",tag,filename) + report_tex("%s opener, '%s' opened",tag,filename) end logs.show_open(filename) return { @@ -89,7 +89,7 @@ function helpers.textopener(tag,filename,filehandle) currentline = 0, close = function() if trace_locating then - report_resolvers("%s closer, '%s' closed",tag,filename) + report_tex("%s closer, '%s' closed",tag,filename) end logs.show_close(filename) t = nil @@ -146,7 +146,7 @@ local function installhandler(namespace,what,where,func) if where == "before" or where == "after" then sequencers.appendaction(namespace,where,func) else - report_resolvers("installing input %s handlers in %s is not possible",what,tostring(where)) + report_tex("installing input %s handlers in %s is not possible",what,tostring(where)) end end @@ -155,8 +155,8 @@ function resolvers.installinputfilehandler(...) installhandler(helpers.textfilea -- local basename = file.basename -- resolvers.installinputlinehandler(function(str,filename,linenumber,noflines) --- logs.simple("[lc] file: %s, line: %s of %s, length: %s",basename(filename),linenumber,noflines,#str) +-- report_tex("[lc] file: %s, line: %s of %s, length: %s",basename(filename),linenumber,noflines,#str) -- end) -- resolvers.installinputfilehandler(function(str,filename) --- logs.simple("[fc] file: %s, length: %s",basename(filename),#str) +-- report_tex("[fc] file: %s, length: %s",basename(filename),#str) -- end) diff --git a/tex/context/base/data-tmf.lua b/tex/context/base/data-tmf.lua index 275b56150..4c39b57cf 100644 --- a/tex/context/base/data-tmf.lua +++ b/tex/context/base/data-tmf.lua @@ -8,6 +8,8 @@ if not modules then modules = { } end modules ['data-tmf'] = { local resolvers = resolvers +local report_tds = logs.new("resolvers","tds") + -- = << -- ? ?? -- < += @@ -28,11 +30,11 @@ function resolvers.load_tree(tree,resolve) local newpath = file.join(newtree,"bin") if not lfs.isdir(newtree) then - logs.simple("no '%s' under tree %s",texos,tree) + report_tds("no '%s' under tree %s",texos,tree) os.exit() end if not lfs.isdir(newpath) then - logs.simple("no '%s/bin' under tree %s",texos,tree) + report_tds("no '%s/bin' under tree %s",texos,tree) os.exit() end @@ -56,8 +58,8 @@ function resolvers.load_tree(tree,resolve) setenv('TEXMFCNF', resolvers.luacnfspec, not resolve) setenv("PATH", newpath .. io.pathseparator .. getenv("PATH")) - logs.simple("changing from root '%s' to '%s'",oldroot,newroot) - logs.simple("prepending '%s' to binary path",newpath) - logs.simple() + report_tds("changing from root '%s' to '%s'",oldroot,newroot) + report_tds("prepending '%s' to binary path",newpath) + report_tds() end end diff --git a/tex/context/base/data-tmp.lua b/tex/context/base/data-tmp.lua index 8dc43b179..4084eda62 100644 --- a/tex/context/base/data-tmp.lua +++ b/tex/context/base/data-tmp.lua @@ -28,8 +28,8 @@ local mkdirs, isdir = dir.mkdirs, lfs.isdir local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end) -local report_cache = logs.new("cache") -local report_resolvers = logs.new("resolvers") +local report_caches = logs.new("resolvers","caches") +local report_resolvers = logs.new("resolvers","caching") local resolvers = resolvers @@ -89,7 +89,7 @@ local function identify() if not caches.ask or io.ask(format("\nShould I create the cache path %s?",cachepath), "no", { "yes", "no" }) == "yes" then mkdirs(cachepath) if isdir(cachepath) and file.is_writable(cachepath) then - report_cache("created: %s",cachepath) + report_caches("created: %s",cachepath) writable = cachepath readables[#readables+1] = cachepath end @@ -123,10 +123,10 @@ local function identify() -- Some extra checking. If we have no writable or readable path then we simply -- quit. if not writable then - report_cache("fatal error: there is no valid writable cache path defined") + report_caches("fatal error: there is no valid writable cache path defined") os.exit() elseif #readables == 0 then - report_cache("fatal error: there is no valid readable cache path defined") + report_caches("fatal error: there is no valid readable cache path defined") os.exit() end -- why here @@ -148,9 +148,9 @@ local function identify() -- end if trace_cache then for i=1,#readables do - report_cache("using readable path '%s' (order %s)",readables[i],i) + report_caches("using readable path '%s' (order %s)",readables[i],i) end - report_cache("using writable path '%s'",writable) + report_caches("using writable path '%s'",writable) end identify = function() return writable, readables @@ -185,7 +185,7 @@ function caches.hashed(tree) tree = lower(tree) local hash = md5.hex(tree) if trace_cache or trace_locating then - report_cache("hashing tree %s, hash %s",tree,hash) + report_caches("hashing tree %s, hash %s",tree,hash) end return hash end diff --git a/tex/context/base/data-tre.lua b/tex/context/base/data-tre.lua index b3b96094a..3de7bc5b5 100644 --- a/tex/context/base/data-tre.lua +++ b/tex/context/base/data-tre.lua @@ -12,7 +12,7 @@ local find, gsub, format = string.find, string.gsub, string.format local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_trees = logs.new("resolvers","trees") local resolvers = resolvers @@ -50,18 +50,18 @@ function resolvers.locators.tree(specification) local name = specification.filename if name ~= '' and lfs.isdir(name) then if trace_locating then - report_resolvers("tree locator '%s' found",name) + report_trees("locator '%s' found",name) end resolvers.appendhash('tree',name,false) -- don't cache elseif trace_locating then - report_resolvers("tree locator '%s' not found",name) + report_trees("locator '%s' not found",name) end end function resolvers.hashers.tree(specification) local name = specification.filename if trace_locating then - report_resolvers("analysing tree '%s'",name) + report_trees("analysing '%s'",name) end resolvers.methodhandler("hashers",name) end diff --git a/tex/context/base/data-use.lua b/tex/context/base/data-use.lua index d4e9b53fe..9a31b13c8 100644 --- a/tex/context/base/data-use.lua +++ b/tex/context/base/data-use.lua @@ -10,7 +10,7 @@ local format, lower, gsub, find = string.format, string.lower, string.gsub, stri local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_mounts = logs.new("resolvers","mounts") local resolvers = resolvers @@ -35,7 +35,7 @@ function resolvers.automount(usecache) -- skip elseif find(line,"^zip://") then if trace_locating then - report_resolvers("mounting %s",line) + report_mounts("mounting %s",line) end table.insert(resolvers.automounted,line) resolvers.usezipfile(line) diff --git a/tex/context/base/data-vir.lua b/tex/context/base/data-vir.lua index c1a6b3366..2a7ee1d8b 100644 --- a/tex/context/base/data-vir.lua +++ b/tex/context/base/data-vir.lua @@ -8,8 +8,8 @@ if not modules then modules = { } end modules ['data-vir'] = { local format = string.format -local trace_virtual = false -local report_resolvers = logs.new("resolvers") +local trace_virtual = false +local report_virtual = logs.new("resolvers","virtual") trackers.register("resolvers.locating", function(v) trace_virtual = v end) trackers.register("resolvers.virtual", function(v) trace_virtual = v end) @@ -25,7 +25,7 @@ function savers.virtual(specification,content) local path = specification.path local filename = format(template,path ~= "" and path or "virtualfile",n) if trace_virtual then - report_resolvers("virtual saver: file '%s' saved",filename) + report_virtual("saver: file '%s' saved",filename) end data[filename] = content return filename @@ -36,12 +36,12 @@ function finders.virtual(specification) local d = data[original] if d then if trace_virtual then - report_resolvers("virtual finder: file '%s' found",original) + report_virtual("finder: file '%s' found",original) end return original else if trace_virtual then - report_resolvers("virtual finder: unknown file '%s'",original) + report_virtual("finder: unknown file '%s'",original) end return finders.notfound() end @@ -52,13 +52,13 @@ function openers.virtual(specification) local d = data[original] if d then if trace_virtual then - report_resolvers("virtual opener, file '%s' opened",original) + report_virtual("opener, file '%s' opened",original) end data[original] = nil return openers.helpers.textopener("virtual",original,d) else if trace_virtual then - report_resolvers("virtual opener, file '%s' not found",original) + report_virtual("opener, file '%s' not found",original) end return openers.notfound() end @@ -69,13 +69,13 @@ function loaders.virtual(specification) local d = data[original] if d then if trace_virtual then - report_resolvers("virtual loader, file '%s' loaded",original) + report_virtual("loader, file '%s' loaded",original) end data[original] = nil return true, d, #d end if trace_virtual then - report_resolvers("virtual loader, file '%s' not loaded",original) + report_virtual("loader, file '%s' not loaded",original) end return loaders.notfound() end diff --git a/tex/context/base/data-zip.lua b/tex/context/base/data-zip.lua index 25d31fb6b..706461aaf 100644 --- a/tex/context/base/data-zip.lua +++ b/tex/context/base/data-zip.lua @@ -12,7 +12,7 @@ local format, find, match = string.format, string.find, string.match local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_zip = logs.new("resolvers","zip") -- zip:///oeps.zip?name=bla/bla.tex -- zip:///oeps.zip?tree=tex/texmf-local @@ -65,9 +65,9 @@ function resolvers.locators.zip(specification) local zipfile = archive and archive ~= "" and zip.openarchive(archive) -- tricky, could be in to be initialized tree if trace_locating then if zipfile then - report_resolvers("zip locator, archive '%s' found",archive) + report_zip("locator, archive '%s' found",archive) else - report_resolvers("zip locator, archive '%s' not found",archive) + report_zip("locator, archive '%s' not found",archive) end end end @@ -75,7 +75,7 @@ end function resolvers.hashers.zip(specification) local archive = specification.filename if trace_locating then - report_resolvers("loading zip file '%s'",archive) + report_zip("loading file '%s'",archive) end resolvers.usezipfile(specification.original) end @@ -98,25 +98,25 @@ function resolvers.finders.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip finder, archive '%s' found",archive) + report_zip("finder, archive '%s' found",archive) end local dfile = zfile:open(queryname) if dfile then dfile = zfile:close() if trace_locating then - report_resolvers("zip finder, file '%s' found",queryname) + report_zip("finder, file '%s' found",queryname) end return specification.original elseif trace_locating then - report_resolvers("zip finder, file '%s' not found",queryname) + report_zip("finder, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip finder, unknown archive '%s'",archive) + report_zip("finder, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip finder, '%s' not found",original) + report_zip("finder, '%s' not found",original) end return resolvers.finders.notfound() end @@ -131,24 +131,24 @@ function resolvers.openers.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip opener, archive '%s' opened",archive) + report_zip("opener, archive '%s' opened",archive) end local dfile = zfile:open(queryname) if dfile then if trace_locating then - report_resolvers("zip opener, file '%s' found",queryname) + report_zip("opener, file '%s' found",queryname) end return resolvers.openers.helpers.textopener('zip',original,dfile) elseif trace_locating then - report_resolvers("zip opener, file '%s' not found",queryname) + report_zip("opener, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip opener, unknown archive '%s'",archive) + report_zip("opener, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip opener, '%s' not found",original) + report_zip("opener, '%s' not found",original) end return resolvers.openers.notfound() end @@ -163,27 +163,27 @@ function resolvers.loaders.zip(specification) local zfile = zip.openarchive(archive) if zfile then if trace_locating then - report_resolvers("zip loader, archive '%s' opened",archive) + report_zip("loader, archive '%s' opened",archive) end local dfile = zfile:open(queryname) if dfile then logs.show_load(original) if trace_locating then - report_resolvers("zip loader, file '%s' loaded",original) + report_zip("loader, file '%s' loaded",original) end local s = dfile:read("*all") dfile:close() return true, s, #s elseif trace_locating then - report_resolvers("zip loader, file '%s' not found",queryname) + report_zip("loader, file '%s' not found",queryname) end elseif trace_locating then - report_resolvers("zip loader, unknown archive '%s'",archive) + report_zip("loader, unknown archive '%s'",archive) end end end if trace_locating then - report_resolvers("zip loader, '%s' not found",original) + report_zip("loader, '%s' not found",original) end return resolvers.openers.notfound() end @@ -199,7 +199,7 @@ function resolvers.usezipfile(archive) if z then local tree = url.query(specification.query).tree or "" if trace_locating then - report_resolvers("zip registering, registering archive '%s'",archive) + report_zip("registering, registering archive '%s'",archive) end statistics.starttiming(resolvers.instance) resolvers.prependhash('zip',archive) @@ -208,10 +208,10 @@ function resolvers.usezipfile(archive) instance.files[archive] = resolvers.registerzipfile(z,tree) statistics.stoptiming(resolvers.instance) elseif trace_locating then - report_resolvers("zip registering, unknown archive '%s'",archive) + report_zip("registering, unknown archive '%s'",archive) end elseif trace_locating then - report_resolvers("zip registering, '%s' not found",archive) + report_zip("registering, '%s' not found",archive) end end @@ -223,7 +223,7 @@ function resolvers.registerzipfile(z,tree) filter = format("^%s/(.+)/(.-)$",tree) end if trace_locating then - report_resolvers("zip registering, using filter '%s'",filter) + report_zip("registering, using filter '%s'",filter) end local register, n = resolvers.registerfile, 0 for i in z:files() do @@ -240,6 +240,6 @@ function resolvers.registerzipfile(z,tree) n = n + 1 end end - report_resolvers("zip registering, %s files registered",n) + report_zip("registering, %s files registered",n) return files end diff --git a/tex/context/base/enco-ini.mkiv b/tex/context/base/enco-ini.mkiv index 2c15e2ab7..737a8b6f1 100644 --- a/tex/context/base/enco-ini.mkiv +++ b/tex/context/base/enco-ini.mkiv @@ -36,6 +36,10 @@ \unprotect +%D Obsolete (but sometimes used in styles) + +\let\defaultencoding\s!default + %D \macros %D {defineaccent, definecharacter, definecommand} diff --git a/tex/context/base/font-afm.lua b/tex/context/base/font-afm.lua index 635780ac9..71c4f9fc3 100644 --- a/tex/context/base/font-afm.lua +++ b/tex/context/base/font-afm.lua @@ -21,7 +21,7 @@ local trace_features = false trackers.register("afm.features", function(v) trac local trace_indexing = false trackers.register("afm.indexing", function(v) trace_indexing = v end) local trace_loading = false trackers.register("afm.loading", function(v) trace_loading = v end) -local report_afm = logs.new("load afm") +local report_afm = logs.new("fonts","afm loading") local next, type = next, type local format, match, gmatch, lower, gsub, strip = string.format, string.match, string.gmatch, string.lower, string.gsub, string.strip diff --git a/tex/context/base/font-chk.lua b/tex/context/base/font-chk.lua index b8a4e924c..b3a08e50c 100644 --- a/tex/context/base/font-chk.lua +++ b/tex/context/base/font-chk.lua @@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['font-chk'] = { -- possible optimization: delayed initialization of vectors -local report_fonts = logs.new("fonts") +local report_fonts = logs.new("fonts","checking") local fonts = fonts diff --git a/tex/context/base/font-cid.lua b/tex/context/base/font-cid.lua index 1d03bca4d..ed9a25563 100644 --- a/tex/context/base/font-cid.lua +++ b/tex/context/base/font-cid.lua @@ -12,7 +12,7 @@ local lpegmatch = lpeg.match local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") local fonts = fonts diff --git a/tex/context/base/font-col.lua b/tex/context/base/font-col.lua index ef08c0b8c..5b5eaf8ea 100644 --- a/tex/context/base/font-col.lua +++ b/tex/context/base/font-col.lua @@ -15,7 +15,7 @@ local settings_to_hash = utilities.parsers.settings_to_hash local trace_collecting = false trackers.register("fonts.collecting", function(v) trace_collecting = v end) -local report_fonts = logs.new("fonts") +local report_fonts = logs.new("fonts","collections") local fonts, context = fonts, context diff --git a/tex/context/base/font-ctx.lua b/tex/context/base/font-ctx.lua index ac7334c10..22b908825 100644 --- a/tex/context/base/font-ctx.lua +++ b/tex/context/base/font-ctx.lua @@ -22,9 +22,9 @@ local trace_defining = false trackers.register("fonts.defining", function(v) tr local trace_usage = false trackers.register("fonts.usage", function(v) trace_usage = v end) local trace_mapfiles = false trackers.register("fonts.mapfiles", function(v) trace_mapfiles = v end) -local report_define = logs.new("define fonts") -local report_usage = logs.new("fonts usage") -local report_mapfiles = logs.new("mapfiles") +local report_defining = logs.new("fonts","defining") +local report_status = logs.new("fonts","status") +local report_mapfiles = logs.new("fonts","mapfiles") local fonts = fonts local tfm = fonts.tfm @@ -162,7 +162,7 @@ function definers.register(tfmdata,id) if not fonts.internalized[hash] then fonts.internalized[hash] = id if trace_defining then - report_define("registering font, id: %s, hash: %s",id or "?",hash or "?") + report_defining("registering font, id: %s, hash: %s",id or "?",hash or "?") end -- enhancetfmdata(tfmdata) local characters = tfmdata.characters @@ -492,7 +492,7 @@ function definers.stage_one(str) local fullname, size = lpegmatch(splitpattern,str) local lookup, name, sub, method, detail = getspecification(fullname) if not name then - report_define("strange definition '%s'",str) + report_defining("strange definition '%s'",str) setdefaultfontname() elseif name == "unknown" then setdefaultfontname() @@ -527,7 +527,7 @@ local n = 0 function definers.stage_two(global,cs,str,size,classfeatures,fontfeatures,classfallbacks,fontfallbacks, mathsize,textsize,relativeid,classgoodies,goodies) if trace_defining then - report_define("memory usage before: %s",statistics.memused()) + report_defining("memory usage before: %s",statistics.memused()) end -- name is now resolved and size is scaled cf sa/mo local lookup, name, sub, method, detail = getspecification(str or "") @@ -567,12 +567,12 @@ function definers.stage_two(global,cs,str,size,classfeatures,fontfeatures,classf fonts.csnames[cs] = tfmdata -- new (beware: locals can be forgotten) end if not tfmdata then - report_define("unable to define %s as \\%s",name,cs) + report_defining("unable to define %s as \\%s",name,cs) texsetcount("global","lastfontid",-1) context.letvaluerelax(cs) -- otherwise the current definition takes the previous one elseif type(tfmdata) == "number" then if trace_defining then - report_define("reusing %s with id %s as \\%s (features: %s/%s, fallbacks: %s/%s, goodies: %s/%s)", + report_defining("reusing %s with id %s as \\%s (features: %s/%s, fallbacks: %s/%s, goodies: %s/%s)", name,tfmdata,cs,classfeatures,fontfeatures,classfallbacks,fontfallbacks,classgoodies,goodies) end tex.definefont(global,cs,tfmdata) @@ -588,7 +588,7 @@ function definers.stage_two(global,cs,str,size,classfeatures,fontfeatures,classf tex.definefont(global,cs,id) tfm.cleanuptable(tfmdata) if trace_defining then - report_define("defining %s with id %s as \\%s (features: %s/%s, fallbacks: %s/%s)",name,id,cs,classfeatures,fontfeatures,classfallbacks,fontfallbacks) + report_defining("defining %s with id %s as \\%s (features: %s/%s, fallbacks: %s/%s)",name,id,cs,classfeatures,fontfeatures,classfallbacks,fontfallbacks) end -- resolved (when designsize is used): setsomefontsize((tfmdata.size or 655360) .. "sp") @@ -598,7 +598,7 @@ function definers.stage_two(global,cs,str,size,classfeatures,fontfeatures,classf texsetcount("global","lastfontid",id) end if trace_defining then - report_define("memory usage after: %s",statistics.memused()) + report_defining("memory usage after: %s",statistics.memused()) end statistics.stoptiming(fonts) end @@ -894,11 +894,11 @@ function fonts.reportdefinedfonts() } end formatcolumns(t," ") - report_usage() - report_usage("defined fonts:") - report_usage() + report_status() + report_status("defined fonts:") + report_status() for k=1,tn do - report_usage(t[k]) + report_status(t[k]) end end end @@ -918,11 +918,11 @@ function fonts.reportusedfeatures() setup.number = n -- restore it (normally not needed as we're done anyway) end formatcolumns(t," ") - report_usage() - report_usage("defined featuresets:") - report_usage() + report_status() + report_status("defined featuresets:") + report_status() for k=1,n do - report_usage(t[k]) + report_status(t[k]) end end end diff --git a/tex/context/base/font-def.lua b/tex/context/base/font-def.lua index a195fabd1..e8e6cfffe 100644 --- a/tex/context/base/font-def.lua +++ b/tex/context/base/font-def.lua @@ -19,8 +19,8 @@ local directive_embedall = false directives.register("fonts.embedall", function trackers.register("fonts.loading", "fonts.defining", "otf.loading", "afm.loading", "tfm.loading") trackers.register("fonts.all", "fonts.*", "otf.*", "afm.*", "tfm.*") -local report_define = logs.new("define fonts") -local report_afm = logs.new("load afm") +local report_defining = logs.new("fonts","defining") +local report_afm = logs.new("fonts","afm loading") --[[ldx-- <p>Here we deal with defining fonts. We do so by intercepting the @@ -135,7 +135,7 @@ end function definers.makespecification(specification, lookup, name, sub, method, detail, size) size = size or 655360 if trace_defining then - report_define("%s -> lookup: %s, name: %s, sub: %s, method: %s, detail: %s", + report_defining("%s -> lookup: %s, name: %s, sub: %s, method: %s, detail: %s", specification, (lookup ~= "" and lookup) or "[file]", (name ~= "" and name) or "-", (sub ~= "" and sub) or "-", (method ~= "" and method) or "-", (detail ~= "" and detail) or "-") end @@ -343,14 +343,14 @@ function tfm.read(specification) local reader = readers[lower(forced)] tfmtable = reader and reader(specification) if not tfmtable then - report_define("forced type %s of %s not found",forced,specification.name) + report_defining("forced type %s of %s not found",forced,specification.name) end else for s=1,#sequence do -- reader sequence local reader = sequence[s] if readers[reader] then -- not really needed if trace_defining then - report_define("trying (reader sequence driven) type %s for %s with file %s",reader,specification.name,specification.filename or "unknown") + report_defining("trying (reader sequence driven) type %s for %s with file %s",reader,specification.name,specification.filename or "unknown") end tfmtable = readers[reader](specification) if tfmtable then @@ -375,7 +375,7 @@ function tfm.read(specification) end end if not tfmtable then - report_define("font with asked name '%s' is not found using lookup '%s'",specification.name,specification.lookup) + report_defining("font with asked name '%s' is not found using lookup '%s'",specification.name,specification.lookup) end return tfmtable end @@ -593,7 +593,7 @@ function definers.register(tfmdata,id) -- will be overloaded local hash = tfmdata.hash if not internalized[hash] then if trace_defining then - report_define("registering font, id: %s, hash: %s",id or "?",hash or "?") + report_defining("registering font, id: %s, hash: %s",id or "?",hash or "?") end fonts.identifiers[id] = tfmdata internalized[hash] = id @@ -661,9 +661,9 @@ function definers.read(specification,size,id) -- id can be optional, name can al end lastdefined = tfmdata or id -- todo ! ! ! ! ! if not tfmdata then -- or id? - report_define( "unknown font %s, loading aborted",specification.name) + report_defining( "unknown font %s, loading aborted",specification.name) elseif trace_defining and type(tfmdata) == "table" then - report_define("using %s font with id %s, name:%s size:%s bytes:%s encoding:%s fullname:%s filename:%s", + report_defining("using %s font with id %s, name:%s size:%s bytes:%s encoding:%s fullname:%s filename:%s", tfmdata.type or "unknown", id or "?", tfmdata.name or "?", @@ -683,18 +683,18 @@ function vf.find(name) local format = fonts.logger.format(name) if format == 'tfm' or format == 'ofm' then if trace_defining then - report_define("locating vf for %s",name) + report_defining("locating vf for %s",name) end return findbinfile(name,"ovf") else if trace_defining then - report_define("vf for %s is already taken care of",name) + report_defining("vf for %s is already taken care of",name) end return nil -- "" end else if trace_defining then - report_define("locating vf for %s",name) + report_defining("locating vf for %s",name) end return findbinfile(name,"ovf") end diff --git a/tex/context/base/font-enh.lua b/tex/context/base/font-enh.lua index 183ca848b..b745b8f6c 100644 --- a/tex/context/base/font-enh.lua +++ b/tex/context/base/font-enh.lua @@ -12,7 +12,7 @@ local next, match = next, string.match local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end) -local report_define = logs.new("define fonts") +local report_defining = logs.new("fonts","defining") -- tfmdata has also fast access to indices and unicodes -- to be checked: otf -> tfm -> tfmscaled @@ -90,7 +90,7 @@ function tfm.setfeatures(tfmdata) local fitfmf = fi.tfm[f] -- brr if fitfmf then if tfm.trace_features then - report_define("initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown',tfmdata.name or 'unknown') + report_defining("initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown',tfmdata.name or 'unknown') end fitfmf(tfmdata,value) mode = tfmdata.mode or features.mode or "base" @@ -153,7 +153,7 @@ function tfm.reencode(tfmdata,encoding) for k,v in next, data.unicodes do if k ~= v then if trace_defining then - report_define("reencoding U+%04X to U+%04X",k,v) + report_defining("reencoding U+%04X to U+%04X",k,v) end characters[k] = original[v] end @@ -180,7 +180,7 @@ function tfm.remap(tfmdata,remapping) for k,v in next, vector do if k ~= v then if trace_defining then - report_define("remapping U+%04X to U+%04X",k,v) + report_defining("remapping U+%04X to U+%04X",k,v) end local c = original[k] characters[v] = c @@ -217,7 +217,7 @@ initializers.node.tfm.remap = tfm.remap --~ for k,v in next, data.unicodes do --~ if k ~= v then --~ if trace_defining then ---~ report_define("mapping %s onto %s",k,v) +--~ report_defining("mapping %s onto %s",k,v) --~ end --~ characters[k] = original[v] --~ end diff --git a/tex/context/base/font-ext.lua b/tex/context/base/font-ext.lua index 16665d373..ff9a70108 100644 --- a/tex/context/base/font-ext.lua +++ b/tex/context/base/font-ext.lua @@ -17,7 +17,8 @@ local allocate = utilities.storage.allocate local trace_protrusion = false trackers.register("fonts.protrusion", function(v) trace_protrusion = v end) local trace_expansion = false trackers.register("fonts.expansion", function(v) trace_expansion = v end) -local report_fonts = logs.new("fonts") +local report_expansions = logs.new("fonts","expansions") +local report_protrusions = logs.new("fonts","protrusions") commands = commands or { } @@ -171,7 +172,7 @@ function initializers.common.expansion(tfmdata,value) if vector then local stretch, shrink, step, factor = class.stretch or 0, class.shrink or 0, class.step or 0, class.factor or 1 if trace_expansion then - report_fonts("set expansion class %s, vector: %s, factor: %s, stretch: %s, shrink: %s, step: %s", + report_expansions("setting class %s, vector: %s, factor: %s, stretch: %s, shrink: %s, step: %s", value,class.vector,factor,stretch,shrink,step) end tfmdata.stretch, tfmdata.shrink, tfmdata.step, tfmdata.auto_expand = stretch * 10, shrink * 10, step * 10, true @@ -198,10 +199,10 @@ function initializers.common.expansion(tfmdata,value) end end elseif trace_expansion then - report_fonts("unknown expansion vector '%s' in class '%s",class.vector,value) + report_expansions("unknown vector '%s' in class '%s",class.vector,value) end elseif trace_expansion then - report_fonts("unknown expansion class '%s'",value) + report_expansions("unknown class '%s'",value) end end end @@ -216,7 +217,7 @@ initializers.node.afm.expansion = initializers.common.expansion fonts.goodies.register("expansions", function(...) return fonts.goodies.report("expansions", trace_expansion, ...) end) -local report_opbd = logs.new("otf opbd") +local report_opbd = logs.new("fonts","otf opbd") -- -- -- -- -- -- -- protrusion @@ -390,7 +391,7 @@ local function map_opbd_onto_protrusion(tfmdata,value,opbd) local data = singles[lookup] if data then if trace_protrusion then - report_fonts("set left protrusion using lfbd lookup '%s'",lookup) + report_protrusions("setting left using lfbd lookup '%s'",lookup) end for k, v in next, data do -- local p = - v[3] / descriptions[k].width-- or 1 ~= 0 too but the same @@ -413,7 +414,7 @@ local function map_opbd_onto_protrusion(tfmdata,value,opbd) local data = singles[lookup] if data then if trace_protrusion then - report_fonts("set right protrusion using rtbd lookup '%s'",lookup) + report_protrusions("setting right using rtbd lookup '%s'",lookup) end for k, v in next, data do -- local p = v[3] / descriptions[k].width -- or 3 @@ -450,7 +451,7 @@ function initializers.common.protrusion(tfmdata,value) local left = class.left or 1 local right = class.right or 1 if trace_protrusion then - report_fonts("set protrusion class %s, vector: %s, factor: %s, left: %s, right: %s", + report_protrusions("setting class %s, vector: %s, factor: %s, left: %s, right: %s", value,class.vector,factor,left,right) end local data = characters.data @@ -486,10 +487,10 @@ function initializers.common.protrusion(tfmdata,value) end end elseif trace_protrusion then - report_fonts("unknown protrusion vector '%s' in class '%s",class.vector,value) + report_protrusions("unknown vector '%s' in class '%s",class.vector,value) end elseif trace_protrusion then - report_fonts("unknown protrusion class '%s'",value) + report_protrusions("unknown class '%s'",value) end end end diff --git a/tex/context/base/font-fbk.lua b/tex/context/base/font-fbk.lua index 0ddee6680..6092f7442 100644 --- a/tex/context/base/font-fbk.lua +++ b/tex/context/base/font-fbk.lua @@ -14,7 +14,7 @@ local trace_combining_all = false trackers.register("fonts.combining.all", func trackers.register("fonts.composing", "fonts.combining") -local report_combining = logs.new("combining") +local report_combining = logs.new("fonts","combining") local allocate = utilities.storage.allocate diff --git a/tex/context/base/font-gds.lua b/tex/context/base/font-gds.lua index e85662af6..29142e45e 100644 --- a/tex/context/base/font-gds.lua +++ b/tex/context/base/font-gds.lua @@ -11,7 +11,7 @@ local gmatch = string.gmatch local trace_goodies = false trackers.register("fonts.goodies", function(v) trace_goodies = v end) -local report_fonts = logs.new("fonts") +local report_fonts = logs.new("fonts","goodies") local allocate = utilities.storage.allocate diff --git a/tex/context/base/font-ini.lua b/tex/context/base/font-ini.lua index eb741f0f7..216e6c23a 100644 --- a/tex/context/base/font-ini.lua +++ b/tex/context/base/font-ini.lua @@ -16,7 +16,7 @@ local write_nl = texio.write_nl local lower = string.lower local allocate, mark = utilities.storage.allocate, utilities.storage.mark -local report_define = logs.new("define fonts") +local report_defining = logs.new("fonts","defining") fontloader.totable = fontloader.to_table @@ -105,7 +105,7 @@ function fonts.fontformat(filename,default) if format then return format else - report_define("unable to determine font format for '%s'",filename) + report_defining("unable to determine font format for '%s'",filename) return default end end diff --git a/tex/context/base/font-log.lua b/tex/context/base/font-log.lua index e16a945f9..d7fc16f58 100644 --- a/tex/context/base/font-log.lua +++ b/tex/context/base/font-log.lua @@ -10,7 +10,7 @@ local next, format, lower, concat = next, string.format, string.lower, table.con local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end) -local report_define = logs.new("define fonts") +local report_defining = logs.new("fonts","defining") local fonts = fonts fonts.logger = fonts.logger or { } @@ -27,7 +27,7 @@ function logger.save(tfmtable,source,specification) -- save file name in spec he if tfmtable and specification and specification.specification then local name = lower(specification.name) if trace_defining and not fonts.used[name] then - report_define("registering %s as %s (used: %s)",file.basename(specification.name),source,file.basename(specification.filename)) + report_defining("registering %s as %s (used: %s)",file.basename(specification.name),source,file.basename(specification.filename)) end specification.source = source fonts.loaded[lower(specification.specification)] = specification diff --git a/tex/context/base/font-map.lua b/tex/context/base/font-map.lua index b20663273..48ba29a78 100644 --- a/tex/context/base/font-map.lua +++ b/tex/context/base/font-map.lua @@ -14,7 +14,7 @@ local utfbyte = utf.byte local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end) local trace_unimapping = false trackers.register("otf.unimapping", function(v) trace_unimapping = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") --[[ldx-- <p>Eventually this code will disappear because map files are kind diff --git a/tex/context/base/font-otb.lua b/tex/context/base/font-otb.lua index 241845f24..23326607f 100644 --- a/tex/context/base/font-otb.lua +++ b/tex/context/base/font-otb.lua @@ -23,7 +23,7 @@ local trace_ligatures = false trackers.register("otf.ligatures", function local trace_kerns = false trackers.register("otf.kerns", function(v) trace_kerns = v end) local trace_preparing = false trackers.register("otf.preparing", function(v) trace_preparing = v end) -local report_prepare = logs.new("otf prepare") +local report_prepare = logs.new("fonts","otf prepare") local wildcard = "*" local default = "dflt" diff --git a/tex/context/base/font-otc.lua b/tex/context/base/font-otc.lua index f9d749123..17e442978 100644 --- a/tex/context/base/font-otc.lua +++ b/tex/context/base/font-otc.lua @@ -16,7 +16,7 @@ local trace_loading = false trackers.register("otf.loading", function(v) trace_ local fonts = fonts local otf = fonts.otf -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") -- instead of "script = "DFLT", langs = { 'dflt' }" we now use wildcards (we used to -- have always); some day we can write a "force always when true" trick for other diff --git a/tex/context/base/font-otd.lua b/tex/context/base/font-otd.lua index 4d078017a..299b703c6 100644 --- a/tex/context/base/font-otd.lua +++ b/tex/context/base/font-otd.lua @@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['font-otd'] = { local trace_dynamics = false trackers.register("otf.dynamics", function(v) trace_dynamics = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") local fonts = fonts local otf = fonts.otf diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua index ee7964b60..a543e0b0e 100644 --- a/tex/context/base/font-otf.lua +++ b/tex/context/base/font-otf.lua @@ -32,7 +32,7 @@ local trace_sequences = false trackers.register("otf.sequences", function(v) local trace_math = false trackers.register("otf.math", function(v) trace_math = v end) local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") local starttiming, stoptiming, elapsedtime = statistics.starttiming, statistics.stoptiming, statistics.elapsedtime @@ -52,6 +52,7 @@ otf.features.default = otf.features.default or { } otf.enhancers = allocate() local enhancers = otf.enhancers enhancers.patches = { } +local patches = enhancers.patches local definers = fonts.definers @@ -264,11 +265,11 @@ local ordered_enhancers = { local actions = { } -enhancers.patches.before = allocate() -enhancers.patches.after = allocate() +patches.before = allocate() +patches.after = allocate() -local before = enhancers.patches.before -local after = enhancers.patches.after +local before = patches.before +local after = patches.after local function enhance(name,data,filename,raw,verbose) local enhancer = actions[name] @@ -312,9 +313,9 @@ function enhancers.apply(data,filename,raw,verbose) ioflush() -- we want instant messages end --- enhancers.patches.register("before","migrate metadata","cambria",function() end) +-- patches.register("before","migrate metadata","cambria",function() end) -function enhancers.patches.register(what,where,pattern,action) +function patches.register(what,where,pattern,action) local ww = what[where] if ww then ww[pattern] = action @@ -323,6 +324,12 @@ function enhancers.patches.register(what,where,pattern,action) end end +function patches.report(fmt,...) + if trace_loading then + report_otf("patching: " ..fmt,...) + end +end + function enhancers.register(what,action) -- only already registered can be overloaded actions[what] = action end diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua index 29fed2944..c4abeba22 100644 --- a/tex/context/base/font-otn.lua +++ b/tex/context/base/font-otn.lua @@ -148,11 +148,11 @@ local trace_steps = false trackers.register("otf.steps", function local trace_skips = false trackers.register("otf.skips", function(v) trace_skips = v end) local trace_directions = false trackers.register("otf.directions", function(v) trace_directions = v end) -local report_direct = logs.new("otf direct") -local report_subchain = logs.new("otf subchain") -local report_chain = logs.new("otf chain") -local report_process = logs.new("otf process") -local report_prepare = logs.new("otf prepare") +local report_direct = logs.new("fonts","otf direct") +local report_subchain = logs.new("fonts","otf subchain") +local report_chain = logs.new("fonts","otf chain") +local report_process = logs.new("fonts","otf process") +local report_prepare = logs.new("fonts","otf prepare") trackers.register("otf.verbose_chain", function(v) otf.setcontextchain(v and "verbose") end) trackers.register("otf.normal_chain", function(v) otf.setcontextchain(v and "normal") end) diff --git a/tex/context/base/font-otp.lua b/tex/context/base/font-otp.lua index 6c4f185b3..fe5ced658 100644 --- a/tex/context/base/font-otp.lua +++ b/tex/context/base/font-otp.lua @@ -13,7 +13,7 @@ local sort, concat = table.sort, table.concat local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") fonts = fonts or { } -- this module is also used in mtxrun local fonts = fonts diff --git a/tex/context/base/font-pat.lua b/tex/context/base/font-pat.lua index c43d283b1..8748f0ed1 100644 --- a/tex/context/base/font-pat.lua +++ b/tex/context/base/font-pat.lua @@ -6,26 +6,21 @@ if not modules then modules = { } end modules ['font-pat'] = { license = "see context related readme files" } -local match, lower, find = string.match, string.lower, string.find +local match, lower = string.match, string.lower -local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end) - -local report_otf = logs.new("load otf") - --- this will become a per font patch file --- -- older versions of latin modern didn't have the designsize set -- so for them we get it from the name +-- reporter moved to elsewhere -local register = enhancers.patches.register +local patches = fonts.otf.enhancers.patches +local register = patches.register +local report = patches.report local function patch(data,filename) if data.design_size == 0 then local ds = match(file.basename(lower(filename)),"(%d+)") if ds then - if trace_loading then - report_otf("patching design size (%s)",ds) - end + report("design size (%s)",ds) data.design_size = tonumber(ds) * 10 end end @@ -35,34 +30,6 @@ register("after","migrate metadata","^lmroman", patch) register("after","migrate metadata","^lmsans", patch) register("after","migrate metadata","^lmtypewriter",patch) -local function patch(data,filename) - local uni_to_ind = data.map.map - if not uni_to_ind[0x391] then - -- beware, this is a hack, features for latin often don't apply to greek - -- but lm has not much features anyway (and only greek for math) - if trace_loading then - report_otf("adding 13 greek capitals") - end - uni_to_ind[0x391] = uni_to_ind[0x41] - uni_to_ind[0x392] = uni_to_ind[0x42] - uni_to_ind[0x395] = uni_to_ind[0x45] - uni_to_ind[0x397] = uni_to_ind[0x48] - uni_to_ind[0x399] = uni_to_ind[0x49] - uni_to_ind[0x39A] = uni_to_ind[0x4B] - uni_to_ind[0x39C] = uni_to_ind[0x4D] - uni_to_ind[0x39D] = uni_to_ind[0x4E] - uni_to_ind[0x39F] = uni_to_ind[0x4F] - uni_to_ind[0x3A1] = uni_to_ind[0x52] - uni_to_ind[0x3A4] = uni_to_ind[0x54] - uni_to_ind[0x3A7] = uni_to_ind[0x58] - uni_to_ind[0x396] = uni_to_ind[0x5A] - end -end - -register("after","prepare glyphs","^lmroman", patch) -register("after","prepare glyphs","^lmsans", patch) -register("after","prepare glyphs","^lmtypewriter",patch) - -- for some reason (either it's a bug in the font, or it's -- a problem in the library) the palatino arabic fonts don't -- have the mkmk features properly set up @@ -73,13 +40,18 @@ local function patch(data,filename) for k=1,#gpos do local v = gpos[k] if not v.features and v.type == "gpos_mark2mark" then - if trace_loading then - report_otf("patching mkmk feature (name: %s)", v.name or "?") - end + report("mkmk feature (name: %s)", v.name or "?") v.features = { { - scripts = { arab = { "ARA " = true, "FAR " = true, "URD " = true, "dflt" = true } }, - tag = "mkmk" + scripts = { + arab = { + ["ARA "] = true, + ["FAR "] = true, + ["URD "] = true, + ["dflt"] = true, + } + }, + tag = "mkmk", } } end @@ -89,19 +61,47 @@ end register("after","rehash features","palatino.*arabic",patch) -local function patch_domh(data,filename,threshold) - local m = data.metadata.math - if m then - local d = m.DisplayOperatorMinHeight or 0 - if d < threshold then - if trace_loading then - report_otf("patching DisplayOperatorMinHeight(%s -> %s)",d,threshold) - end - m.DisplayOperatorMinHeight = threshold - end - end -end - -register("after","check math parameters","cambria", function(data,filename) patch_domh(data,filename,2800) end) -register("after","check math parameters","cambmath",function(data,filename) patch_domh(data,filename,2800) end) -register("after","check math parameters","asana", function(data,filename) patch_domh(data,filename,1350) end) +-- -- this code is now in lm-math.lfg +-- +-- local function patch(data,filename) +-- local uni_to_ind = data.map.map +-- if not uni_to_ind[0x391] then +-- -- beware, this is a hack, features for latin often don't apply to greek +-- -- but lm has not much features anyway (and only greek for math) +-- report("adding 13 greek capitals") +-- uni_to_ind[0x391] = uni_to_ind[0x41] +-- uni_to_ind[0x392] = uni_to_ind[0x42] +-- uni_to_ind[0x395] = uni_to_ind[0x45] +-- uni_to_ind[0x397] = uni_to_ind[0x48] +-- uni_to_ind[0x399] = uni_to_ind[0x49] +-- uni_to_ind[0x39A] = uni_to_ind[0x4B] +-- uni_to_ind[0x39C] = uni_to_ind[0x4D] +-- uni_to_ind[0x39D] = uni_to_ind[0x4E] +-- uni_to_ind[0x39F] = uni_to_ind[0x4F] +-- uni_to_ind[0x3A1] = uni_to_ind[0x52] +-- uni_to_ind[0x3A4] = uni_to_ind[0x54] +-- uni_to_ind[0x3A7] = uni_to_ind[0x58] +-- uni_to_ind[0x396] = uni_to_ind[0x5A] +-- end +-- end +-- +-- register("after","prepare glyphs","^lmroman", patch) +-- register("after","prepare glyphs","^lmsans", patch) +-- register("after","prepare glyphs","^lmtypewriter",patch) +-- +-- -- this code is now in cambria-math.lfg and asana-math.lfg +-- +-- local function patch_domh(data,filename,threshold) +-- local m = data.metadata.math +-- if m then +-- local d = m.DisplayOperatorMinHeight or 0 +-- if d < threshold then +-- report("DisplayOperatorMinHeight(%s -> %s)",d,threshold) +-- m.DisplayOperatorMinHeight = threshold +-- end +-- end +-- end +-- +-- register("after","check math parameters","cambria", function(data,filename) patch_domh(data,filename,2800) end) +-- register("after","check math parameters","cambmath",function(data,filename) patch_domh(data,filename,2800) end) +-- register("after","check math parameters","asana", function(data,filename) patch_domh(data,filename,1350) end) diff --git a/tex/context/base/font-syn.lua b/tex/context/base/font-syn.lua index 5eb7551cd..5efdab3b4 100644 --- a/tex/context/base/font-syn.lua +++ b/tex/context/base/font-syn.lua @@ -24,7 +24,7 @@ local trace_names = false trackers.register("fonts.names", fu local trace_warnings = false trackers.register("fonts.warnings", function(v) trace_warnings = v end) local trace_specifications = false trackers.register("fonts.specifications", function(v) trace_specifications = v end) -local report_names = logs.new("fontnames") +local report_names = logs.new("fonts","names") --[[ldx-- <p>This module implements a name to filename resolver. Names are resolved @@ -642,7 +642,6 @@ local function analyzefiles() -- already done (avoid otf afm clash) if trace_names then report_names("%s font %s already done",suffix,completename) - logs.push() end nofduplicates = nofduplicates + 1 nofskipped = nofskipped + 1 @@ -650,14 +649,12 @@ local function analyzefiles() -- weird error if trace_names then report_names("%s font %s does not really exist",suffix,completename) - logs.push() end nofskipped = nofskipped + 1 elseif not file.is_qualified_path(completename) and resolvers.findfile(completename,suffix) == "" then -- not locateble by backend anyway if trace_names then report_names("%s font %s cannot be found by backend",suffix,completename) - logs.push() end nofskipped = nofskipped + 1 else @@ -666,7 +663,6 @@ local function analyzefiles() if find(basepath,skip_paths[i]) then if trace_names then report_names("rejecting path of %s font %s",suffix,completename) - logs.push() end nofskipped = nofskipped + 1 return @@ -679,7 +675,6 @@ local function analyzefiles() done[name] = true if trace_names then report_names("rejecting name of %s font %s",suffix,completename) - logs.push() end nofskipped = nofskipped + 1 return @@ -688,12 +683,8 @@ local function analyzefiles() end if trace_names then report_names("identifying %s font %s",suffix,completename) - logs.push() end local result, message = filters[lower(suffix)](completename) - if trace_names then - logs.pop() - end if result then if result[1] then for r=1,#result do diff --git a/tex/context/base/font-tfm.lua b/tex/context/base/font-tfm.lua index baa6ffb69..3be220e80 100644 --- a/tex/context/base/font-tfm.lua +++ b/tex/context/base/font-tfm.lua @@ -16,7 +16,7 @@ local allocate = utilities.storage.allocate local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end) local trace_scaling = false trackers.register("fonts.scaling" , function(v) trace_scaling = v end) -local report_define = logs.new("define fonts") +local report_defining = logs.new("fonts","defining") -- tfmdata has also fast access to indices and unicodes -- to be checked: otf -> tfm -> tfmscaled @@ -62,7 +62,7 @@ function tfm.read_from_tfm(specification) local fname, tfmdata = specification.filename or "", nil if fname ~= "" then if trace_defining then - report_define("loading tfm file %s at size %s",fname,specification.size) + report_defining("loading tfm file %s at size %s",fname,specification.size) end tfmdata = font.read_tfm(fname,specification.size) -- not cached, fast enough if tfmdata then @@ -85,7 +85,7 @@ function tfm.read_from_tfm(specification) tfm.enhance(tfmdata,specification) end elseif trace_defining then - report_define("loading tfm with name %s fails",specification.name) + report_defining("loading tfm with name %s fails",specification.name) end return tfmdata end @@ -421,7 +421,7 @@ function tfm.scale(tfmtable, scaledpoints, relativeid) end end -- if trace_scaling then - -- report_define("t=%s, u=%s, i=%s, n=%s c=%s",k,chr.tounicode or "",index or 0,description.name or '-',description.class or '-') + -- report_defining("t=%s, u=%s, i=%s, n=%s c=%s",k,chr.tounicode or "",index or 0,description.name or '-',description.class or '-') -- end if tounicode then local tu = tounicode[index] -- nb: index! @@ -458,7 +458,7 @@ function tfm.scale(tfmtable, scaledpoints, relativeid) if vn then chr.next = vn --~ if v.vert_variants or v.horiz_variants then - --~ report_define("glyph 0x%05X has combination of next, vert_variants and horiz_variants",index) + --~ report_defining("glyph 0x%05X has combination of next, vert_variants and horiz_variants",index) --~ end else local vv = v.vert_variants @@ -630,11 +630,11 @@ function tfm.scale(tfmtable, scaledpoints, relativeid) -- can have multiple subfonts if hasmath then if trace_defining then - report_define("math enabled for: name '%s', fullname: '%s', filename: '%s'",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename") + report_defining("math enabled for: name '%s', fullname: '%s', filename: '%s'",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename") end else if trace_defining then - report_define("math disabled for: name '%s', fullname: '%s', filename: '%s'",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename") + report_defining("math disabled for: name '%s', fullname: '%s', filename: '%s'",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename") end t.nomath, t.MathConstants = true, nil end @@ -643,8 +643,8 @@ function tfm.scale(tfmtable, scaledpoints, relativeid) t.psname = t.fontname or (t.fullname and fonts.names.cleanname(t.fullname)) end if trace_defining then - report_define("used for accessing (sub)font: '%s'",t.psname or "nopsname") - report_define("used for subsetting: '%s'",t.fontname or "nofontname") + report_defining("used for accessing (sub)font: '%s'",t.psname or "nopsname") + report_defining("used for subsetting: '%s'",t.fontname or "nofontname") end -- this will move up (side effect of merging split call) t.factor = delta @@ -747,18 +747,18 @@ function tfm.checkedfilename(metadata,whatever) askedfilename = resolvers.resolve(askedfilename) -- no shortcut foundfilename = resolvers.findbinfile(askedfilename,"") or "" if foundfilename == "" then - report_define("source file '%s' is not found",askedfilename) + report_defining("source file '%s' is not found",askedfilename) foundfilename = resolvers.findbinfile(file.basename(askedfilename),"") or "" if foundfilename ~= "" then - report_define("using source file '%s' (cache mismatch)",foundfilename) + report_defining("using source file '%s' (cache mismatch)",foundfilename) end end elseif whatever then - report_define("no source file for '%s'",whatever) + report_defining("no source file for '%s'",whatever) foundfilename = "" end metadata.foundfilename = foundfilename - -- report_define("using source file '%s'",foundfilename) + -- report_defining("using source file '%s'",foundfilename) end return foundfilename end diff --git a/tex/context/base/grph-fig.mkiv b/tex/context/base/grph-fig.mkiv index 75f85103c..26b93435b 100644 --- a/tex/context/base/grph-fig.mkiv +++ b/tex/context/base/grph-fig.mkiv @@ -259,7 +259,7 @@ \let\currentresourcecomment\empty \def\showexternalfigures % maybe run time command is better, but no core-run, unless figs-run ... - {%\writestatus\m!systems{for \string\showexternalfigures\space see \truefilename{x-res-20}.tex} + {%\writestatus\m!system{for \string\showexternalfigures\space see \truefilename{x-res-20}.tex} \usemodule[res-20]\showexternalfigures} % so for the moment we do it this way \def\overlayfigure#1% diff --git a/tex/context/base/grph-fil.lua b/tex/context/base/grph-fil.lua index 4bd1e7d0f..95141d03e 100644 --- a/tex/context/base/grph-fil.lua +++ b/tex/context/base/grph-fil.lua @@ -8,7 +8,9 @@ if not modules then modules = { } end modules ['grph-fil'] = { local format, concat = string.format, table.concat -local trace_run = false trackers.register("files.run",function(v) trace_run = v end) +local trace_run = false trackers.register("graphic.runfile",function(v) trace_run = v end) + +local report_run = logs.new("graphics","run") local allocate, mark = utilities.storage.allocate, utilities.storage.mark @@ -35,15 +37,15 @@ function jobfiles.run(name,command) local newchecksum = file.checksum(name) if jobfiles.forcerun or not oldchecksum or oldchecksum ~= newchecksum then if trace_run then - commands.writestatus("processing","changes in '%s', processing forced",name) + report_run("processing file, changes in '%s', processing forced",name) end if command and command ~= "" then os.execute(command) else - commands.writestatus("processing","no command given for processing '%s'",name) + report_run("processing file, no command given for processing '%s'",name) end elseif trace_run then - commands.writestatus("processing","no changes in '%s', not processed",name) + report_run("processing file, no changes in '%s', not processed",name) end tobesaved[name] = newchecksum end diff --git a/tex/context/base/grph-inc.lua b/tex/context/base/grph-inc.lua index 14a5bfa60..9546218ef 100644 --- a/tex/context/base/grph-inc.lua +++ b/tex/context/base/grph-inc.lua @@ -37,8 +37,6 @@ The TeX-Lua mix is suboptimal. This has to do with the fact that we cannot run TeX code from within Lua. Some more functionality will move to Lua. ]]-- --- commands.writestatus -> report - local format, lower, find, match, gsub, gmatch = string.format, string.lower, string.find, string.match, string.gsub, string.gmatch local texbox = tex.box local contains = table.contains @@ -51,13 +49,13 @@ local variables = interfaces.variables local codeinjections = backends.codeinjections local nodeinjections = backends.nodeinjections -local trace_figures = false trackers.register("figures.locating", function(v) trace_figures = v end) -local trace_bases = false trackers.register("figures.bases", function(v) trace_bases = v end) -local trace_programs = false trackers.register("figures.programs", function(v) trace_programs = v end) -local trace_conversion = false trackers.register("figures.conversion", function(v) trace_conversion = v end) -local trace_inclusion = false trackers.register("figures.inclusion", function(v) trace_inclusion = v end) +local trace_figures = false trackers.register("graphics.locating", function(v) trace_figures = v end) +local trace_bases = false trackers.register("graphics.bases", function(v) trace_bases = v end) +local trace_programs = false trackers.register("graphics.programs", function(v) trace_programs = v end) +local trace_conversion = false trackers.register("graphics.conversion", function(v) trace_conversion = v end) +local trace_inclusion = false trackers.register("graphics.inclusion", function(v) trace_inclusion = v end) -local report_graphics = logs.new("graphics") +local report_inclusion = logs.new("graphics","inclusion") local context, img = context, img @@ -239,8 +237,8 @@ function figures.setpaths(locationset,pathlist) end figures.paths, last_pathlist = t, pathlist if trace_figures then - commands.writestatus("figures","locations: %s",last_locationset) - commands.writestatus("figures","path list: %s",concat(figures.paths, " ")) + report_inclusion("locations: %s",last_locationset) + report_inclusion("path list: %s",concat(figures.paths, " ")) end end @@ -367,12 +365,12 @@ local function forbiddenname(filename) local expandedfullname = file.collapsepath(filename,true) local expandedinputname = file.collapsepath(file.addsuffix(environment.jobfilename,environment.jobfilesuffix),true) if expandedfullname == expandedinputname then - report_graphics("skipping graphic with same name as input filename (%s), enforce suffix",expandedinputname) + report_inclusion("skipping graphic with same name as input filename (%s), enforce suffix",expandedinputname) return true end local expandedoutputname = file.collapsepath(codeinjections.getoutputfilename(),true) if expandedfullname == expandedoutputname then - report_graphics("skipping graphic with same name as output filename (%s), enforce suffix",expandedoutputname) + report_inclusion("skipping graphic with same name as output filename (%s), enforce suffix",expandedoutputname) return true end end @@ -397,7 +395,7 @@ local function register(askedname,specification) newformat = defaultformat end if trace_conversion then - report_graphics("checking conversion of '%s': old format '%s', new format '%s', conversion '%s', resolution '%s'", + report_inclusion("checking conversion of '%s': old format '%s', new format '%s', conversion '%s', resolution '%s'", askedname,format,newformat,conversion or "default",resolution or "default") end local converter = (newformat ~= format) and converters[format] @@ -414,7 +412,7 @@ local function register(askedname,specification) end end elseif trace_conversion then - report_graphics("no converter for '%s' -> '%s'",format,newformat) + report_inclusion("no converter for '%s' -> '%s'",format,newformat) end if converter then -- local oldname = specification.fullname @@ -430,7 +428,7 @@ local function register(askedname,specification) end if not file.is_writable(newpath) then if trace_conversion then - report_graphics("[ath '%s'is not writable, forcing conversion path '.' ",newpath) + report_inclusion("[ath '%s'is not writable, forcing conversion path '.' ",newpath) end newpath = "." end @@ -454,12 +452,12 @@ local function register(askedname,specification) local newtime = lfs.attributes(newname,'modification') or 0 if newtime == 0 or oldtime > newtime then if trace_conversion then - report_graphics("converting '%s' from '%s' to '%s'",askedname,format,newformat) + report_inclusion("converting '%s' from '%s' to '%s'",askedname,format,newformat) end converter(oldname,newname,resolution or "") else if trace_conversion then - report_graphics("no need to convert '%s' from '%s' to '%s'",askedname,format,newformat) + report_inclusion("no need to convert '%s' from '%s' to '%s'",askedname,format,newformat) end end if io.exists(newname) then @@ -479,15 +477,15 @@ local function register(askedname,specification) if not found then specification.found = false if trace_figures then - commands.writestatus("figures","format not supported: %s",format) + report_inclusion("format not supported: %s",format) end else specification.found = true if trace_figures then if validtypes[format] then - commands.writestatus("figures","format natively supported by backend: %s",format) + report_inclusion("format natively supported by backend: %s",format) else - commands.writestatus("figures","format supported by output file format: %s",format) + report_inclusion("format supported by output file format: %s",format) end end end @@ -532,7 +530,7 @@ local function locate(request) -- name, format, cache local askedresolution = request.resolution if askedformat ~= "" then if trace_figures then - commands.writestatus("figures","strategy: forced format") + report_inclusion("strategy: forced format") end askedformat = lower(askedformat) local format = figures.suffixes[askedformat] @@ -607,7 +605,7 @@ local function locate(request) -- name, format, cache end elseif askedpath then if trace_figures then - commands.writestatus("figures","strategy: rootbased path") + report_inclusion("strategy: rootbased path") end local figureorder = figures.order for i=1,#figureorder do @@ -631,7 +629,7 @@ local function locate(request) -- name, format, cache else if figures.preferquality then if trace_figures then - commands.writestatus("figures","strategy: unknown format, prefer quality") + report_inclusion("strategy: unknown format, prefer quality") end local figurepaths = figures.paths local figureorder = figures.order @@ -648,7 +646,7 @@ local function locate(request) -- name, format, cache local isfile = url.hashed(check).scheme == "file" if not isfile then if trace_figures then - commands.writestatus("figures","warning: skipping path %s",path) + report_inclusion("warning: skipping path %s",path) end elseif figures.exists(check,format,true) then return register(askedname, { @@ -665,7 +663,7 @@ local function locate(request) -- name, format, cache end else -- 'location' if trace_figures then - commands.writestatus("figures","strategy: unknown format, prefer path") + report_inclusion("strategy: unknown format, prefer path") end local figurepaths = figures.paths local figureorder = figures.order @@ -693,7 +691,7 @@ local function locate(request) -- name, format, cache end if figures.defaultsearch then if trace_figures then - commands.writestatus("figures","strategy: default tex path") + report_inclusion("strategy: default tex path") end local figureorder = figures.order for j=1,#figureorder do @@ -807,9 +805,9 @@ function existers.generic(askedname,resolve) end if trace_figures then if result then - commands.writestatus("figures","found: %s -> %s",askedname,result) + report_inclusion("found: %s -> %s",askedname,result) else - commands.writestatus("figures","not found: %s",askedname) + report_inclusion("not found: %s",askedname) end end return result @@ -835,11 +833,11 @@ function checkers.generic(data) figure, data = f or figure, d or data figures.loaded[hash] = figure if trace_conversion then - report_graphics("new graphic, hash: %s",hash) + report_inclusion("new graphic, hash: %s",hash) end else if trace_conversion then - report_graphics("existing graphic, hash: %s",hash) + report_inclusion("existing graphic, hash: %s",hash) end end if figure then @@ -920,7 +918,7 @@ function checkers.mov(data) dr.width, dr.height = width, height du.width, du.height, du.foundname = width, height, foundname if trace_inclusion then - report_graphics("including movie '%s': width %s, height %s",foundname,width,height) + report_inclusion("including movie '%s': width %s, height %s",foundname,width,height) end -- we need to push the node.write in between ... we could make a shared helper for this context.startfoundexternalfigure(width .. "sp",height .. "sp") @@ -1008,7 +1006,7 @@ end local function runprogram(...) local command = format(...) if trace_conversion or trace_programs then - report_graphics("running %s",command) + report_inclusion("running %s",command) end os.spawn(command) end @@ -1126,7 +1124,7 @@ function bases.use(basename) xml.registerns("rlx","http://www.pragma-ade.com/schemas/rlx") -- we should be able to do this per xml file end if trace_bases then - commands.writestatus("figures","registering base '%s'",basename) + report_inclusion("registering base '%s'",basename) end end end @@ -1134,7 +1132,7 @@ end function bases.find(basename,askedlabel) if trace_bases then - commands.writestatus("figures","checking for '%s' in base '%s'",askedlabel,basename) + report_inclusion("checking for '%s' in base '%s'",askedlabel,basename) end basename = file.addsuffix(basename,"xml") local t = bases.found[askedlabel] @@ -1151,7 +1149,7 @@ function bases.find(basename,askedlabel) base[2] = xmlfile base[3] = xml.load(xmlfile) if trace_bases then - commands.writestatus("figures","base '%s' loaded",xmlfile) + report_inclusion("base '%s' loaded",xmlfile) end break end @@ -1170,13 +1168,13 @@ function bases.find(basename,askedlabel) } bases.found[askedlabel] = t if trace_bases then - commands.writestatus("figures","figure '%s' found in base '%s'",askedlabel,base[2]) + report_inclusion("figure '%s' found in base '%s'",askedlabel,base[2]) end return t end end if trace_bases and not t then - commands.writestatus("figures","figure '%s' not found in base '%s'",askedlabel,base[2]) + report_inclusion("figure '%s' not found in base '%s'",askedlabel,base[2]) end end end diff --git a/tex/context/base/grph-u3d.lua b/tex/context/base/grph-u3d.lua index e20655e3f..25a5addef 100644 --- a/tex/context/base/grph-u3d.lua +++ b/tex/context/base/grph-u3d.lua @@ -10,7 +10,7 @@ if not modules then modules = { } end modules ['grph-u3d'] = { local trace_inclusion = false trackers.register("figures.inclusion", function(v) trace_inclusion = v end) -local report_graphics = logs.new("graphics") +local report_u3d = logs.new("graphics","u3d") local figures = figures @@ -23,11 +23,11 @@ function figures.checkers.u3d(data) local dr, du, ds = data.request, data.used, data.status local width = todimen(dr.width or figures.defaultwidth) local height = todimen(dr.height or figures.defaultheight) - local foundname = du.report_graphics( + local foundname = du.report_u3ds( dr.width, dr.height = width, height du.width, du.height, du.foundname = width, height, foundname if trace_inclusion then - report_graphics("including u3d '%s': width %s, height %s",foundname,width,height) + report_u3d("including u3d '%s': width %s, height %s",foundname,width,height) end context.startfoundexternalfigure(width .. "sp",height .. "sp") context(function() diff --git a/tex/context/base/grph-wnd.lua b/tex/context/base/grph-wnd.lua index 0047651bf..5e048ad46 100644 --- a/tex/context/base/grph-wnd.lua +++ b/tex/context/base/grph-wnd.lua @@ -14,13 +14,13 @@ local converters, suffixes = figures.converters, figures.suffixes local trace_conversion = false trackers.register("figures.conversion", function(v) trace_conversion = v end) -local report_graphics = logs.new("graphics") +local report_wand = logs.new("graphics","wand") local function togray(oldname,newname) if lfs.isfile(oldname) then require("gmwand") if trace_conversion then - report_graphics("converting '%s' to '%s' using gmwand",oldname,newname) + report_wand("converting '%s' to '%s' using gmwand",oldname,newname) end gmwand.InitializeMagick("./") -- What does this path do? local wand = gmwand.NewMagickWand() @@ -29,7 +29,7 @@ local function togray(oldname,newname) gmwand.MagickWriteImages(wand,newname,1) gmwand.DestroyMagickWand(wand) else - report_graphics("unable to convert '%s' to '%s' using gmwand",oldname,newname) + report_wand("unable to convert '%s' to '%s' using gmwand",oldname,newname) end end @@ -39,7 +39,7 @@ for i=1,#formats do local oldformat = formats[i] local newformat = "gray." .. oldformat if trace_conversion then - report_graphics("installing converter: %s -> %s",oldformat,newformat) + report_wand("installing converter: %s -> %s",oldformat,newformat) end converters[oldformat] = converters[oldformat] or { } converters[oldformat][newformat] = togray diff --git a/tex/context/base/java-ini.lua b/tex/context/base/java-ini.lua index efe00ffce..cbe8ab30a 100644 --- a/tex/context/base/java-ini.lua +++ b/tex/context/base/java-ini.lua @@ -17,7 +17,7 @@ local variables = interfaces.variables local trace_javascript = false trackers.register("backends.javascript", function(v) trace_javascript = v end) -local report_javascript = logs.new("javascript") +local report_javascripts = logs.new("interactions","javascripts") interactions.javascripts = interactions.javascripts or { } local javascripts = interactions.javascripts @@ -68,7 +68,7 @@ function javascripts.storepreamble(str) -- now later preambles[n] = { name, used, script } preambled[name] = n if trace_javascript then - report_javascript("storing preamble '%s', state '%s', order '%s'",name,used,n) + report_javascripts("storing preamble '%s', state '%s', order '%s'",name,used,n) end lpegmatch(parsefunctions,script,1,n) end @@ -80,7 +80,7 @@ function javascripts.setpreamble(name,script) -- now later preambles[n] = { name, "now", script } preambled[name] = n if trace_javascript then - report_javascript("setting preamble '%s', state 'now', order '%s'",name,n) + report_javascripts("setting preamble '%s', state 'now', order '%s'",name,n) end lpegmatch(parsefunctions,script,1,n) end @@ -92,14 +92,14 @@ function javascripts.addtopreamble(name,script) -- now later if p then preambles[p] = { "now", preambles[p] .. " ;\n" .. script } if trace_javascript then - report_javascript("extending preamble '%s', state 'now'",name) + report_javascripts("extending preamble '%s', state 'now'",name) end else local n = #preambles + 1 preambles[n] = { name, "now", script } preambled[name] = n if trace_javascript then - report_javascript("storing preamble '%s', state 'now', order '%s'",name,n) + report_javascripts("storing preamble '%s', state 'now', order '%s'",name,n) end lpegmatch(parsefunctions,script,1,n) end @@ -114,7 +114,7 @@ function javascripts.usepreamblenow(name) -- now later if not preambled[somename] then preambles[preambled[somename]][2] = "now" if trace_javascript then - report_javascript("using preamble '%s', state 'now'",somename) + report_javascripts("using preamble '%s', state 'now'",somename) end end end @@ -135,15 +135,15 @@ function javascripts.code(name,arguments) preambles[p][2] = "now" if trace_javascript and not reported[name] then reported[name] = true - report_javascript("using code '%s', preamble '%s'",name,u) + report_javascripts("using code '%s', preamble '%s'",name,u) end elseif trace_javascript and not reported[name] then reported[name] = true - report_javascript("using code '%s'",name) + report_javascripts("using code '%s'",name) end elseif trace_javascript and not reported[name] then reported[name] = true - report_javascript("using code '%s'",name) + report_javascripts("using code '%s'",name) end used = true return code @@ -153,7 +153,7 @@ function javascripts.code(name,arguments) used = true if trace_javascript and not reported[name] then reported[name] = true - report_javascript("using function '%s'",name) + report_javascripts("using function '%s'",name) end preambles[f][2] = "now" -- automatically tag preambles that define the function (as later) if arguments then @@ -175,7 +175,7 @@ function javascripts.flushpreambles() local preamble = preambles[i] if preamble[2] == "now" then if trace_javascript then - report_javascript("flushing preamble '%s'",preamble[1]) + report_javascripts("flushing preamble '%s'",preamble[1]) end t[#t+1] = { preamble[1], preamble[3] } end diff --git a/tex/context/base/l-lpeg.lua b/tex/context/base/l-lpeg.lua index 868a6d52e..b20bc8853 100644 --- a/tex/context/base/l-lpeg.lua +++ b/tex/context/base/l-lpeg.lua @@ -423,11 +423,7 @@ local p = Cs((S("-.+*%()[]") / patterns_escapes + anything)^0) local s = Cs((S("-.+*%()[]") / simple_escapes + anything)^0) function string.escapedpattern(str,simple) - if simple then - return match(s,str) - else - return match(p,str) - end + return match(simple and s or p,str) end -- utf extensies diff --git a/tex/context/base/l-string.lua b/tex/context/base/l-string.lua index 7e4f7a95c..989e57f75 100644 --- a/tex/context/base/l-string.lua +++ b/tex/context/base/l-string.lua @@ -93,11 +93,7 @@ local simple_escapes = { } function string.escapedpattern(str,simple) - if simple then - return (gsub(str,".",simple_escapes)) - else - return (gsub(str,".",patterns_escapes)) - end + return (gsub(str,".",simple and simple_escapes or patterns_escapes)) end function string.topattern(str,lowercase,strict) diff --git a/tex/context/base/lang-def.mkiv b/tex/context/base/lang-def.mkiv index 19c2c676d..871e4f528 100644 --- a/tex/context/base/lang-def.mkiv +++ b/tex/context/base/lang-def.mkiv @@ -134,6 +134,7 @@ rightquotation=\rightguillemot, date={day,{.},\ ,month,\ ,year}] + \installlanguage [\s!no] [\s!nb] \installlanguage [\s!norwegian] [\s!nb] \installlanguage [\s!bokmal] [\s!nb] @@ -510,6 +511,10 @@ % CJK +\definesystemconstant {chinese} \definesystemconstant {cn} +\definesystemconstant {japanese} \definesystemconstant {ja} +\definesystemconstant {korean} \definesystemconstant {kr} + \installlanguage [\s!cn] [\c!leftsentence=——, @@ -543,8 +548,8 @@ \c!leftquote=‘, \c!rightquote=’, \c!leftquotation=“, - \c!rightquotation=”」, - \c!date={서기,\v!year,年,\v!month,月,\v!day,日}] + \c!rightquotation=”, + \c!date={서기,\v!year,년,\v!month,월,\v!day,일}] % Greek diff --git a/tex/context/base/lang-ini.lua b/tex/context/base/lang-ini.lua index 8744bff95..c3bed03a6 100644 --- a/tex/context/base/lang-ini.lua +++ b/tex/context/base/lang-ini.lua @@ -27,7 +27,7 @@ local settings_to_array = utilities.parsers.settings_to_array local trace_patterns = false trackers.register("languages.patterns", function(v) trace_patterns = v end) -local report_languages = logs.new("languages") +local report_initialization = logs.new("languages","initialization") local prehyphenchar, posthyphenchar = lang.prehyphenchar, lang.posthyphenchar -- global per language local lefthyphenmin, righthyphenmin = lang.lefthyphenmin, lang.righthyphenmin @@ -92,7 +92,7 @@ local function loaddefinitions(tag,specification) if definition ~= "" then if definition == "reset" then -- interfaces.variables.reset if trace_patterns then - report_languages("clearing patterns for language '%s'",tag) + report_initialization("clearing patterns for language '%s'",tag) end instance:clear_patterns() elseif not dataused[definition] then @@ -101,7 +101,7 @@ local function loaddefinitions(tag,specification) local fullname = resolvers.findfile(filename) or "" if fullname ~= "" then if trace_patterns then - report_languages("loading definition '%s' for language '%s' from '%s'",definition,tag,fullname) + report_initialization("loading definition '%s' for language '%s' from '%s'",definition,tag,fullname) end local defs = dofile(fullname) -- use regular loader instead if defs then -- todo: version test @@ -109,18 +109,18 @@ local function loaddefinitions(tag,specification) instance:patterns (defs.patterns and defs.patterns.data or "") instance:hyphenation(defs.exceptions and defs.exceptions.data or "") else - report_languages("invalid definition '%s' for language '%s' in '%s'",definition,tag,filename) + report_initialization("invalid definition '%s' for language '%s' in '%s'",definition,tag,filename) end elseif trace_patterns then - report_languages("invalid definition '%s' for language '%s' in '%s'",definition,tag,filename) + report_initialization("invalid definition '%s' for language '%s' in '%s'",definition,tag,filename) end elseif trace_patterns then - report_languages("definition '%s' for language '%s' already loaded",definition,tag) + report_initialization("definition '%s' for language '%s' already loaded",definition,tag) end end end elseif trace_patterns then - report_languages("no definitions for language '%s'",tag) + report_initialization("no definitions for language '%s'",tag) end statistics.stoptiming(languages) return ok @@ -133,7 +133,7 @@ local noflanguages = storage.shared.noflanguages function languages.define(tag,parent) noflanguages = noflanguages + 1 if trace_patterns then - report_languages("assigning number %s to %s",noflanguages,tag) + report_initialization("assigning number %s to %s",noflanguages,tag) end numbers[noflanguages] = tag registered[tag] = { @@ -213,14 +213,14 @@ else if l then if l.dirty then if trace_patterns then - report_languages("checking patterns for %s (%s)",tag,default) + report_initialization("checking patterns for %s (%s)",tag,default) end -- patterns is already resolved to parent patterns if applicable if patterns ~= "" then if l.patterns ~= patterns then l.patterns = patterns if trace_patterns then - report_languages("loading patterns for '%s' using specification '%s'",tag,patterns) + report_initialization("loading patterns for '%s' using specification '%s'",tag,patterns) end loaddefinitions(tag,l) else @@ -229,13 +229,13 @@ else elseif l.patterns == "" then l.patterns = tag if trace_patterns then - report_languages("loading patterns for '%s' using tag",tag) + report_initialization("loading patterns for '%s' using tag",tag) end local ok = loaddefinitions(tag,l) if not ok and tag ~= default then l.patterns = defaukt if trace_patterns then - report_languages("loading patterns for '%s' using default",tag) + report_initialization("loading patterns for '%s' using default",tag) end loaddefinitions(tag,l) end @@ -366,12 +366,12 @@ end) --~ local ok = fullname ~= "" --~ if ok then --~ if trace_patterns then ---~ report_languages("filtering %s for language '%s' from '%s'",target,tag,fullname) +--~ report_initialization("filtering %s for language '%s' from '%s'",target,tag,fullname) --~ end --~ lang[target](data,filter(fullname) or "") --~ else --~ if trace_patterns then ---~ report_languages("no %s for language '%s' in '%s'",target,tag,filename or "?") +--~ report_initialization("no %s for language '%s' in '%s'",target,tag,filename or "?") --~ end --~ lang[target](instance,"") --~ end diff --git a/tex/context/base/lang-ini.mkiv b/tex/context/base/lang-ini.mkiv index 88b26ddb0..fe8aee917 100644 --- a/tex/context/base/lang-ini.mkiv +++ b/tex/context/base/lang-ini.mkiv @@ -387,7 +387,7 @@ \docomplexlanguage \fi \else - \showmessage\m!linguals6{#1}% + \showmessage\m!languages6{#1}% \fi \fi} @@ -545,7 +545,7 @@ \def\initializemainlanguage {\mainlanguage[\currentlanguage]% - \showmessage\m!linguals9\currentlanguage} + \showmessage\m!languages9\currentlanguage} %D New: diff --git a/tex/context/base/lang-lab.lua b/tex/context/base/lang-lab.lua index 0f4fa0a30..41cd40df7 100644 --- a/tex/context/base/lang-lab.lua +++ b/tex/context/base/lang-lab.lua @@ -69,7 +69,7 @@ languages.data = languages.data or { } local trace_labels = false trackers.register("languages.labels", function(v) trace_labels = v end) -local report_labels = logs.new("language labels") +local report_labels = logs.new("languages","labels") function languages.labels.define() local variables = interfaces.variables @@ -119,7 +119,7 @@ end --~ for tag, specification in next, list do --~ for language, text in next, specification.labels do --~ if type(text) == "string" and find(text,",") then ---~ logs.simple("label with comma: category '%s', language '%s', tag '%s', text '%s'", +--~ report_labels("label with comma: category '%s', language '%s', tag '%s', text '%s'", --~ category, language, tag, text) --~ end --~ end diff --git a/tex/context/base/lang-mis.mkiv b/tex/context/base/lang-mis.mkiv index 80b36c810..231697c7e 100644 --- a/tex/context/base/lang-mis.mkiv +++ b/tex/context/base/lang-mis.mkiv @@ -221,7 +221,7 @@ \def\handlemathmodediscretionary#1{\executeifdefined{\@tmd@math@\detokenize{#1}}\donothing} \def\handletextmodediscretionary#1{\executeifdefined{\@tmd@text@\detokenize{#1}}\donothing} -\def\installdiscretionaries#1#2{\writestatus\m!systems{use \string \installdiscretionary}} % obsolete +\def\installdiscretionaries#1#2{\writestatus\m!system{use \string \installdiscretionary}} % obsolete \setnewconstant\discretionarymode\plusone diff --git a/tex/context/base/lang-txt.lua b/tex/context/base/lang-txt.lua index 7becc63fc..8b245ff12 100644 --- a/tex/context/base/lang-txt.lua +++ b/tex/context/base/lang-txt.lua @@ -9,8 +9,45 @@ if not modules then modules = { } end modules ['lang-txt'] = { -- The content of this file is derived from the mkii lang-* files and -- early 2011 the mkii labels are generated from this file. The -- translations have been collected over years by users, using named --- glyphs. This file uses utf exclusively. For those involved in the --- translations see the 'lang-*.mkii' files. +-- glyphs. This file uses utf exclusively. +-- +-- Many of the initial translations were done by Tobias Burnus but +-- completed by numerous users. The following list is incomplete so feel +-- free to send me corrections. +-- +-- af Afrikaans ... +-- ar Arabic Idris Samawi Hamid, Khaled Hosny +-- ca Catalan ... +-- cn Chinese Wang Lei, ... +-- cs Czech Tom Hudec, Petr Sojka, Richard Gabriel +-- da Danish Arne Jorgensen +-- de German Tobias Burnus, ... +-- en English Hans Hagen, ... +-- es Spanish ... +-- fi Finish ... +-- fr French Daniel Flipo, Arthur Reutenauer +-- gr Greek Apostolos Syropoulos, Thomas Schmitz +-- hr Croatian Željko Vrba, Richard Gabriel +-- hu Hungarian ... +-- it Italian Giuseppe Bilotta, Luigi Scarso +-- ja Japanese Richard Gabriel +-- kr Korean Jeong Dalyoung +-- la Latin ... +-- lt Lithuanian Marius Aleknevičius +-- nb Norwegian Hans Fredrik Nordhaug, ... +-- nn Norwegian Hans Fredrik Nordhaug, ... +-- nl Dutch Hans Hagen +-- pl Polish Grzegorz Sapijaszko +-- pt Portuguese Pedro F. M. Mendonça +-- ro Romanian Dan Seracu, ... +-- ru Russian Olga Briginets, Alexander Bokovoy, Victor Figurnov, ... +-- sk Slovak ... +-- sl Slovenian Mojca Miklavec +-- sv Swedish ... +-- tk Turkish Tobias Burnus +-- tr Turkmen Nazar Annagurban +-- ua Ukrainian Olga Briginets, Alexander Bokovoy, Victor Figurnov, ... +-- vi Vietnamese Han The Thanh -- For the moment we keep this table in memory. In the future we can then -- enable labels. @@ -513,7 +550,7 @@ data.labels={ hu=",. fejezet:", it="", ja={"第","章"}, - kr="장", + kr={"제", "장"}, la="", lt="", nb="", @@ -801,7 +838,6 @@ data.labels={ hu=",. kép:", it="Grafico ", ja="イラスト", - kr="삽화", la="Typus ", lt="Graphic ", nb="Bilde ", @@ -835,6 +871,7 @@ data.labels={ gr="", hr="vidi gore", hu="", + kr="그러므로", it="come mostrato sopra", la="", lt="kaip parodyta aukščiau", @@ -906,7 +943,7 @@ data.labels={ hu=",. intermezzo:", it="Intermezzo ", ja="間奏曲", - kr="", + kr="간주곡", la="Intermissum ", lt="Intermezzo ", nb="Intermesso ", @@ -945,7 +982,7 @@ data.labels={ hu="január", it="gennaio", ja="1", - kr="들어가기", + kr="1월", la="Ianuarius", lt="sausio", nb="januar", @@ -1197,6 +1234,7 @@ data.labels={ hu="sorok", it="righe ", ja="線", + kr="행", la="versus ", lt="lines ", nb="linjer ", @@ -1555,6 +1593,7 @@ data.labels={ hr="stranica ", hu="", it="pagina ", + kr="쪽", la="", lt="puslapis ", nb="side ", @@ -1591,7 +1630,7 @@ data.labels={ hu=",. rész:", it="Parte ", ja={"第","パート"}, - kr="부", + kr={"제","부"}, la="Pars ", lt=", dalis", nb="Del", @@ -1666,7 +1705,7 @@ data.labels={ hu="", it="", ja={"第","項"}, - kr="절", + kr={"제","절"}, la="", lt="", nb="", @@ -1701,6 +1740,7 @@ data.labels={ hr="vidi ", hu="", it="cf. ", + kr="", la="", lt="žiūrėti ", nb="se ", @@ -1810,7 +1850,6 @@ data.labels={ hu="", it="", ja="", - kr="", la="", lt="", nb="", @@ -1848,7 +1887,6 @@ data.labels={ hu="", it="", ja="", - kr="", la="", lt="", nb="", @@ -1886,7 +1924,6 @@ data.labels={ hu="", it="", ja="", - kr="", la="", lt="", nb="", @@ -2295,7 +2332,7 @@ data.labels={ hu="Intermezzok", it="Intermezzi", ja="間奏曲", - kr="", + kr="간주곡", la="Intermissa", lt="Intermezzos", nb="Intermesso", diff --git a/tex/context/base/lang-wrd.lua b/tex/context/base/lang-wrd.lua index d008ed341..b8eb19353 100644 --- a/tex/context/base/lang-wrd.lua +++ b/tex/context/base/lang-wrd.lua @@ -12,7 +12,7 @@ local concat = table.concat local lpegmatch = lpeg.match local P, S, Cs = lpeg.P, lpeg.S, lpeg.Cs -local report_languages = logs.new("languages") +local report_words = logs.new("languages","words") local nodes, node, languages = nodes, node, languages @@ -60,7 +60,7 @@ local loaded = { } -- we share lists function words.load(tag,filename) local fullname = resolvers.findfile(filename,'other text file') or "" if fullname ~= "" then - report_languages("loading word file '%s'",fullname) + report_words("loading word file '%s'",fullname) statistics.starttiming(languages) local list = loaded[fullname] if not list then @@ -72,7 +72,7 @@ function words.load(tag,filename) wordsdata[tag] = list statistics.stoptiming(languages) else - report_languages("missing words file '%s'",filename) + report_words("missing word file '%s'",filename) end end @@ -374,7 +374,7 @@ local function dumpusedwords() if dumpthem then collected.threshold = words.threshold dumpname = dumpname or file.addsuffix(tex.jobname,"words") - report_languages("saving list of used words in '%s'",dumpname) + report_words("saving list of used words in '%s'",dumpname) io.savedata(dumpname,table.serialize(collected,true)) -- table.tofile(dumpname,list,true) end diff --git a/tex/context/base/lpdf-ano.lua b/tex/context/base/lpdf-ano.lua index 6d25a9c42..d020c8a78 100644 --- a/tex/context/base/lpdf-ano.lua +++ b/tex/context/base/lpdf-ano.lua @@ -16,9 +16,9 @@ local trace_references = false trackers.register("references.references", f local trace_destinations = false trackers.register("references.destinations", function(v) trace_destinations = v end) local trace_bookmarks = false trackers.register("references.bookmarks", function(v) trace_bookmarks = v end) -local report_references = logs.new("references") -local report_destinations = logs.new("destinations") -local report_bookmarks = logs.new("bookmarks") +local report_reference = logs.new("backend","references") +local report_destination = logs.new("backend","destinations") +local report_bookmark = logs.new("backend","bookmarks") local variables = interfaces.variables local constants = interfaces.constants @@ -151,7 +151,7 @@ local function link(url,filename,destination,page,actions) } } else - commands.writestatus("references","invalid page reference: %s",page or "?") + report_reference("invalid page reference: %s",page or "?") end end return false @@ -236,7 +236,7 @@ local function use_normal_annotations() local function reference(width,height,depth,prerolled) -- keep this one if prerolled then if trace_references then - report_references("w=%s, h=%s, d=%s, a=%s",width,height,depth,prerolled) + report_reference("w=%s, h=%s, d=%s, a=%s",width,height,depth,prerolled) end return pdfannotation_node(width,height,depth,prerolled) end @@ -277,7 +277,7 @@ local function use_shared_annotations() local function reference(width,height,depth,prerolled) if prerolled then if trace_references then - report_references("w=%s, h=%s, d=%s, a=%s",width,height,depth,prerolled) + report_reference("w=%s, h=%s, d=%s, a=%s",width,height,depth,prerolled) end local luacode = format("_bpnf_(%s,%s,%s,'%s')",width,height,depth,prerolled) return latelua_node(luacode) @@ -321,7 +321,7 @@ end node.free(lln) function nodeinjections.destination(width,height,depth,name,view) if trace_destinations then - report_destinations("w=%s, h=%s, d=%s, n=%s, v=%s",width,height,depth,name,view or "no view") + report_destination("w=%s, h=%s, d=%s, n=%s, v=%s",width,height,depth,name,view or "no view") end return pdfdestination_node(width,height,depth,name,view) end @@ -342,7 +342,7 @@ runners["inner"] = function(var,actions) end runners["inner with arguments"] = function(var,actions) - report_references("todo: inner with arguments") + report_reference("todo: inner with arguments") return false end @@ -362,7 +362,7 @@ runners["special outer with operation"] = function(var,actions) end runners["special outer"] = function(var,actions) - report_references("todo: special outer") + report_reference("todo: special outer") return false end @@ -372,22 +372,22 @@ runners["special"] = function(var,actions) end runners["outer with inner with arguments"] = function(var,actions) - report_references("todo: outer with inner with arguments") + report_reference("todo: outer with inner with arguments") return false end runners["outer with special and operation and arguments"] = function(var,actions) - report_references("todo: outer with special and operation and arguments") + report_reference("todo: outer with special and operation and arguments") return false end runners["outer with special"] = function(var,actions) - report_references("todo: outer with special") + report_reference("todo: outer with special") return false end runners["outer with special and operation"] = function(var,actions) - report_references("todo: outer with special and operation") + report_reference("todo: outer with special and operation") return false end @@ -399,7 +399,7 @@ function specials.internal(var,actions) -- better resolve in strc-ref local v = references.internals[i] if not v then -- error - report_references("no internal reference '%s'",var.operation) + report_reference("no internal reference '%s'",var.operation) elseif getinnermethod() == "names" then -- named return link(nil,nil,"aut:"..i,v.references.realpage,actions) @@ -630,7 +630,7 @@ local function build(levels,start,parent,method) return i, n, first, last elseif level == startlevel then if trace_bookmarks then - report_bookmarks("%3i %s%s %s",reference.realpage,rep(" ",level-1),(open and "+") or "-",title) + report_bookmark("%3i %s%s %s",reference.realpage,rep(" ",level-1),(open and "+") or "-",title) end local prev = child child = pdfreserveobject() diff --git a/tex/context/base/lpdf-epa.lua b/tex/context/base/lpdf-epa.lua index 1e5b3646a..14d0da84f 100644 --- a/tex/context/base/lpdf-epa.lua +++ b/tex/context/base/lpdf-epa.lua @@ -14,7 +14,7 @@ local format = string.format local trace_links = false trackers.register("figures.links", function(v) trace_links = v end) -local report_link = logs.new("links") +local report_link = logs.new("backend","merging") local backends, lpdf = backends, lpdf diff --git a/tex/context/base/lpdf-fld.lua b/tex/context/base/lpdf-fld.lua index 622b56098..8b2ccaaec 100644 --- a/tex/context/base/lpdf-fld.lua +++ b/tex/context/base/lpdf-fld.lua @@ -16,7 +16,7 @@ local bpfactor, todimen = number.dimenfactors.bp, string.todimen local trace_fields = false trackers.register("widgets.fields", function(v) trace_fields = v end) -local report_fields = logs.new("fields") +local report_fields = logs.new("backend","fields") local backends, lpdf = backends, lpdf @@ -178,153 +178,154 @@ end -- fonts and color - local pdfdocencodingvector, pdfdocencodingcapsule local function checkpdfdocencoding() + -- not using pdfconstant for all these names saves us quite + -- some bytecode local encoding = pdfdictionary { Type = pdfconstant("Encoding"), Differences = pdfarray { 24, - pdfconstant("breve"), - pdfconstant("caron"), - pdfconstant("circumflex"), - pdfconstant("dotaccent"), - pdfconstant("hungarumlaut"), - pdfconstant("ogonek"), - pdfconstant("ring"), - pdfconstant("tilde"), + "/breve", + "/caron", + "/circumflex", + "/dotaccent", + "/hungarumlaut", + "/ogonek", + "/ring", + "/tilde", 39, - pdfconstant("quotesingle"), + "/quotesingle", 96, - pdfconstant("grave"), + "/grave", 128, - pdfconstant("bullet"), - pdfconstant("dagger"), - pdfconstant("daggerdbl"), - pdfconstant("ellipsis"), - pdfconstant("emdash"), - pdfconstant("endash"), - pdfconstant("florin"), - pdfconstant("fraction"), - pdfconstant("guilsinglleft"), - pdfconstant("guilsinglright"), - pdfconstant("minus"), - pdfconstant("perthousand"), - pdfconstant("quotedblbase"), - pdfconstant("quotedblleft"), - pdfconstant("quotedblright"), - pdfconstant("quoteleft"), - pdfconstant("quoteright"), - pdfconstant("quotesinglbase"), - pdfconstant("trademark"), - pdfconstant("fi"), - pdfconstant("fl"), - pdfconstant("Lslash"), - pdfconstant("OE"), - pdfconstant("Scaron"), - pdfconstant("Ydieresis"), - pdfconstant("Zcaron"), - pdfconstant("dotlessi"), - pdfconstant("lslash"), - pdfconstant("oe"), - pdfconstant("scaron"), - pdfconstant("zcaron"), + "/bullet", + "/dagger", + "/daggerdbl", + "/ellipsis", + "/emdash", + "/endash", + "/florin", + "/fraction", + "/guilsinglleft", + "/guilsinglright", + "/minus", + "/perthousand", + "/quotedblbase", + "/quotedblleft", + "/quotedblright", + "/quoteleft", + "/quoteright", + "/quotesinglbase", + "/trademark", + "/fi", + "/fl", + "/Lslash", + "/OE", + "/Scaron", + "/Ydieresis", + "/Zcaron", + "/dotlessi", + "/lslash", + "/oe", + "/scaron", + "/zcaron", 160, - pdfconstant("Euro"), + "/Euro", 164, - pdfconstant("currency"), + "/currency", 166, - pdfconstant("brokenbar"), + "/brokenbar", 168, - pdfconstant("dieresis"), - pdfconstant("copyright"), - pdfconstant("ordfeminine"), + "/dieresis", + "/copyright", + "/ordfeminine", 172, - pdfconstant("logicalnot"), - pdfconstant(".notdef"), - pdfconstant("registered"), - pdfconstant("macron"), - pdfconstant("degree"), - pdfconstant("plusminus"), - pdfconstant("twosuperior"), - pdfconstant("threesuperior"), - pdfconstant("acute"), - pdfconstant("mu"), + "/logicalnot", + "/.notdef", + "/registered", + "/macron", + "/degree", + "/plusminus", + "/twosuperior", + "/threesuperior", + "/acute", + "/mu", 183, - pdfconstant("periodcentered"), - pdfconstant("cedilla"), - pdfconstant("onesuperior"), - pdfconstant("ordmasculine"), + "/periodcentered", + "/cedilla", + "/onesuperior", + "/ordmasculine", 188, - pdfconstant("onequarter"), - pdfconstant("onehalf"), - pdfconstant("threequarters"), + "/onequarter", + "/onehalf", + "/threequarters", 192, - pdfconstant("Agrave"), - pdfconstant("Aacute"), - pdfconstant("Acircumflex"), - pdfconstant("Atilde"), - pdfconstant("Adieresis"), - pdfconstant("Aring"), - pdfconstant("AE"), - pdfconstant("Ccedilla"), - pdfconstant("Egrave"), - pdfconstant("Eacute"), - pdfconstant("Ecircumflex"), - pdfconstant("Edieresis"), - pdfconstant("Igrave"), - pdfconstant("Iacute"), - pdfconstant("Icircumflex"), - pdfconstant("Idieresis"), - pdfconstant("Eth"), - pdfconstant("Ntilde"), - pdfconstant("Ograve"), - pdfconstant("Oacute"), - pdfconstant("Ocircumflex"), - pdfconstant("Otilde"), - pdfconstant("Odieresis"), - pdfconstant("multiply"), - pdfconstant("Oslash"), - pdfconstant("Ugrave"), - pdfconstant("Uacute"), - pdfconstant("Ucircumflex"), - pdfconstant("Udieresis"), - pdfconstant("Yacute"), - pdfconstant("Thorn"), - pdfconstant("germandbls"), - pdfconstant("agrave"), - pdfconstant("aacute"), - pdfconstant("acircumflex"), - pdfconstant("atilde"), - pdfconstant("adieresis"), - pdfconstant("aring"), - pdfconstant("ae"), - pdfconstant("ccedilla"), - pdfconstant("egrave"), - pdfconstant("eacute"), - pdfconstant("ecircumflex"), - pdfconstant("edieresis"), - pdfconstant("igrave"), - pdfconstant("iacute"), - pdfconstant("icircumflex"), - pdfconstant("idieresis"), - pdfconstant("eth"), - pdfconstant("ntilde"), - pdfconstant("ograve"), - pdfconstant("oacute"), - pdfconstant("ocircumflex"), - pdfconstant("otilde"), - pdfconstant("odieresis"), - pdfconstant("divide"), - pdfconstant("oslash"), - pdfconstant("ugrave"), - pdfconstant("uacute"), - pdfconstant("ucircumflex"), - pdfconstant("udieresis"), - pdfconstant("yacute"), - pdfconstant("thorn"), - pdfconstant("ydieresis"), + "/Agrave", + "/Aacute", + "/Acircumflex", + "/Atilde", + "/Adieresis", + "/Aring", + "/AE", + "/Ccedilla", + "/Egrave", + "/Eacute", + "/Ecircumflex", + "/Edieresis", + "/Igrave", + "/Iacute", + "/Icircumflex", + "/Idieresis", + "/Eth", + "/Ntilde", + "/Ograve", + "/Oacute", + "/Ocircumflex", + "/Otilde", + "/Odieresis", + "/multiply", + "/Oslash", + "/Ugrave", + "/Uacute", + "/Ucircumflex", + "/Udieresis", + "/Yacute", + "/Thorn", + "/germandbls", + "/agrave", + "/aacute", + "/acircumflex", + "/atilde", + "/adieresis", + "/aring", + "/ae", + "/ccedilla", + "/egrave", + "/eacute", + "/ecircumflex", + "/edieresis", + "/igrave", + "/iacute", + "/icircumflex", + "/idieresis", + "/eth", + "/ntilde", + "/ograve", + "/oacute", + "/ocircumflex", + "/otilde", + "/odieresis", + "/divide", + "/oslash", + "/ugrave", + "/uacute", + "/ucircumflex", + "/udieresis", + "/yacute", + "/thorn", + "/ydieresis", }, } pdfdocencodingvector = pdfreference(pdfflushobject(encoding)) @@ -398,10 +399,11 @@ local function registerfonts() if next(usedfonts) then checkpdfdocencoding() local d = pdfdictionary() + local pdffonttype, pdffontsubtype = pdfconstant("Font"), pdfconstant("Type1") for tag, name in next, usedfonts do local f = pdfdictionary { - Type = pdfconstant("Font"), - Subtype = pdfconstant("Type1"), + Type = pdffonttype, + Subtype = pdffontsubtype, Name = pdfconstant(tag), BaseFont = pdfconstant(name), Encoding = pdfdocencodingvector, diff --git a/tex/context/base/lpdf-fmt.lua b/tex/context/base/lpdf-fmt.lua index 348f6eada..8f0a57bf4 100644 --- a/tex/context/base/lpdf-fmt.lua +++ b/tex/context/base/lpdf-fmt.lua @@ -13,7 +13,7 @@ if not modules then modules = { } end modules ['lpdf-fmt'] = { local trace_format = false trackers.register("backend.format", function(v) trace_format = v end) local trace_variables = false trackers.register("backend.variables", function(v) trace_variables = v end) -local report_backends = logs.new("backends") +local report_backend = logs.new("backend","profiles") local backends, lpdf = backends, lpdf @@ -380,16 +380,16 @@ local function loadprofile(name,filename) end if profile then if next(profile) then - report_backends("profile specification '%s' loaded from '%s'",name,filename) + report_backend("profile specification '%s' loaded from '%s'",name,filename) return profile elseif trace_format then - report_backends("profile specification '%s' loaded from '%s' but empty",name,filename) + report_backend("profile specification '%s' loaded from '%s' but empty",name,filename) end return false end end end - report_backends("profile specification '%s' not found in '%s'",name,concat(filenames, ", ")) + report_backend("profile specification '%s' not found in '%s'",name,concat(filenames, ", ")) end local function urls(url) @@ -418,7 +418,7 @@ local internalprofiles = { } local function handleinternalprofile(s,include) local filename, colorspace = s.filename or "", s.colorspace or "" if filename == "" or colorspace == "" then - report_backends("error in internal profile specification: %s",serialize(s,false)) + report_backend("error in internal profile specification: %s",serialize(s,false)) else local tag = profilename(filename) local profile = internalprofiles[tag] @@ -429,9 +429,9 @@ local function handleinternalprofile(s,include) local fullname = locatefile(filename) local channel = channels[colorspace] or nil if fullname == "" then - report_backends("error, couldn't locate profile '%s'",filename) + report_backend("error, couldn't locate profile '%s'",filename) elseif not channel then - report_backends("error, couldn't resolve channel entry for colorspace '%s'",colorspace) + report_backend("error, couldn't resolve channel entry for colorspace '%s'",colorspace) else local a = pdfdictionary { N = channel } profile = pdfobject { -- does a flush too @@ -443,13 +443,13 @@ local function handleinternalprofile(s,include) } internalprofiles[tag] = profile if trace_format then - report_backends("including '%s' color profile from '%s'",colorspace,fullname) + report_backend("including '%s' color profile from '%s'",colorspace,fullname) end end else internalprofiles[tag] = true if trace_format then - report_backends("not including '%s' color profile '%s'",colorspace,filename) + report_backend("not including '%s' color profile '%s'",colorspace,filename) end end end @@ -476,9 +476,9 @@ local function handleexternalprofile(s,include) -- specification (include ignore if name == "" or url == "" or checksum == "" or version == "" or colorspace == "" or filename == "" then local profile = handleinternalprofile(s) if profile then - report_backends("incomplete external profile specification, falling back to internal") + report_backend("incomplete external profile specification, falling back to internal") else - report_backends("error in external profile specification: %s",serialize(s,false)) + report_backend("error in external profile specification: %s",serialize(s,false)) end else local tag = profilename(filename) @@ -503,12 +503,12 @@ local loadeddefaults = { } local function handledefaultprofile(s,spec) -- specification local filename, colorspace = s.filename or "", lower(s.colorspace or "") if filename == "" or colorspace == "" then - report_backends("error in default profile specification: %s",serialize(s,false)) + report_backend("error in default profile specification: %s",serialize(s,false)) elseif not loadeddefaults[colorspace] then local tag = profilename(filename) local n = internalprofiles[tag] -- or externalprofiles[tag] if n == true then -- not internalized - report_backends("no default profile '%s' for colorspace '%s'",filename,colorspace) + report_backend("no default profile '%s' for colorspace '%s'",filename,colorspace) elseif n then local a = pdfarray { pdfconstant("ICCBased"), @@ -517,12 +517,12 @@ local function handledefaultprofile(s,spec) -- specification -- used in page /Resources, so this must be inserted at runtime lpdf.adddocumentcolorspace(prefixes[colorspace],pdfreference(pdfflushobject(a))) loadeddefaults[colorspace] = true - report_backends("setting '%s' as default '%s' color space",filename,colorspace) + report_backend("setting '%s' as default '%s' color space",filename,colorspace) else - report_backends("no default profile '%s' for colorspace '%s'",filename,colorspace) + report_backend("no default profile '%s' for colorspace '%s'",filename,colorspace) end elseif trace_format then - report_backends("a default '%s' colorspace is already in use",colorspace) + report_backend("a default '%s' colorspace is already in use",colorspace) end end @@ -531,7 +531,7 @@ local loadedintents, intents = { }, pdfarray() local function handleoutputintent(s,spec) local name, url, filename, id, outputcondition, info = s.info or s.filename or "", s.url or "", s.filename or "", s.id or "", s.outputcondition or "", s.info or "" if name == "" or id == "" then - report_backends("error in output intent specification: %s",serialize(s,false)) + report_backend("error in output intent specification: %s",serialize(s,false)) elseif not loadedintents[name] then local tag = profilename(filename) local internal, external = internalprofiles[tag], externalprofiles[tag] @@ -549,18 +549,18 @@ local function handleoutputintent(s,spec) elseif external and external ~= true then d.DestOutputProfileRef = pdfreference(external) else - report_backends("omitting reference to profile for intent '%s'",name) + report_backend("omitting reference to profile for intent '%s'",name) end intents[#intents+1] = pdfreference(pdfflushobject(pdfdictionary(d))) if trace_format then - report_backends("setting output intent to '%s' with id '%s' (entry %s)",name,id,#intents) + report_backend("setting output intent to '%s' with id '%s' (entry %s)",name,id,#intents) end else - report_backends("invalid output intent '%s'",name) + report_backend("invalid output intent '%s'",name) end loadedintents[name] = true elseif trace_format then - report_backends("an output intent with name '%s' is already in use",name) + report_backend("an output intent with name '%s' is already in use",name) end end @@ -571,7 +571,7 @@ local function handleiccprofile(message,spec,name,filename,how,options,alwaysinc local name = list[i] local profile = loadprofile(name,filename) if trace_format then - report_backends("handling %s '%s'",message,name) + report_backend("handling %s '%s'",message,name) end if profile then if formatspecification.cmyk_colors then @@ -585,34 +585,34 @@ local function handleiccprofile(message,spec,name,filename,how,options,alwaysinc local always, never = options[variables.always], options[variables.never] if always or alwaysinclude then if trace_format then - report_backends("forcing internal profiles") -- can make preflight unhappy + report_backend("forcing internal profiles") -- can make preflight unhappy end -- internal, external = true, false internal, external = not never, false elseif never then if trace_format then - report_backends("forcing external profiles") -- can make preflight unhappy + report_backend("forcing external profiles") -- can make preflight unhappy end internal, external = false, true end if external then if trace_format then - report_backends("handling external profiles cf. '%s'",name) + report_backend("handling external profiles cf. '%s'",name) end handleexternalprofile(profile,false) else if trace_format then - report_backends("handling internal profiles cf. '%s'",name) + report_backend("handling internal profiles cf. '%s'",name) end if internal then handleinternalprofile(profile,always or include) else - report_backends("no profile inclusion for '%s'",formatname) + report_backend("no profile inclusion for '%s'",formatname) end end how(profile,spec) elseif trace_format then - report_backends("unknown profile '%s'",name) + report_backend("unknown profile '%s'",name) end end end @@ -640,7 +640,7 @@ function codeinjections.setformat(s) if spec then formatspecification, formatname = spec, spec.format_name level = level and tonumber(level) - report_backends("setting format to '%s'",formatname) + report_backend("setting format to '%s'",formatname) local xmp_file = formatspecification.xmp_file or "" if xmp_file == "" then -- weird error @@ -655,13 +655,13 @@ function codeinjections.setformat(s) tex.pdfcompresslevel, tex.pdfobjcompresslevel = compresslevel, objectcompresslevel tex.pdfmajorversion, tex.pdfminorversion = majorversion, minorversion if objectcompression then - report_backends("forcing pdf version %s.%s, compression level %s, object compression level %s", + report_backend("forcing pdf version %s.%s, compression level %s, object compression level %s", majorversion,minorversion,compresslevel,objectcompresslevel) elseif compresslevel > 0 then - report_backends("forcing pdf version %s.%s, compression level %s, object compression disabled", + report_backend("forcing pdf version %s.%s, compression level %s, object compression disabled", majorversion,minorversion,compresslevel) else - report_backends("forcing pdf version %s.%s, compression disabled", + report_backend("forcing pdf version %s.%s, compression disabled", majorversion,minorversion) end -- @@ -700,15 +700,15 @@ function codeinjections.setformat(s) for k, v in table.sortedhash(formats.default) do local v = formatspecification[k] if type(v) ~= "function" then - report_backends("%s = %s",k,tostring(v or false)) + report_backend("%s = %s",k,tostring(v or false)) end end end function codeinjections.setformat(noname) - report_backends("error, format is already set to '%s', ignoring '%s'",formatname,noname.format) + report_backend("error, format is already set to '%s', ignoring '%s'",formatname,noname.format) end else - report_backends("error, format '%s' is not supported",format) + report_backend("error, format '%s' is not supported",format) end end end diff --git a/tex/context/base/lpdf-ini.lua b/tex/context/base/lpdf-ini.lua index 2defa3f2e..044ff5c68 100644 --- a/tex/context/base/lpdf-ini.lua +++ b/tex/context/base/lpdf-ini.lua @@ -26,7 +26,8 @@ local trace_resources = false trackers.register("backend.resources", function local trace_objects = false trackers.register("backend.objects", function(v) trace_objects = v end) local trace_detail = false trackers.register("backend.detail", function(v) trace_detail = v end) -local report_backends = logs.new("backends") +local report_objects = logs.new("backend","objects") +local report_finalizing = logs.new("backend","finalizing") local backends, context = backends, context @@ -360,10 +361,10 @@ function lpdf.reserveobject(name) if name then names[name] = r if trace_objects then - report_backends("reserving object number %s under name '%s'",r,name) + report_objects("reserving number %s under name '%s'",r,name) end elseif trace_objects then - report_backends("reserving object number %s",r) + report_objects("reserving number %s",r) end return r end @@ -392,25 +393,25 @@ function lpdf.flushobject(name,data) if name then if trace_objects then if trace_detail then - report_backends("flushing object data to reserved object with name '%s' -> %s",name,tostring(data)) + report_objects("flushing data to reserved object with name '%s' -> %s",name,tostring(data)) else - report_backends("flushing object data to reserved object with name '%s'",name) + report_objects("flushing data to reserved object with name '%s'",name) end end return pdfimmediateobject(name,tostring(data)) else if trace_objects then if trace_detail then - report_backends("flushing object data to reserved object with number %s -> %s",name,tostring(data)) + report_objects("flushing data to reserved object with number %s -> %s",name,tostring(data)) else - report_backends("flushing object data to reserved object with number %s",name) + report_objects("flushing data to reserved object with number %s",name) end end return pdfimmediateobject(tostring(data)) end else if trace_objects and trace_detail then - report_backends("flushing object data -> %s",tostring(name)) + report_objects("flushing data -> %s",tostring(name)) end return pdfimmediateobject(tostring(name)) end @@ -534,26 +535,26 @@ local function set(where,what,f,when,comment) local w = where[when] w[#w+1] = { f, comment } if trace_finalizers then - report_backends("%s set: [%s,%s]",what,when,#w) + report_finalizing("%s set: [%s,%s]",what,when,#w) end end local function run(where,what) if trace_finalizers then - report_backends("start backend: category=%s, n=%s",what,#where) + report_finalizing("start backend: category=%s, n=%s",what,#where) end for i=1,#where do local w = where[i] for j=1,#w do local wj = w[j] if trace_finalizers then - report_backends("%s finalizer: [%s,%s] %s",what,i,j,wj[2] or "") + report_finalizing("%s finalizer: [%s,%s] %s",what,i,j,wj[2] or "") end wj[1]() end end if trace_finalizers then - report_backends("stop finalizing") + report_finalizing("stop finalizing") end end @@ -581,7 +582,7 @@ function lpdf.finalizedocument() if not environment.initex then run(documentfinalizers,"document") function lpdf.finalizedocument() - report_backends("serious error: the document is finalized multiple times") + report_finalizing("serious error: the document is finalized multiple times") function lpdf.finalizedocument() end end end @@ -596,22 +597,24 @@ callbacks.register("finish_pdffile", lpdf.finalizedocument) local function trace_set(what,key) if trace_resources then - report_backends("setting key '%s' in '%s'",key,what) + report_finalizing("setting key '%s' in '%s'",key,what) end end local function trace_flush(what) if trace_resources then - report_backends("flushing '%s'",what) + report_finalizing("flushing '%s'",what) end end lpdf.protectresources = true -local catalog, info, names = pdfdictionary(), pdfdictionary(), pdfdictionary() +local catalog = pdfdictionary { Type = "Catalog" } -- nicer, but when we assign we nil the Type +local info = pdfdictionary { Type = "Info" } -- nicer, but when we assign we nil the Type +local names = pdfdictionary { Type = "Names" } -- nicer, but when we assign we nil the Type -local function flushcatalog() if not environment.initex then trace_flush("catalog") pdf.catalog = catalog() end end -local function flushinfo () if not environment.initex then trace_flush("info") pdf.info = info () end end -local function flushnames () if not environment.initex then trace_flush("names") pdf.names = names () end end +local function flushcatalog() if not environment.initex then trace_flush("catalog") catalog.Catalog = nil pdf.catalog = catalog() end end +local function flushinfo () if not environment.initex then trace_flush("info") info .Info = nil pdf.info = info () end end +local function flushnames () if not environment.initex then trace_flush("names") names .Names = nil pdf.names = names () end end function lpdf.addtocatalog(k,v) if not (lpdf.protectresources and catalog[k]) then trace_set("catalog",k) catalog[k] = v end end function lpdf.addtoinfo (k,v) if not (lpdf.protectresources and info [k]) then trace_set("info", k) info [k] = v end end @@ -657,7 +660,7 @@ registerdocumentfinalizer(flushshades,3,"shades") registerdocumentfinalizer(flushcatalog,3,"catalog") registerdocumentfinalizer(flushinfo,3,"info") -registerdocumentfinalizer(flushnames,3,"names") +registerdocumentfinalizer(flushnames,3,"names") -- before catalog registerpagefinalizer(checkextgstates,3,"extended graphic states") registerpagefinalizer(checkcolorspaces,3,"color spaces") @@ -756,7 +759,7 @@ if not pdfreferenceobject then n = n + 1 end if trace_objects then - report_backends("%s objects flushed",n) + report_objects("%s objects flushed",n) end delayed = { } end diff --git a/tex/context/base/lpdf-tag.lua b/tex/context/base/lpdf-tag.lua index 00ddef025..e2afddc51 100644 --- a/tex/context/base/lpdf-tag.lua +++ b/tex/context/base/lpdf-tag.lua @@ -12,7 +12,7 @@ local utfchar = utf.char local trace_tags = false trackers.register("structures.tags", function(v) trace_tags = v end) -local report_tags = logs.new("tags") +local report_tags = logs.new("backend","tags") local backends, lpdf, nodes = backends, lpdf, nodes diff --git a/tex/context/base/lpdf-wid.lua b/tex/context/base/lpdf-wid.lua index 1ca41ed7c..a9e9db2f0 100644 --- a/tex/context/base/lpdf-wid.lua +++ b/tex/context/base/lpdf-wid.lua @@ -11,7 +11,7 @@ local texbox, texcount = tex.box, tex.count local settings_to_array = utilities.parsers.settings_to_array local settings_to_hash = utilities.parsers.settings_to_hash -local report_media = logs.new("media") +local report_media = logs.new("backend","media") local backends, lpdf, nodes = backends, lpdf, nodes diff --git a/tex/context/base/lpdf-xmp.lua b/tex/context/base/lpdf-xmp.lua index 490eacbda..e216b5e01 100644 --- a/tex/context/base/lpdf-xmp.lua +++ b/tex/context/base/lpdf-xmp.lua @@ -12,7 +12,7 @@ local xmlfillin = xml.fillin local trace_xmp = false trackers.register("backend.xmp", function(v) trace_xmp = v end) -local report_xmp = logs.new("backends") +local report_xmp = logs.new("backend","xmp") local lpdf = lpdf @@ -83,7 +83,7 @@ function lpdf.setxmpfile(name) -- xmpfile = nil -- end if xmp then - report_xmp("discarding loaded xmp file '%s'",xmpfile) + report_xmp("discarding loaded file '%s'",xmpfile) xmp = nil end xmpfile = name ~= "" and name @@ -99,7 +99,7 @@ local function valid_xmp() xmpfile = resolvers.findfile(xmpname) or "" end if xmpfile ~= "" then - report_xmp("using xmp file '%s'",xmpfile) + report_xmp("using file '%s'",xmpfile) end local xmpdata = (xmpfile ~= "" and io.loaddata(xmpfile)) or "" xmp = xml.convert(xmpdata) @@ -143,22 +143,37 @@ local function flushxmpinfo() local t = { } for i=1,24 do t[i] = char(96 + random(26)) end local packetid = concat(t) - local time = lpdf.timestamp() - addxmpinfo("Producer",format("LuaTeX-%0.2f.%s",tex.luatexversion/100,tex.luatexrevision)) - addxmpinfo("DocumentID",format("uuid:%s",os.uuid())) - addxmpinfo("InstanceID",format("uuid:%s",os.uuid())) - addxmpinfo("CreatorTool","LuaTeX + ConTeXt MkIV") - addxmpinfo("CreateDate",time) - addxmpinfo("ModifyDate",time) - addxmpinfo("MetadataDate",time) - addxmpinfo("PTEX.Fullbanner", tex.pdftexbanner) + + local documentid = format("uuid:%s",os.uuid()) + local instanceid = format("uuid:%s",os.uuid()) + local producer = format("LuaTeX-%0.2f.%s",tex.luatexversion/100,tex.luatexrevision) + local creator = "LuaTeX + ConTeXt MkIV" + local time = lpdf.timestamp() + local fullbanner = tex.pdftexbanner + -- local fullbanner = gsub(tex.pdftexbanner,"kpse.*","") + + addxmpinfo("DocumentID", documentid) + addxmpinfo("InstanceID", instanceid) + addxmpinfo("Producer", producer) + addxmpinfo("CreatorTool", creator) + addxmpinfo("CreateDate", time) + addxmpinfo("ModifyDate", time) + addxmpinfo("MetadataDate", time) + addxmpinfo("PTEX.Fullbanner", fullbanner) + + addtoinfo("Producer", producer) + addtoinfo("Creator", creator) + addtoinfo("CreationDate", time) + addtoinfo("ModDate", time) +-- addtoinfo("PTEX.Fullbanner", fullbanner) -- no checking done on existence + local blob = xml.tostring(xml.first(xmp or valid_xmp(),"/x:xmpmeta")) local md = pdfdictionary { Subtype = pdfconstant("XML"), Type = pdfconstant("Metadata"), } if trace_xmp then - commands.writestatus("system","xmp data flushed (see log file)") + report_xmp("data flushed (see log file)") texio.write_nl("log","") texio.write("log","\n% ",(gsub(blob,"[\r\n]","\n%% ")),"\n") end diff --git a/tex/context/base/luat-cbk.lua b/tex/context/base/luat-cbk.lua index 93538c6bb..ef2a8502f 100644 --- a/tex/context/base/luat-cbk.lua +++ b/tex/context/base/luat-cbk.lua @@ -12,8 +12,8 @@ local round = math.round local trace_checking = false trackers.register("memory.checking", function(v) trace_checking = v end) -local report_callbacks = logs.new("callbacks") -local report_memory = logs.new("memory") +local report_callbacks = logs.new("system","callbacks") +local report_memory = logs.new("system","memory") --[[ldx-- <p>Callbacks are the real asset of <l n='luatex'/>. They permit you to hook diff --git a/tex/context/base/luat-env.lua b/tex/context/base/luat-env.lua index b8245afba..f5c8cf888 100644 --- a/tex/context/base/luat-env.lua +++ b/tex/context/base/luat-env.lua @@ -14,7 +14,7 @@ if not modules then modules = { } end modules ['luat-env'] = { local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end) -local report_resolvers = logs.new("resolvers") +local report_lua = logs.new("resolvers","lua") local allocate, mark = utilities.storage.allocate, utilities.storage.mark @@ -254,14 +254,14 @@ function environment.luafilechunk(filename,silent) -- used for loading lua bytec if fullname and fullname ~= "" then local data = environment.loadedluacode(fullname) if trace_locating then - report_resolvers("loading file %s%s", fullname, not data and " failed" or "") + report_lua("loading file %s%s", fullname, not data and " failed" or "") elseif not silent then texio.write("<",data and "+ " or "- ",fullname,">") end return data else if trace_locating then - report_resolvers("unknown file %s", filename) + report_lua("unknown file %s", filename) end return nil end @@ -281,7 +281,7 @@ function environment.loadluafile(filename, version) local fullname = (lucname and environment.luafile(lucname)) or "" if fullname ~= "" then if trace_locating then - report_resolvers("loading %s", fullname) + report_lua("loading %s", fullname) end chunk = loadfile(fullname) -- this way we don't need a file exists check end @@ -299,7 +299,7 @@ function environment.loadluafile(filename, version) return true else if trace_locating then - report_resolvers("version mismatch for %s: lua=%s, luc=%s", filename, v, version) + report_lua("version mismatch for %s: lua=%s, luc=%s", filename, v, version) end environment.loadluafile(filename) end @@ -310,12 +310,12 @@ function environment.loadluafile(filename, version) fullname = (luaname and environment.luafile(luaname)) or "" if fullname ~= "" then if trace_locating then - report_resolvers("loading %s", fullname) + report_lua("loading %s", fullname) end chunk = loadfile(fullname) -- this way we don't need a file exists check if not chunk then if trace_locating then - report_resolvers("unknown file %s", filename) + report_lua("unknown file %s", filename) end else assert(chunk)() diff --git a/tex/context/base/luat-exe.lua b/tex/context/base/luat-exe.lua index 76c5021b1..f0841f3d0 100644 --- a/tex/context/base/luat-exe.lua +++ b/tex/context/base/luat-exe.lua @@ -11,7 +11,7 @@ if not modules then modules = { } end modules ['luat-exe'] = { local match, find, gmatch = string.match, string.find, string.gmatch local concat = table.concat -local report_executers = logs.new("executers") +local report_executers = logs.new("system","executers") resolvers.executers = resolvers.executers or { } local executers = resolvers.executers diff --git a/tex/context/base/luat-fmt.lua b/tex/context/base/luat-fmt.lua index 04f3143dd..d6dd4efad 100644 --- a/tex/context/base/luat-fmt.lua +++ b/tex/context/base/luat-fmt.lua @@ -9,6 +9,8 @@ if not modules then modules = { } end modules ['luat-fmt'] = { local format = string.format +local report_format = logs.new("resolvers","formats") + -- helper for mtxrun local quoted = string.quoted @@ -33,7 +35,7 @@ function environment.make_format(name) if path ~= "" then lfs.chdir(path) end - logs.simple("format path: %s",lfs.currentdir()) + report_format("format path: %s",lfs.currentdir()) -- check source file local texsourcename = file.addsuffix(name,"mkiv") local fulltexsourcename = resolvers.findfile(texsourcename,"tex") or "" @@ -42,11 +44,11 @@ function environment.make_format(name) fulltexsourcename = resolvers.findfile(texsourcename,"tex") or "" end if fulltexsourcename == "" then - logs.simple("no tex source file with name: %s (mkiv or tex)",name) + report_format("no tex source file with name: %s (mkiv or tex)",name) lfs.chdir(olddir) return else - logs.simple("using tex source file: %s",fulltexsourcename) + report_format("using tex source file: %s",fulltexsourcename) end local texsourcepath = dir.expandname(file.dirname(fulltexsourcename)) -- really needed -- check specification @@ -57,7 +59,7 @@ function environment.make_format(name) fullspecificationname = resolvers.findfile(specificationname,"tex") or "" end if fullspecificationname == "" then - logs.simple("unknown stub specification: %s",specificationname) + report_format("unknown stub specification: %s",specificationname) lfs.chdir(olddir) return end @@ -68,39 +70,39 @@ function environment.make_format(name) if type(usedlualibs) == "string" then usedluastub = file.join(file.dirname(fullspecificationname),usedlualibs) elseif type(usedlualibs) == "table" then - logs.simple("using stub specification: %s",fullspecificationname) + report_format("using stub specification: %s",fullspecificationname) local texbasename = file.basename(name) local luastubname = file.addsuffix(texbasename,"lua") local lucstubname = file.addsuffix(texbasename,"luc") -- pack libraries in stub - logs.simple("creating initialization file: %s",luastubname) + report_format("creating initialization file: %s",luastubname) utilities.merger.selfcreate(usedlualibs,specificationpath,luastubname) -- compile stub file (does not save that much as we don't use this stub at startup any more) local strip = resolvers.booleanvariable("LUACSTRIP", true) if utilities.lua.compile(luastubname,lucstubname) and lfs.isfile(lucstubname) then - logs.simple("using compiled initialization file: %s",lucstubname) + report_format("using compiled initialization file: %s",lucstubname) usedluastub = lucstubname else - logs.simple("using uncompiled initialization file: %s",luastubname) + report_format("using uncompiled initialization file: %s",luastubname) usedluastub = luastubname end else - logs.simple("invalid stub specification: %s",fullspecificationname) + report_format("invalid stub specification: %s",fullspecificationname) lfs.chdir(olddir) return end -- generate format local command = format("luatex --ini %s --lua=%s %s %sdump",primaryflags(),quoted(usedluastub),quoted(fulltexsourcename),os.platform == "unix" and "\\\\" or "\\") - logs.simple("running command: %s\n",command) + report_format("running command: %s\n",command) os.spawn(command) -- remove related mem files local pattern = file.removesuffix(file.basename(usedluastub)).."-*.mem" - -- logs.simple("removing related mplib format with pattern '%s'", pattern) + -- report_format("removing related mplib format with pattern '%s'", pattern) local mp = dir.glob(pattern) if mp then for i=1,#mp do local name = mp[i] - logs.simple("removing related mplib format %s", file.basename(name)) + report_format("removing related mplib format %s", file.basename(name)) os.remove(name) end end @@ -117,7 +119,7 @@ function environment.run_format(name,data,more) end fmtname = resolvers.cleanpath(fmtname) if fmtname == "" then - logs.simple("no format with name: %s",name) + report_format("no format with name: %s",name) else local barename = file.removesuffix(name) -- expanded name local luaname = file.addsuffix(barename,"luc") @@ -125,11 +127,11 @@ function environment.run_format(name,data,more) luaname = file.addsuffix(barename,"lua") end if not lfs.isfile(luaname) then - logs.simple("using format name: %s",fmtname) - logs.simple("no luc/lua with name: %s",barename) + report_format("using format name: %s",fmtname) + report_format("no luc/lua with name: %s",barename) else local command = format("luatex %s --fmt=%s --lua=%s %s %s",primaryflags(),quoted(barename),quoted(luaname),quoted(data),more ~= "" and quoted(more) or "") - logs.simple("running command: %s",command) + report_format("running command: %s",command) os.spawn(command) end end diff --git a/tex/context/base/luat-mac.lua b/tex/context/base/luat-mac.lua index 8010f34a5..ef34afc89 100644 --- a/tex/context/base/luat-mac.lua +++ b/tex/context/base/luat-mac.lua @@ -13,7 +13,7 @@ local insert, remove = table.insert, table.remove local rep, sub = string.rep, string.sub local setmetatable = setmetatable -local report_macros = logs.new("macros") +local report_macros = logs.new("interface","macros") local stack, top, n, hashes = { }, nil, 0, { } diff --git a/tex/context/base/luat-run.lua b/tex/context/base/luat-run.lua index 5bccfee7e..172357798 100644 --- a/tex/context/base/luat-run.lua +++ b/tex/context/base/luat-run.lua @@ -12,8 +12,8 @@ local insert = table.insert local trace_lua_dump = false trackers.register("system.dump", function(v) trace_lua_dump = v end) local trace_temp_files = false trackers.register("system.tempfiles", function(v) trace_temp_files = v end) -local report_lua_dump = logs.new("lua dump actions") -local report_temp_files = logs.new("temporary files") +local report_lua = logs.new("system","lua") +local report_tempfiles = logs.new("resolvers","tempfiles") luatex = luatex or { } local luatex = luatex @@ -68,7 +68,7 @@ local function report_output_log() end local function pre_dump_actions() - lua.finalize(trace_lua_dump and report_lua_dump or nil) + lua.finalize(trace_lua_dump and report_lua or nil) statistics.reportstorage("log") -- statistics.savefmtstatus("\jobname","\contextversion","context.tex") end @@ -96,7 +96,7 @@ local tempfiles = { } function luatex.registertempfile(name) name = name .. ".mkiv-tmp" -- maybe just .tmp if trace_temp_files and not tempfiles[name] then - report_temp_files("registering: %s",name) + report_tempfiles("registering temporary file: %s",name) end tempfiles[name] = true return name @@ -105,7 +105,7 @@ end function luatex.cleanuptempfiles() for name, _ in next, tempfiles do if trace_temp_files then - report_temp_files("removing: %s",name) + report_tempfiles("removing temporary file: %s",name) end os.remove(name) end @@ -139,6 +139,6 @@ end) statistics.register("synctex tracing",function() if synctex or tex.synctex > 0 then - return "syntex has been enabled (extra log file generated)" + return "synctex has been enabled (extra log file generated)" end end) diff --git a/tex/context/base/luat-sto.lua b/tex/context/base/luat-sto.lua index 2ead0253d..de08af8ce 100644 --- a/tex/context/base/luat-sto.lua +++ b/tex/context/base/luat-sto.lua @@ -8,8 +8,10 @@ if not modules then modules = { } end modules ['luat-sto'] = { local type, next, setmetatable, getmetatable = type, next, setmetatable, getmetatable local gmatch, format, write_nl = string.gmatch, string.format, texio.write_nl +local serialize, concat = table.serialize, table.concat +local bytecode = lua.bytecode -local report_storage = logs.new("storage") +local report_storage = logs.new("system","storage") storage = storage or { } local storage = storage @@ -42,64 +44,30 @@ function storage.register(...) return t end --- evaluators .. messy .. to be redone - -function storage.evaluate(name) - evaluators[#evaluators+1] = name -end - -local function finalize() -- we can prepend the string with "evaluate:" - for i=1,#evaluators do - local t = evaluators[i] - for i, v in next, t do - local tv = type(v) - if tv == "string" then - t[i] = loadstring(v)() - elseif tv == "table" then - for _, vv in next, v do - if type(vv) == "string" then - t[i] = loadstring(vv)() - end - end - elseif tv == "function" then - t[i] = v() - end - end - end -end - -lua.registerfinalizer(finalize,"evaluate storage") - local function dump() + local max = storage.max for i=1,#data do local d = data[i] - local message, original, target, evaluate = d[1], d[2] ,d[3] ,d[4] - local name, initialize, finalize, code = nil, "", "", "" + local message, original, target = d[1], d[2] ,d[3] + local c, code, name = 0, { }, nil for str in gmatch(target,"([^%.]+)") do if name then name = name .. "." .. str else name = str end - initialize = format("%s %s = %s or {} ", initialize, name, name) - end - if evaluate then - finalize = "storage.evaluate(" .. name .. ")" + c = c + 1 ; code[c] = format("%s = %s or { }",name,name) end - storage.max = storage.max + 1 + max = max + 1 if trace_storage then - report_storage('saving %s in slot %s',message,storage.max) - code = - initialize .. - format("report_storage('restoring %s from slot %s') ",message,storage.max) .. - table.serialize(original,name) .. - finalize - else - code = initialize .. table.serialize(original,name) .. finalize + report_storage('saving %s in slot %s',message,max) + c = c + 1 ; code[c] = format("report_storage('restoring %s from slot %s')",message,max) end - lua.bytecode[storage.max] = loadstring(code) + c = c + 1 ; code[c] = serialize(original,name) + bytecode[max] = loadstring(concat(code,"\n")) collectgarbage("step") end + storage.max = max end lua.registerfinalizer(dump,"dump storage") diff --git a/tex/context/base/lxml-dir.lua b/tex/context/base/lxml-dir.lua index ecf7e3eb7..80e9577b9 100644 --- a/tex/context/base/lxml-dir.lua +++ b/tex/context/base/lxml-dir.lua @@ -30,6 +30,8 @@ local lxml = lxml lxml.directives = lxml.directives or { } local directives = lxml.directives +local report_lxml = logs.new("xml","tex") + local data = { setup = { }, before = { }, @@ -58,9 +60,9 @@ local function load_setup(filename) valid = valid + 1 end end - commands.writestatus("lxml","%s directives found in '%s', %s valid",#collection,filename,valid) + report_lxml("%s directives found in '%s', %s valid",#collection,filename,valid) else - commands.writestatus("lxml","no directives found in '%s'",filename) + report_lxml("no directives found in '%s'",filename) end end diff --git a/tex/context/base/lxml-lpt.lua b/tex/context/base/lxml-lpt.lua index 357535d41..91f97b4a2 100644 --- a/tex/context/base/lxml-lpt.lua +++ b/tex/context/base/lxml-lpt.lua @@ -43,7 +43,7 @@ local trace_lpath = false if trackers then trackers.register("xml.path", local trace_lparse = false if trackers then trackers.register("xml.parse", function(v) trace_lparse = v end) end local trace_lprofile = false if trackers then trackers.register("xml.profile", function(v) trace_lpath = v trace_lparse = v trace_lprofile = v end) end -local report_lpath = logs.new("lpath") +local report_lpath = logs.new("xml","lpath") --[[ldx-- <p>We've now arrived at an interesting part: accessing the tree using a subset @@ -962,9 +962,9 @@ local function traced_apply(list,parsed,nofparsed,order) if trace_lparse then lshow(parsed) end - report_lpath("collecting : %s",parsed.pattern) - report_lpath(" root tags : %s",tagstostring(list)) - report_lpath(" order : %s",order or "unset") + report_lpath("collecting: %s",parsed.pattern) + report_lpath("root tags : %s",tagstostring(list)) + report_lpath("order : %s",order or "unset") local collected = list for i=1,nofparsed do local pi = parsed[i] diff --git a/tex/context/base/lxml-tab.lua b/tex/context/base/lxml-tab.lua index 19bc14464..422fb14bf 100644 --- a/tex/context/base/lxml-tab.lua +++ b/tex/context/base/lxml-tab.lua @@ -12,7 +12,7 @@ if not modules then modules = { } end modules ['lxml-tab'] = { local trace_entities = false trackers.register("xml.entities", function(v) trace_entities = v end) -local report_xml = logs.new("xml") +local report_xml = logs and logs.new("xml","core") or function(...) print(format(...)) end --[[ldx-- <p>The parser used here is inspired by the variant discussed in the lua book, but @@ -687,7 +687,7 @@ function xml.is_valid(root) return root and not root.error end -xml.errorhandler = (logs and logs.report) or (input and logs.report) or print +xml.errorhandler = report --[[ldx-- <p>We cannot load an <l n='lpeg'/> from a filehandle so we need to load diff --git a/tex/context/base/lxml-tex.lua b/tex/context/base/lxml-tex.lua index 213ed8a92..a3adaf20a 100644 --- a/tex/context/base/lxml-tex.lua +++ b/tex/context/base/lxml-tex.lua @@ -40,7 +40,7 @@ local trace_loading = false trackers.register("lxml.loading", function(v) tra local trace_access = false trackers.register("lxml.access", function(v) trace_access = v end) local trace_comments = false trackers.register("lxml.comments", function(v) trace_comments = v end) -local report_lxml = logs.new("lxml") +local report_lxml = logs.new("xml","tex") lxml.loaded = lxml.loaded or { } local loaded = lxml.loaded @@ -356,7 +356,7 @@ end function lxml.load(id,filename,compress,entities) filename = commands.preparedfile(filename) if trace_loading then - commands.writestatus("lxml","loading file '%s' as '%s'",filename,id) + report_lxml("loading file '%s' as '%s'",filename,id) end noffiles, nofconverted = noffiles + 1, nofconverted + 1 -- local xmltable = xml.load(filename) @@ -386,7 +386,7 @@ function lxml.include(id,pattern,attribute,recurse) end end if trace_loading then - commands.writestatus("lxml","including file: %s",filename) + report_lxml("including file: %s",filename) end noffiles, nofconverted = noffiles + 1, nofconverted + 1 return resolvers.loadtexfile(filename) or "" @@ -688,22 +688,22 @@ function lxml.installsetup(what,document,setup,where) end if what == 1 then if trace_loading then - commands.writestatus("lxml","prepending setup %s for %s",setup,document) + report_lxml("prepending setup %s for %s",setup,document) end insert(sd,1,setup) elseif what == 2 then if trace_loading then - commands.writestatus("lxml","appending setup %s for %s",setup,document) + report_lxml("appending setup %s for %s",setup,document) end insert(sd,setup) elseif what == 3 then if trace_loading then - commands.writestatus("lxml","inserting setup %s for %s before %s",setup,document,where) + report_lxml("inserting setup %s for %s before %s",setup,document,where) end insertbeforevalue(sd,setup,where) elseif what == 4 then if trace_loading then - commands.writestatus("lxml","inserting setup %s for %s after %s",setup,document,where) + report_lxml("inserting setup %s for %s after %s",setup,document,where) end insertaftervalue(sd,setup,where) end @@ -719,21 +719,21 @@ function lxml.flushsetups(id,...) local v= sd[k] if not done[v] then if trace_loading then - commands.writestatus("lxml","applying setup %02i = %s to %s",k,v,document) + report_lxml("applying setup %02i = %s to %s",k,v,document) end texsprint(ctxcatcodes,"\\xmlsetup{",id,"}{",v,"}") done[v] = true end end elseif trace_loading then - commands.writestatus("lxml","no setups for %s",document) + report_lxml("no setups for %s",document) end end end function lxml.resetsetups(document) if trace_loading then - commands.writestatus("lxml","resetting all setups for %s",document) + report_lxml("resetting all setups for %s",document) end setups[document] = { } end @@ -744,7 +744,7 @@ function lxml.removesetup(document,setup) for i=1,#s do if s[i] == setup then if trace_loading then - commands.writestatus("lxml","removing setup %s for %s",setup,document) + report_lxml("removing setup %s for %s",setup,document) end remove(t,i) break diff --git a/tex/context/base/m-chart.mkiv b/tex/context/base/m-chart.mkiv index e55b8aae7..6b947b23f 100644 --- a/tex/context/base/m-chart.mkiv +++ b/tex/context/base/m-chart.mkiv @@ -2552,6 +2552,6 @@ % \def\processFLOWbuffer#1{\getvalue{\FLOWbufferprefix#1}} % \def\typeFLOWbuffer #1{[Sorry, no verbatim chart #1 available.]} -\writestatus\m!systems{The chart mkiv xml interface is not yet defined!} +\writestatus\m!system{The chart mkiv xml interface is not yet defined!} \protect \endinput diff --git a/tex/context/base/m-logcategories.mkiv b/tex/context/base/m-logcategories.mkiv new file mode 100644 index 000000000..954cd58c4 --- /dev/null +++ b/tex/context/base/m-logcategories.mkiv @@ -0,0 +1,3 @@ +\starttext + \showlogcategories +\stoptext diff --git a/tex/context/base/m-mkii.mkiv b/tex/context/base/m-mkii.mkiv index cb0da6fcb..dcfd29d20 100644 --- a/tex/context/base/m-mkii.mkiv +++ b/tex/context/base/m-mkii.mkiv @@ -2,7 +2,7 @@ \unprotect -\writestatus\m!systems{loading some mkii compatibility hacks} +\writestatus\m!system{loading some mkii compatibility hacks} % Compatibility for font-ini diff --git a/tex/context/base/math-ini.lua b/tex/context/base/math-ini.lua index acaf03b5f..693709c63 100644 --- a/tex/context/base/math-ini.lua +++ b/tex/context/base/math-ini.lua @@ -18,7 +18,7 @@ local allocate = utilities.storage.allocate local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end) -local report_math = logs.new("mathematics") +local report_math = logs.new("mathematics","initializing") mathematics = mathematics or { } local mathematics = mathematics diff --git a/tex/context/base/math-map.lua b/tex/context/base/math-map.lua index 47c6c88e2..2b3a5e478 100644 --- a/tex/context/base/math-map.lua +++ b/tex/context/base/math-map.lua @@ -28,7 +28,7 @@ local texattribute = tex.attribute local trace_greek = false trackers.register("math.greek", function(v) trace_greek = v end) -local report_math = logs.new("mathematics") +local report_remapping = logs.new("mathematics","remapping") mathematics = mathematics or { } local mathematics = mathematics @@ -406,7 +406,7 @@ function mathematics.remapalphabets(char,mathalphabet,mathgreek) local alphabet = r and r.alphabet or "regular" local style = r and r.style or "tf" if trace_greek then - report_math("before: char: %05X, alphabet: %s %s, lcgreek: %s, ucgreek: %s",char,alphabet,style,remapping[lc].what,remapping[uc].what) + report_remapping("before: char: %05X, alphabet: %s %s, lcgreek: %s, ucgreek: %s",char,alphabet,style,remapping[lc].what,remapping[uc].what) end local s = remapping[islc or isuc][style] if s then @@ -414,7 +414,7 @@ function mathematics.remapalphabets(char,mathalphabet,mathgreek) mathalphabet, style = data and data.attribute or mathalphabet, s end if trace_greek then - report_math("after : char: %05X, alphabet: %s %s, lcgreek: %s, ucgreek: %s",char,alphabet,style,remapping[lc].what,remapping[uc].what) + report_remapping("after : char: %05X, alphabet: %s %s, lcgreek: %s, ucgreek: %s",char,alphabet,style,remapping[lc].what,remapping[uc].what) end end end diff --git a/tex/context/base/math-noa.lua b/tex/context/base/math-noa.lua index d8b45bb88..1a337c8c9 100644 --- a/tex/context/base/math-noa.lua +++ b/tex/context/base/math-noa.lua @@ -43,7 +43,8 @@ local trace_remapping = false trackers.register("math.remapping", function(v) local trace_processing = false trackers.register("math.processing", function(v) trace_processing = v end) local trace_analyzing = false trackers.register("math.analyzing", function(v) trace_analyzing = v end) -local report_noads = logs.new("mathematics") +local report_processing = logs.new("mathematics","processing") +local report_remapping = logs.new("mathematics","remapping") local nodecodes = nodes.nodecodes local noadcodes = nodes.noadcodes @@ -75,14 +76,14 @@ local function process(start,what,n,parent) local margin = rep(" ",n or 0) local detail = tostring(start) if id == math_noad then - report_noads("%s%s (class: %s)",margin,detail,noadcodes[start.subtype] or "?") + report_processing("%s%s (class: %s)",margin,detail,noadcodes[start.subtype] or "?") elseif id == math_char then local char = start.char local fam = start.fam local font = font_of_family(fam) - report_noads("%s%s (family: %s, font: %s, char: %s, shape: %s)",margin,detail,fam,font,char,utfchar(char)) + report_processing("%s%s (family: %s, font: %s, char: %s, shape: %s)",margin,detail,fam,font,char,utfchar(char)) else - report_noads("%s%s",margin,detail) + report_processing("%s%s",margin,detail) end end local proc = what[id] @@ -142,7 +143,7 @@ local mathgreek = attributes.private("mathgreek") processors.relocate = { } local function report_remap(tag,id,old,new,extra) - report_noads("remapping %s in font %s from U+%04X (%s) to U+%04X (%s)%s",tag,id,old,utfchar(old),new,utfchar(new),extra or "") + report_remapping("remapping %s in font %s from U+%04X (%s) to U+%04X (%s)%s",tag,id,old,utfchar(old),new,utfchar(new),extra or "") end local remapalphabets = mathematics.remapalphabets diff --git a/tex/context/base/math-vfu.lua b/tex/context/base/math-vfu.lua index d90044687..6a4e50898 100644 --- a/tex/context/base/math-vfu.lua +++ b/tex/context/base/math-vfu.lua @@ -16,7 +16,7 @@ local max = math.max local trace_virtual = false trackers.register("math.virtual", function(v) trace_virtual = v end) local trace_timings = false trackers.register("math.timings", function(v) trace_timings = v end) -local report_virtual = logs.new("virtual math") +local report_virtual = logs.new("fonts","virtual math") local fonts, nodes, mathematics = fonts, nodes, mathematics diff --git a/tex/context/base/meta-pdf.lua b/tex/context/base/meta-pdf.lua index 929c2047e..47a398e2c 100644 --- a/tex/context/base/meta-pdf.lua +++ b/tex/context/base/meta-pdf.lua @@ -14,7 +14,7 @@ local concat, format, gsub, find, byte, gmatch, match = table.concat, string.for local lpegmatch = lpeg.match local round = math.round -local report_mptopdf = logs.new("mptopdf") +local report_mptopdf = logs.new("graphics","mptopdf") local mplib, metapost, lpdf, context = mplib, metapost, lpdf, context @@ -544,7 +544,7 @@ function mptopdf.convertmpstopdf(name) resetall() statistics.stoptiming(mptopdf) else - commands.writestatus("mptopdf","file '%s' not found",name) + report_mptopdf("file '%s' not found",name) end end diff --git a/tex/context/base/mlib-ctx.lua b/tex/context/base/mlib-ctx.lua index 5a557c046..3baf29c2d 100644 --- a/tex/context/base/mlib-ctx.lua +++ b/tex/context/base/mlib-ctx.lua @@ -11,7 +11,7 @@ if not modules then modules = { } end modules ['mlib-ctx'] = { local format, concat = string.format, table.concat local sprint = tex.sprint -local report_mplib = logs.new("mplib") +local report_metapost = logs.new("metapost") local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming @@ -35,7 +35,7 @@ function metapost.getclippath(instance,mpsformat,data,initializations,preamble) local result = mpx:execute(format("%s;beginfig(1);%s;%s;endfig;",preamble or "",initializations or "",data)) stoptiming(metapost.exectime) if result.status > 0 then - report_mplib("%s: %s", result.status, result.error or result.term or result.log) + report_metapost("%s: %s", result.status, result.error or result.term or result.log) result = nil else result = metapost.filterclippath(result) diff --git a/tex/context/base/mlib-pdf.lua b/tex/context/base/mlib-pdf.lua index 80ab9b1d0..403dbf0bd 100644 --- a/tex/context/base/mlib-pdf.lua +++ b/tex/context/base/mlib-pdf.lua @@ -11,7 +11,7 @@ local abs, sqrt, round = math.abs, math.sqrt, math.round local allocate = utilities.storage.allocate -local report_mplib = logs.new("mplib") +local report_metapost = logs.new("metapost") local mplib, context = mplib, context @@ -76,7 +76,7 @@ function metapost.flushliteral(d) -- \def\MPLIBtoPDF#1{\ctxlua{metapost.flush_li literal.data = savedliterals[d] write_node(literal) else - report_mplib("problem flushing literal %s",d) + report_metapost("problem flushing literal %s",d) end end diff --git a/tex/context/base/mlib-pps.lua b/tex/context/base/mlib-pps.lua index 396853d3e..f5f5b3472 100644 --- a/tex/context/base/mlib-pps.lua +++ b/tex/context/base/mlib-pps.lua @@ -25,7 +25,7 @@ local context = context local trace_textexts = false trackers.register("metapost.textexts", function(v) trace_textexts = v end) -local report_mplib = logs.new("mplib") +local report_metapost = logs.new("metapost") local colors = attributes.colors @@ -125,11 +125,11 @@ function specials.register(str) -- only colors if cc then cc[n] = data else - report_mplib("problematic special: %s (no colordata class %s)", str or "?",class) + report_metapost("problematic special: %s (no colordata class %s)", str or "?",class) end else -- there is some bug to be solved, so we issue a message - report_mplib("problematic special: %s", str or "?") + report_metapost("problematic special: %s", str or "?") end end --~ if match(str,"^%%%%MetaPostOption: multipass") then @@ -393,7 +393,7 @@ local function freeboxes() -- todo: mp direct list ipv box -- texbox[scratchbox] = tn -- texbox[scratchbox] = nil -- this frees too if trace_textexts then - report_mplib("freeing textext %s",n) + report_metapost("freeing textext %s",n) end end end @@ -413,7 +413,7 @@ end function metapost.gettext(box,slot) texbox[box] = copy_list(textexts[slot]) if trace_textexts then - report_mplib("putting textext %s in box %s",slot,box) + report_metapost("putting textext %s in box %s",slot,box) end -- textexts[slot] = nil -- no, pictures can be placed several times end @@ -423,7 +423,7 @@ function specials.tf(specification,object) if n and str then n = tonumber(n) if trace_textexts then - report_mplib("setting textext %s (first pass)",n) + report_metapost("setting textext %s (first pass)",n) end context.MPLIBsettext(n,str) metapost.multipass = true @@ -449,7 +449,7 @@ function specials.ts(specification,object,result,flusher) if n and str then n = tonumber(n) if trace_textexts then - report_mplib("processing textext %s (second pass)",n) + report_metapost("processing textext %s (second pass)",n) end local op = object.path local first, second, fourth = op[1], op[2], op[4] @@ -647,7 +647,7 @@ end local texmess = (dquote/ditto + (1 - etex))^0 local function ignore(s) - report_mplib("ignoring verbatim tex: %s",s) + report_metapost("ignoring verbatim tex: %s",s) return "" end @@ -688,7 +688,7 @@ function metapost.texttextsdata() if box then local wd, ht, dp = box.width/factor, box.height/factor, box.depth/factor if trace_textexts then - report_mplib("passed textext data %s: (%0.4f,%0.4f,%0.4f)",n,wd,ht,dp) + report_metapost("passed textext data %s: (%0.4f,%0.4f,%0.4f)",n,wd,ht,dp) end nt = nt + 1 t[nt] = format(text_data_template,n,wd,n,ht,n,dp) diff --git a/tex/context/base/mlib-run.lua b/tex/context/base/mlib-run.lua index 3d87c817e..361298ed5 100644 --- a/tex/context/base/mlib-run.lua +++ b/tex/context/base/mlib-run.lua @@ -31,7 +31,7 @@ nears zero.</p> local trace_graphics = false trackers.register("metapost.graphics", function(v) trace_graphics = v end) -local report_mplib = logs.new("mplib") +local report_metapost = logs.new("metapost") local texerrormessage = logs.texerrormessage @@ -88,20 +88,20 @@ metapost.finder = finder function metapost.reporterror(result) if not result then - report_mplib("mp error: no result object returned") + report_metapost("error: no result object returned") elseif result.status > 0 then local t, e, l = result.term, result.error, result.log if t and t ~= "" then - (metapost.texerrors and texerrormessage or report_mplib)("mp terminal: %s",t) + (metapost.texerrors and texerrormessage or report_metapost)("terminal: %s",t) end if e then - (metapost.texerrors and texerrormessage or report_mplib)("mp error: %s",(e=="" and "?") or e) + (metapost.texerrors and texerrormessage or report_metapost)("error: %s",(e=="" and "?") or e) end if not t and not e and l then metapost.lastlog = metapost.lastlog .. "\n" .. l - report_mplib("mp log: %s",l) + report_metapost("log: %s",l) else - report_mplib("mp error: unknown, no error, terminal or log messages") + report_metapost("error: unknown, no error, terminal or log messages") end else return false @@ -174,7 +174,7 @@ if mplibone then mpsformat = file.addsuffix(mpsformat, "mem") local mpsformatfullname = caches.getfirstreadablefile(mpsformat,"formats") or "" if mpsformatfullname ~= "" then - commands.writestatus("mplib","loading '%s' from '%s'", mpsinput, mpsformatfullname) + report_metapost("loading '%s' from '%s'", mpsinput, mpsformatfullname) local mpx, result = metapost.load(mpsformatfullname) if mpx then local result = mpx:execute("show mp_parent_version ;") @@ -184,24 +184,24 @@ if mplibone then local version = match(result.log,">> *(.-)[\n\r]") or "unknown" version = gsub(version,"[\'\"]","") if version ~= mpsversion then - commands.writestatus("mplib","version mismatch: %s <> %s", version or "unknown", mpsversion) + report_metapost("version mismatch: %s <> %s", version or "unknown", mpsversion) else return mpx end end else - commands.writestatus("mplib","error in loading '%s' from '%s'", mpsinput, mpsformatfullname) + report_metapost("error in loading '%s' from '%s'", mpsinput, mpsformatfullname) metapost.reporterror(result) end end local mpsformatfullname = caches.setfirstwritablefile(mpsformat,"formats") - commands.writestatus("mplib","making '%s' into '%s'", mpsinput, mpsformatfullname) + report_metapost("making '%s' into '%s'", mpsinput, mpsformatfullname) metapost.make(mpsinput,mpsformatfullname,mpsversion) -- somehow return ... fails here if lfs.isfile(mpsformatfullname) then - commands.writestatus("mplib","loading '%s' from '%s'", mpsinput, mpsformatfullname) + report_metapost("loading '%s' from '%s'", mpsinput, mpsformatfullname) return metapost.load(mpsformatfullname) else - commands.writestatus("mplib","problems with '%s' from '%s'", mpsinput, mpsformatfullname) + report_metapost("problems with '%s' from '%s'", mpsinput, mpsformatfullname) end end @@ -233,12 +233,12 @@ else function metapost.checkformat(mpsinput) local mpsversion = environment.version or "unset version" local mpsinput = file.addsuffix(mpsinput or "metafun", "mp") - commands.writestatus("mplib","loading '%s' (experimental metapost version two)",mpsinput) + report_metapost("loading '%s' (experimental metapost version two)",mpsinput) local mpx, result = metapost.load(mpsinput) if mpx then return mpx else - commands.writestatus("mplib","error in loading '%s'",mpsinput) + report_metapost("error in loading '%s'",mpsinput) metapost.reporterror(result) end end @@ -259,7 +259,7 @@ function metapost.format(instance,name) name = name or instance local mpx = mpxformats[instance] if not mpx then - commands.writestatus("mplib","initializing instance '%s' using format '%s'",instance,name) + report_metapost("initializing instance '%s' using format '%s'",instance,name) mpx = metapost.checkformat(name) mpxformats[instance] = mpx end @@ -325,7 +325,7 @@ function metapost.process(mpx, data, trialrun, flusher, multipass, isextrapass, local str = (result.term ~= "" and result.term) or "no terminal output" if not string.is_empty(str) then metapost.lastlog = metapost.lastlog .. "\n" .. str - report_mplib("mp log: %s",str) + report_metapost("log: %s",str) end end if result.fig then @@ -333,7 +333,7 @@ function metapost.process(mpx, data, trialrun, flusher, multipass, isextrapass, end end else - report_mplib("mp error: invalid graphic component %s",i) + report_metapost("error: invalid graphic component %s",i) end end else @@ -351,13 +351,13 @@ function metapost.process(mpx, data, trialrun, flusher, multipass, isextrapass, end -- todo: error message if not result then - report_mplib("mp error: no result object returned") + report_metapost("error: no result object returned") elseif result.status > 0 then - report_mplib("mp error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error")) + report_metapost("error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error")) else if metapost.showlog then metapost.lastlog = metapost.lastlog .. "\n" .. result.term - report_mplib("mp info: %s",result.term or "no-term") + report_metapost("info: %s",result.term or "no-term") end if result.fig then converted = metapost.convert(result, trialrun, flusher, multipass, askedfig) @@ -375,7 +375,7 @@ function metapost.process(mpx, data, trialrun, flusher, multipass, isextrapass, end function metapost.convert() - report_mplib('mp warning: no converter set') + report_metapost('warning: no converter set') end -- handy @@ -387,29 +387,29 @@ function metapost.directrun(formatname,filename,outputformat,astable,mpdata) outputformat = "mps" end if not data then - logs.simple("unknown file '%s'",filename or "?") + report_metapost("unknown file '%s'",filename or "?") else local mpx = metapost.checkformat(formatname) if not mpx then - logs.simple("unknown format '%s'",formatname or "?") + report_metapost("unknown format '%s'",formatname or "?") else - logs.simple("processing '%s'",(mpdata and (filename or "data")) or fullname) + report_metapost("processing '%s'",(mpdata and (filename or "data")) or fullname) local result = mpx:execute(data) if not result then - logs.simple("error: no result object returned") + report_metapost("error: no result object returned") elseif result.status > 0 then - logs.simple("error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error")) + report_metapost("error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error")) else if metapost.showlog then metapost.lastlog = metapost.lastlog .. "\n" .. result.term - logs.simple("info: %s",result.term or "no-term") + report_metapost("info: %s",result.term or "no-term") end local figures = result.fig if figures then local sorted = table.sortedkeys(figures) if astable then local result = { } - logs.simple("storing %s figures in table",#sorted) + report_metapost("storing %s figures in table",#sorted) for k=1,#sorted do local v = sorted[k] if outputformat == "mps" then @@ -430,7 +430,7 @@ function metapost.directrun(formatname,filename,outputformat,astable,mpdata) output = figures[v]:svg() -- (3) for prologues end local outname = format("%s-%s.%s",basename,v,outputformat) - logs.simple("saving %s bytes in '%s'",#output,outname) + report_metapost("saving %s bytes in '%s'",#output,outname) io.savedata(outname,output) end return #sorted diff --git a/tex/context/base/mult-aux.lua b/tex/context/base/mult-aux.lua index 349250071..4130aa12c 100644 --- a/tex/context/base/mult-aux.lua +++ b/tex/context/base/mult-aux.lua @@ -14,7 +14,7 @@ local variables = interfaces.variables local trace_namespaces = false trackers.register("interfaces.namespaces", function(v) trace_namespaces = v end) -local report_namespaces = logs.new("namespaces") +local report_namespaces = logs.new("interface","namespaces") local v_yes, v_list = variables.yes, variables.list diff --git a/tex/context/base/mult-chk.lua b/tex/context/base/mult-chk.lua index 2d20aa16b..9344a7b8a 100644 --- a/tex/context/base/mult-chk.lua +++ b/tex/context/base/mult-chk.lua @@ -14,6 +14,8 @@ local make_settings_to_hash_pattern, settings_to_set = utilities.parsers.make_se local allocate = utilities.storage.allocate +local report_interface = logs.new("interface","checking") + interfaces = interfaces or { } interfaces.syntax = allocate { @@ -21,7 +23,7 @@ interfaces.syntax = allocate { } function interfaces.invalidkey(kind,key) - commands.writestatus("syntax","invalid key '%s' for '%s' in line %s",key,kind,tex.inputlineno) + report_interface("invalid key '%s' for '%s' in line %s",key,kind,tex.inputlineno) end function interfaces.setvalidkeys(kind,list) diff --git a/tex/context/base/mult-ini.lua b/tex/context/base/mult-ini.lua index 14eeeb4c6..e1c8610a3 100644 --- a/tex/context/base/mult-ini.lua +++ b/tex/context/base/mult-ini.lua @@ -12,7 +12,7 @@ local serialize = table.serialize local texsprint = tex.sprint -local report_interfaces = logs.new("interfaces") +local report_interface = logs.new("interface","initialization") interfaces = interfaces or { } interfaces.messages = interfaces.messages or { } @@ -20,7 +20,7 @@ interfaces.constants = interfaces.constants or { } interfaces.variables = interfaces.variables or { } interfaces.elements = interfaces.elements or { } -storage.register("interfaces/messages", interfaces.messages, "interfaces.messages" ) +storage.register("interfaces/messages", interfaces.messages, "interfaces.messages") storage.register("interfaces/constants", interfaces.constants, "interfaces.constants") storage.register("interfaces/variables", interfaces.variables, "interfaces.variables") storage.register("interfaces/elements", interfaces.elements, "interfaces.elements") @@ -38,9 +38,9 @@ local currentresponse = storage.shared.currentresponse local complete = { } interfaces.complete = complete setmetatable(complete, { __index = function(t,k) - report_interfaces("loading interface definitions from 'mult-def.lua'") + report_interface("loading interface definitions from 'mult-def.lua'") complete = dofile(resolvers.findfile("mult-def.lua")) - report_interfaces("loading interface messages from 'mult-mes.lua'") + report_interface("loading interface messages from 'mult-mes.lua'") complete.messages = dofile(resolvers.findfile("mult-mes.lua")) interfaces.complete = complete return complete[k] @@ -50,6 +50,7 @@ local messages = interfaces.messages local constants = interfaces.constants local variables = interfaces.variables local elements = interfaces.elements +local reporters = { } -- just an optimization local valueiskey = { __index = function(t,k) t[k] = k return k end } @@ -57,8 +58,19 @@ setmetatable(variables,valueiskey) setmetatable(constants,valueiskey) setmetatable(elements, valueiskey) +setmetatable(messages, { __index = function(t,k) local v = { } ; t[k] = v ; return v end }) +setmetatable(reporters, { __index = function(t,k) local v = logs.new(k) ; t[k] = v ; return v end }) + +for category, m in next, messages do + -- We pre-create reporters for already defined messages + -- because otherwise listing is incomplete and we want + -- to use that for checking so delaying makes not much + -- sense there. + local r = reporters[m.title or category] +end + function interfaces.setmessages(category,str) - local m = messages[category] or { } + local m = messages[category] for k, v in gmatch(str,"(%S+) *: *(.-) *[\n\r]") do m[k] = gsub(v,"%-%-","%%s") end @@ -67,10 +79,6 @@ end function interfaces.setmessage(category,tag,message) local m = messages[category] - if not m then - m = { } - messages[category] = m - end m[tag] = gsub(message,"%-%-","%%s") end @@ -86,7 +94,7 @@ end local messagesplitter = lpeg.splitat(",") -function interfaces.makemessage(category,tag,arguments) +local function makemessage(category,tag,arguments) local m = messages[category] m = (m and (m[tag] or m[tostring(tag)])) or format("unknown message, category '%s', tag '%s'",category,tag) if not m then @@ -98,9 +106,13 @@ function interfaces.makemessage(category,tag,arguments) end end +interfaces.makemessage = makemessage + function interfaces.showmessage(category,tag,arguments) local m = messages[category] - commands.writestatus((m and m.title) or "unknown title",interfaces.makemessage(category,tag,arguments)) + local t = m and m.title or category + local r = reporters[t] + r(makemessage(category,tag,arguments)) end function interfaces.setvariable(variable,given) @@ -115,6 +127,13 @@ function interfaces.setelement(element,given) elements[given] = element end +-- status + +function commands.showstatus(category,message) + local r = reporters[category] + r(message) +end + -- initialization function interfaces.setuserinterface(interface,response) @@ -153,16 +172,16 @@ function interfaces.setuserinterface(interface,response) nofcommands = nofcommands + 1 end local nofmessages = 0 - local setmessage = interfaces.setmessage for category, message in next, complete.messages do + local m = messages[category] for tag, set in next, message do - if tag ~= "files" then - setmessage(category,tag,set[interface] or set.en) + if tag ~= "files" then + m[tag] = set[interface] or set.en -- there are no --'s any longer in the lua file end end nofmessages = nofmessages + 1 end - report_interfaces("definitions: %s constants, %s variables, %s elements, %s commands, %s message groups", + report_interface("definitions: %s constants, %s variables, %s elements, %s commands, %s message groups", nofconstants,nofvariables,nofelements,nofcommands,nofmessages) end end diff --git a/tex/context/base/mult-ini.mkiv b/tex/context/base/mult-ini.mkiv index e0042d002..d210f7731 100644 --- a/tex/context/base/mult-ini.mkiv +++ b/tex/context/base/mult-ini.mkiv @@ -384,6 +384,12 @@ \unexpanded\def\getmessagedefault#1#2#3{\ctxsprint{interfaces.getmessage("#1","#2","#3")}} \unexpanded\def\makemessage #1#2#3{\ctxsprint{interfaces.makemessage("#1","#2","#3")}} +\unexpanded\def\writestatus #1#2{\ctxcommand{writestatus("#1",\!!bs#2\!!es)}} + +%unexpanded\def\disablemessages [#1]{\ctxlua{logs.disable(\!!bs#1\!!es)}} % we have a directive + +% todo: intercept message + %D \macros %D {ifshowwarnings, ifshowmessages} %D @@ -790,7 +796,8 @@ %D macro's can be enhanced with more testing facilities, but %D for the moment they suffice. -%D Out of convenience we define the banners here. +%D Out of convenience we define the banners here. This might move +%D to the Lua end. \def\contextbanner {ConTeXt \space diff --git a/tex/context/base/mult-mcs.mkii b/tex/context/base/mult-mcs.mkii index 27fbd37dd..c733798e6 100644 --- a/tex/context/base/mult-mcs.mkii +++ b/tex/context/base/mult-mcs.mkii @@ -88,7 +88,7 @@ \setinterfacemessage{linguals}{9}{language -- is active} \setinterfacemessage{linguals}{8}{specificke volby jazyka [--] bez mezer pripojeny} \setinterfacemessage{linguals}{title}{jazyky} -\setinterfacemessage{linguals}{10}{vzory --nacteny} +\setinterfacemessage{linguals}{10}{vzory -- nacteny} \setinterfacemessage{verbatims}{1}{soubor -- neexistuje} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{filter -- is loaded} diff --git a/tex/context/base/mult-mde.mkii b/tex/context/base/mult-mde.mkii index 2819c1ed5..4d7f009e4 100644 --- a/tex/context/base/mult-mde.mkii +++ b/tex/context/base/mult-mde.mkii @@ -88,7 +88,7 @@ \setinterfacemessage{linguals}{9}{Sprache -- ist aktiv} \setinterfacemessage{linguals}{8}{Sprachenspezifische Option [--] nahtlos hinzugefuegt} \setinterfacemessage{linguals}{title}{Sprache} -\setinterfacemessage{linguals}{10}{Trennmuster --geladen} +\setinterfacemessage{linguals}{10}{Trennmuster -- geladen} \setinterfacemessage{verbatims}{1}{Datei -- existiert nicht} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{filter -- ist geladen} diff --git a/tex/context/base/mult-men.mkii b/tex/context/base/mult-men.mkii index c9c56bcc5..a8d429356 100644 --- a/tex/context/base/mult-men.mkii +++ b/tex/context/base/mult-men.mkii @@ -88,7 +88,7 @@ \setinterfacemessage{linguals}{9}{language -- is active} \setinterfacemessage{linguals}{8}{language specific options [--] seamless appended} \setinterfacemessage{linguals}{title}{language} -\setinterfacemessage{linguals}{10}{patterns --loaded} +\setinterfacemessage{linguals}{10}{patterns -- loaded} \setinterfacemessage{verbatims}{1}{file -- does not exist} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{filter -- is loaded} diff --git a/tex/context/base/mult-mes.lua b/tex/context/base/mult-mes.lua index 50c764785..152090c81 100644 --- a/tex/context/base/mult-mes.lua +++ b/tex/context/base/mult-mes.lua @@ -6,6 +6,13 @@ if not modules then modules = { } end modules ['mult-mes'] = { license = "see context related readme files" } +-- This file is no longer shared with MkII so we can start cleaning +-- it up. +-- +-- floatsblocks -> floats +-- bodyfont -> fonts +-- verbatims -> buffers + return { ["publications"]={ ["files"]={ "bibl-tra.mkiv" }, @@ -13,54 +20,54 @@ return { ["en"]="publications", }, ["1"]={ - ["en"]="file -- not found, unknown style ignored", + ["en"]="file %s not found, unknown style ignored", }, ["2"]={ - ["en"]="file -- not found, waiting for bibtex", + ["en"]="file %s not found, waiting for bibtex", }, ["3"]={ ["en"]="wrote a new auxiliary file \\jobname.aux", }, ["4"]={ - ["en"]="loading database from --", + ["en"]="loading database from %s", }, ["5"]={ - ["en"]="warning: cite argument -- on line \\the\\inputlineno", + ["en"]="warning: cite argument %s on line \\the\\inputlineno", }, ["6"]={ - ["en"]="loading formatting style from --", + ["en"]="loading formatting style from %s", }, }, ["check"]={ ["1"]={ - ["cs"]="postradam '=' po '--' na radku --", - ["de"]="Fehlendes '=' nach '--' in Zeile --", - ["en"]="missing or ungrouped '=' after '--' in line --", - ["fr"]="manquant ou dégroupé '=' après '--' à la ligne --", - ["it"]="'=' mancante o non raggruppato dopo '--' alla riga --", - ["nl"]="'=' ontbreekt of zonder {} na '--' in regel --", - ["no"]="manglende '=' etter '--' i linje --", - ["ro"]="lipseste '=' dupa '--' in linia --", + ["cs"]="postradam '=' po '%s' na radku %s", + ["de"]="Fehlendes '=' nach '%s' in Zeile %s", + ["en"]="missing or ungrouped '=' after '%s' in line %s", + ["fr"]="manquant ou dégroupé '=' après '%s' à la ligne %s", + ["it"]="'=' mancante o non raggruppato dopo '%s' alla riga %s", + ["nl"]="'=' ontbreekt of zonder {} na '%s' in regel %s", + ["no"]="manglende '=' etter '%s' i linje %s", + ["ro"]="lipseste '=' dupa '%s' in linia %s", }, ["2"]={ - ["cs"]="ocekavam -- argument(y) na radku --", - ["de"]="-- Argument(e) in Zeile -- erwartet", - ["en"]="-- argument(s) expected in line --", - ["fr"]="-- argument(s) attendu(s) à la ligne --", - ["it"]="-- argomento/i attesi alla riga --", - ["nl"]="-- argument(en) verwacht in regel --", - ["no"]="-- argument forventet i linje --", - ["ro"]="argumentul(ele) -- sunt asteptate in linia --", + ["cs"]="ocekavam %s argument(y) na radku %s", + ["de"]="%s Argument(e) in Zeile %s erwartet", + ["en"]="%s argument(s) expected in line %s", + ["fr"]="%s argument(s) attendu(s) à la ligne %s", + ["it"]="%s argomento/i attesi alla riga %s", + ["nl"]="%s argument(en) verwacht in regel %s", + ["no"]="%s argument forventet i linje %s", + ["ro"]="argumentul(ele) %s sunt asteptate in linia %s", }, ["3"]={ - ["cs"]="-- -- nahrazuje makro, uzijte VERZALKY!", - ["de"]="-- -- ersetzt ein Makro, verwende VERSALIEN!", - ["en"]="-- -- replaces a macro, use CAPITALS!", - ["fr"]="-- -- remplace une macro, utilisez des MAJUSCULES !", - ["it"]="-- -- sostituisce una macro, usare le MAIUSCOLE!", - ["nl"]="-- -- vervangt een macro, gebruik HOOFDLETTERS!", - ["no"]="-- -- overskygger en makro, bruk STORE BOKSTAVER!", - ["ro"]="-- -- inlocuieste un macro, folositi MAJUSCULE!", + ["cs"]="%s %s nahrazuje makro, uzijte VERZALKY!", + ["de"]="%s %s ersetzt ein Makro, verwende VERSALIEN!", + ["en"]="%s %s replaces a macro, use CAPITALS!", + ["fr"]="%s %s remplace une macro, utilisez des MAJUSCULES !", + ["it"]="%s %s sostituisce una macro, usare le MAIUSCOLE!", + ["nl"]="%s %s vervangt een macro, gebruik HOOFDLETTERS!", + ["no"]="%s %s overskygger en makro, bruk STORE BOKSTAVER!", + ["ro"]="%s %s inlocuieste un macro, folositi MAJUSCULE!", }, ["files"]={ "mult-sys.tex" }, ["title"]={ @@ -76,24 +83,24 @@ return { }, ["colors"]={ ["1"]={ - ["cs"]="system -- je globalne aktivovana", - ["de"]="system -- ist global aktiviert", - ["en"]="system -- is global activated", - ["fr"]="le système -- est globalement activé", - ["it"]="sistema -- attivato globalmente", - ["nl"]="systeem -- is globaal actief", - ["no"]="system -- er aktivert globalt", - ["ro"]="sistem -- este activata global", + ["cs"]="system %s je globalne aktivovana", + ["de"]="system %s ist global aktiviert", + ["en"]="system %s is global activated", + ["fr"]="le système %s est globalement activé", + ["it"]="sistema %s attivato globalmente", + ["nl"]="systeem %s is globaal actief", + ["no"]="system %s er aktivert globalt", + ["ro"]="sistem %s este activata global", }, ["10"]={ - ["cs"]="-- prostor barev je podporovan", - ["de"]="-- Farbraum wird unterstuetzt", - ["en"]="-- color space is supported", - ["fr"]="-- l'espace de couleur est supporté", - ["it"]="spazio dei colori -- supportato", - ["nl"]="-- kleurruimte wordt ondersteund", - ["no"]="-- fargerom er støttet", - ["ro"]="spatiul de culoare -- este suportat", + ["cs"]="%s prostor barev je podporovan", + ["de"]="%s Farbraum wird unterstuetzt", + ["en"]="%s color space is supported", + ["fr"]="%s l'espace de couleur est supporté", + ["it"]="spazio dei colori %s supportato", + ["nl"]="%s kleurruimte wordt ondersteund", + ["no"]="%s fargerom er støttet", + ["ro"]="spatiul de culoare %s este suportat", }, ["11"]={ ["cs"]="barva je prevedena na sed", @@ -106,117 +113,117 @@ return { ["ro"]="culoarea este convertita la gri", }, ["12"]={ - ["cs"]="-- is registered", - ["de"]="-- is registered", - ["en"]="-- is registered", - ["fr"]="-- est enregistré", - ["it"]="-- is registered", - ["nl"]="-- is geregistreerd", - ["no"]="-- is registered", - ["ro"]="-- is registered", + ["cs"]="%s is registered", + ["de"]="%s is registered", + ["en"]="%s is registered", + ["fr"]="%s est enregistré", + ["it"]="%s is registered", + ["nl"]="%s is geregistreerd", + ["no"]="%s is registered", + ["ro"]="%s is registered", }, ["2"]={ - ["cs"]="system -- je lokalne activovana", - ["de"]="system -- ist lokal aktiviert", - ["en"]="system -- is local activated", - ["fr"]="le système -- est localement activé", - ["it"]="sistema -- attivato localmente", - ["nl"]="systeem -- is lokaal actief", - ["no"]="system -- er aktivert lokalt", - ["ro"]="sistem -- este activata local", + ["cs"]="system %s je lokalne activovana", + ["de"]="system %s ist lokal aktiviert", + ["en"]="system %s is local activated", + ["fr"]="le système %s est localement activé", + ["it"]="sistema %s attivato localmente", + ["nl"]="systeem %s is lokaal actief", + ["no"]="system %s er aktivert lokalt", + ["ro"]="sistem %s este activata local", }, ["3"]={ - ["cs"]="-- neni definovana --", - ["de"]="-- ist undefiniert --", - ["en"]="-- is not defined --", - ["fr"]="-- n'est pas défini --", - ["it"]="-- non definito --", - ["nl"]="-- is niet gedefinieerd --", - ["no"]="-- er udefinert --", - ["ro"]="-- nu este definita --", + ["cs"]="%s neni definovana %s", + ["de"]="%s ist undefiniert %s", + ["en"]="%s is not defined %s", + ["fr"]="%s n'est pas défini %s", + ["it"]="%s non definito %s", + ["nl"]="%s is niet gedefinieerd %s", + ["no"]="%s er udefinert %s", + ["ro"]="%s nu este definita %s", }, ["4"]={ - ["cs"]="system -- je nacten", - ["de"]="system -- ist geladen", - ["en"]="system -- is loaded", - ["fr"]="le système -- est chargé", - ["it"]="sistema -- caricato", - ["nl"]="systeem -- wordt geladen", - ["no"]="system -- er lest inn", - ["ro"]="sistem -- este incarcata", + ["cs"]="system %s je nacten", + ["de"]="system %s ist geladen", + ["en"]="system %s is loaded", + ["fr"]="le système %s est chargé", + ["it"]="sistema %s caricato", + ["nl"]="systeem %s wordt geladen", + ["no"]="system %s er lest inn", + ["ro"]="sistem %s este incarcata", }, ["5"]={ - ["cs"]="neznamy system --", - ["de"]="unbekanntes System --", - ["en"]="unknown system --", - ["fr"]="système -- inconnu", - ["it"]="sistema -- sconosciuto", - ["nl"]="onbekend systeem --", - ["no"]="ukjent system --", - ["ro"]="sistem -- necunoscuta", + ["cs"]="neznamy system %s", + ["de"]="unbekanntes System %s", + ["en"]="unknown system %s", + ["fr"]="système %s inconnu", + ["it"]="sistema %s sconosciuto", + ["nl"]="onbekend systeem %s", + ["no"]="ukjent system %s", + ["ro"]="sistem %s necunoscuta", }, ["6"]={ - ["cs"]="palette -- je k dispozici", - ["de"]="palette -- ist verfuegbar", - ["en"]="palette -- is available", - ["fr"]="la palette -- est disponible", - ["it"]="tavolozza -- resa disponibile", - ["nl"]="palet -- is beschikbaar", - ["no"]="palett -- er tilgjengelig", - ["ro"]="paleta -- este disponibila", + ["cs"]="palette %s je k dispozici", + ["de"]="palette %s ist verfuegbar", + ["en"]="palette %s is available", + ["fr"]="la palette %s est disponible", + ["it"]="tavolozza %s resa disponibile", + ["nl"]="palet %s is beschikbaar", + ["no"]="palett %s er tilgjengelig", + ["ro"]="paleta %s este disponibila", }, ["7"]={ - ["cs"]="palette -- neni k dispozici", - ["de"]="palette -- ist nicht verfuegbar", - ["en"]="palette -- is not available", - ["fr"]="le palette -- n'est pas disponible", - ["it"]="tavolozza -- non disponibile", - ["nl"]="palet -- is niet beschikbaar", - ["no"]="palett -- er ikke tilgjengelig", - ["ro"]="palette -- nu este disponibila", + ["cs"]="palette %s neni k dispozici", + ["de"]="palette %s ist nicht verfuegbar", + ["en"]="palette %s is not available", + ["fr"]="le palette %s n'est pas disponible", + ["it"]="tavolozza %s non disponibile", + ["nl"]="palet %s is niet beschikbaar", + ["no"]="palett %s er ikke tilgjengelig", + ["ro"]="palette %s nu este disponibila", }, ["8"]={ - ["cs"]="specifikace -- v barve -- bude cerna", - ["de"]="Spezifikation -- bei Farbe -- wird schwarz", - ["en"]="specification -- at color -- becomes black", - ["fr"]="la spécification -- de la couleur -- devient noire", - ["it"]="specifica -- del colore -- convertita in nero", - ["nl"]="specificatie -- bij -- wordt zwart", - ["no"]="spesifikasjon -- for farge -- gir kun svart", - ["ro"]="specificatia -- la culoarea -- devine neagra", + ["cs"]="specifikace %s v barve %s bude cerna", + ["de"]="Spezifikation %s bei Farbe %s wird schwarz", + ["en"]="specification %s at color %s becomes black", + ["fr"]="la spécification %s de la couleur %s devient noire", + ["it"]="specifica %s del colore %s convertita in nero", + ["nl"]="specificatie %s bij %s wordt zwart", + ["no"]="spesifikasjon %s for farge %s gir kun svart", + ["ro"]="specificatia %s la culoarea %s devine neagra", }, ["9"]={ - ["cs"]="-- prostor barev neni podporovan", - ["de"]="-- Farbraum wird nicht unterstuetzt", - ["en"]="-- color space is not supported", - ["fr"]="l'espace de couleur -- n'est pas supporté", - ["it"]="spazio dei colori -- non supportato", - ["nl"]="-- kleurruimte wordt niet ondersteund", - ["no"]="-- fargerom er ikke støttet", - ["ro"]="spatiul de culoare -- nu este suportat", + ["cs"]="%s prostor barev neni podporovan", + ["de"]="%s Farbraum wird nicht unterstuetzt", + ["en"]="%s color space is not supported", + ["fr"]="l'espace de couleur %s n'est pas supporté", + ["it"]="spazio dei colori %s non supportato", + ["nl"]="%s kleurruimte wordt niet ondersteund", + ["no"]="%s fargerom er ikke støttet", + ["ro"]="spatiul de culoare %s nu este suportat", }, ["files"]={ "colo-ini.tex" }, ["title"]={ ["cs"]="barva", ["de"]="farbe", - ["en"]="color", + ["en"]="colors", ["fr"]="couleurs", ["it"]="colore", - ["nl"]="kleur", + ["nl"]="kleuren", ["no"]="farge", ["ro"]="culori", }, }, ["columns"]={ ["1"]={ - ["cs"]="je mozno pouze -- sloupcu", - ["de"]="nur -- Spalten moeglich", - ["en"]="only -- columns possible", - ["fr"]="seules -- colonnes possibles", - ["it"]="solo -- colonne possibili", - ["nl"]="maximaal -- kolommen", - ["no"]="maksimalt -- kolonner", - ["ro"]="este posibil numai -- coloane", + ["cs"]="je mozno pouze %s sloupcu", + ["de"]="nur %s Spalten moeglich", + ["en"]="only %s columns possible", + ["fr"]="seules %s colonnes possibles", + ["it"]="solo %s colonne possibili", + ["nl"]="maximaal %s kolommen", + ["no"]="maksimalt %s kolonner", + ["ro"]="este posibil numai %s coloane", }, ["10"]={ ["cs"]="zbyl (mene nez) 1 radek", @@ -239,14 +246,14 @@ return { ["ro"]="blocul este prea lat pentru coloana", }, ["12"]={ - ["cs"]="plovouci objekt je presunut do nasledujiciho sloupce / --", - ["de"]="Gleitobjekt in naechste Zeile verschoben / --", - ["en"]="float moved to next column / --", - ["fr"]="flottant déplacé à la colonne suivante / --", - ["it"]="oggetto mobile spostata alla colonna successiva / --", - ["nl"]="plaatsblok verplaatst naar volgende kolom / --", - ["no"]="flytblokk forskjøvet til neste kolonne / --", - ["ro"]="blocul este mutat pe urmatoarea coloana / --", + ["cs"]="plovouci objekt je presunut do nasledujiciho sloupce / %s", + ["de"]="Gleitobjekt in naechste Zeile verschoben / %s", + ["en"]="float moved to next column / %s", + ["fr"]="flottant déplacé à la colonne suivante / %s", + ["it"]="oggetto mobile spostata alla colonna successiva / %s", + ["nl"]="plaatsblok verplaatst naar volgende kolom / %s", + ["no"]="flytblokk forskjøvet til neste kolonne / %s", + ["ro"]="blocul este mutat pe urmatoarea coloana / %s", }, ["13"]={ ["cs"]="siroky plovouci objekt je presunut nad sloupce", @@ -299,14 +306,14 @@ return { ["ro"]="cadrele bottom (bottom float) nu sunt inca suportate", }, ["6"]={ - ["cs"]="-- plovouci objekt(y) odlozeny", - ["de"]="-- Gleitobjekt(e) verschoben", - ["en"]="-- float(s) postponed", - ["fr"]="-- flottant(s) reporté(s)", - ["it"]="-- float(s) posticipate", - ["nl"]="-- plaatsblok(en) opgeschort", - ["no"]="-- flytblokk forskjøvet", - ["ro"]="-- blocurile sunt amanate", + ["cs"]="%s plovouci objekt(y) odlozeny", + ["de"]="%s Gleitobjekt(e) verschoben", + ["en"]="%s float(s) postponed", + ["fr"]="%s flottant(s) reporté(s)", + ["it"]="%s float(s) posticipate", + ["nl"]="%s plaatsblok(en) opgeschort", + ["no"]="%s flytblokk forskjøvet", + ["ro"]="%s blocurile sunt amanate", }, ["7"]={ ["cs"]="vyvazovani ukonceno po 100 krocich", @@ -319,14 +326,14 @@ return { ["ro"]="alinierea este oprita dupa 100 de incercari", }, ["8"]={ - ["cs"]="vyvazeno v -- krocich", - ["de"]="ausgeglichen nach -- Schritt(en)", - ["en"]="balanced in -- step(s)", - ["fr"]="équilibré en -- pas", - ["it"]="bilanciamento in -- passo/i", - ["nl"]="gebalanceerd in -- stap(pen)", - ["no"]="balansert etter -- iterasjoner", - ["ro"]="aliniat in -- pas(i)", + ["cs"]="vyvazeno v %s krocich", + ["de"]="ausgeglichen nach %s Schritt(en)", + ["en"]="balanced in %s step(s)", + ["fr"]="équilibré en %s pas", + ["it"]="bilanciamento in %s passo/i", + ["nl"]="gebalanceerd in %s stap(pen)", + ["no"]="balansert etter %s iterasjoner", + ["ro"]="aliniat in %s pas(i)", }, ["9"]={ ["cs"]="kontrola nerovnost", @@ -352,44 +359,44 @@ return { }, ["databases"]={ ["1"]={ - ["cs"]="--", - ["de"]="--", - ["en"]="--", - ["fr"]="--", - ["it"]="--", - ["nl"]="--", - ["no"]="--", - ["ro"]="--", + ["cs"]="%s", + ["de"]="%s", + ["en"]="%s", + ["fr"]="%s", + ["it"]="%s", + ["nl"]="%s", + ["no"]="%s", + ["ro"]="%s", }, ["2"]={ - ["cs"]="local file --", - ["de"]="lokale Datei --", - ["en"]="local file --", - ["fr"]="fichier local --", - ["it"]="file locale --", - ["nl"]="lokaal bestand --", - ["no"]="lokal fil --", - ["ro"]="fisier local --", + ["cs"]="local file %s", + ["de"]="lokale Datei %s", + ["en"]="local file %s", + ["fr"]="fichier local %s", + ["it"]="file locale %s", + ["nl"]="lokaal bestand %s", + ["no"]="lokal fil %s", + ["ro"]="fisier local %s", }, ["3"]={ - ["cs"]="global file --", - ["de"]="globale Datei --", - ["en"]="global file --", - ["fr"]="fichier global --", - ["it"]="file globale --", - ["nl"]="globaal bestand --", - ["no"]="global fil --", - ["ro"]="fisier global --", + ["cs"]="global file %s", + ["de"]="globale Datei %s", + ["en"]="global file %s", + ["fr"]="fichier global %s", + ["it"]="file globale %s", + ["nl"]="globaal bestand %s", + ["no"]="global fil %s", + ["ro"]="fisier global %s", }, ["4"]={ - ["cs"]="unknown file --", - ["de"]="unbekannte Datei --", - ["en"]="unknown file --", - ["fr"]="fichier inconnu --", - ["it"]="file sconosciuto --", - ["nl"]="onbekend bestand --", - ["no"]="ukjent fil --", - ["ro"]="fisier necunoscut --", + ["cs"]="unknown file %s", + ["de"]="unbekannte Datei %s", + ["en"]="unknown file %s", + ["fr"]="fichier inconnu %s", + ["it"]="file sconosciuto %s", + ["nl"]="onbekend bestand %s", + ["no"]="ukjent fil %s", + ["ro"]="fisier necunoscut %s", }, ["files"]={ "core-dat.tex" }, ["title"]={ @@ -403,130 +410,69 @@ return { ["ro"]="baze de date", }, }, - ["documents"]={ - ["1"]={ - ["de"]="Blatt --", - ["en"]="sheet --", - ["nl"]="sheet --", - }, - ["2"]={ - ["de"]="Nummer --", - ["en"]="number --", - ["nl"]="nummer --", - }, - ["files"]={ "docs-bri.tex", "docs-she.tex" }, - ["title"]={ - ["de"]="Blaetter", - ["en"]="sheets", - ["nl"]="sheets", - }, - }, - ["encodings"]={ - ["1"]={ - ["cs"]="kodovani --", - ["de"]="Kodierung --", - ["en"]="coding --", - ["fr"]="encodage --", - ["it"]="codifica --", - ["nl"]="codering --", - ["no"]="koding --", - ["ro"]="codificarea --", - }, - ["2"]={ - ["cs"]="je nacteno kodovani --", - ["de"]="Kodierung -- ist geladen", - ["en"]="coding -- is loaded", - ["fr"]="l'encodage -- est chargé", - ["it"]="codifica -- caricata", - ["nl"]="codering -- wordt geladen", - ["no"]="koding -- er lest inn", - ["ro"]="codificarea -- este Encarcata", - }, - ["3"]={ - ["cs"]="nezname kodovani --", - ["de"]="Unbekannte Kodierung --", - ["en"]="unknown coding --", - ["fr"]="encodage -- inconnu", - ["it"]="codifica sconosciuta --", - ["nl"]="onbekende codering --", - ["no"]="ukjent koding --", - ["ro"]="codificarea -- este necunoscuta", - }, - ["files"]={ "enco-ini.mkii" }, - ["title"]={ - ["cs"]="kodovani", - ["de"]="Kodierung", - ["en"]="encoding", - ["fr"]="encodage", - ["it"]="codifica", - ["nl"]="encoding", - ["no"]="koding", - ["ro"]="codificari", - }, - }, ["figures"]={ ["1"]={ - ["cs"]="obraz -- nelze nalezt", - ["de"]="Abbildung -- kann nicht gefunden werden", - ["en"]="figure -- can not be found", - ["fr"]="la figure -- ne peut être trouvée", - ["it"]="figura -- non trovata", - ["nl"]="figuur -- is niet te vinden", - ["ro"]="figura -- nu poate fi gasita", + ["cs"]="obraz %s nelze nalezt", + ["de"]="Abbildung %s kann nicht gefunden werden", + ["en"]="figure %s can not be found", + ["fr"]="la figure %s ne peut être trouvée", + ["it"]="figura %s non trovata", + ["nl"]="figuur %s is niet te vinden", + ["ro"]="figura %s nu poate fi gasita", }, ["2"]={ - ["cs"]="obraz -- nepritomen", - ["de"]="Abbildung -- wird nicht erstellt", - ["en"]="figure -- is not preset", - ["fr"]="la figure -- n'est pas pré-sélectionnée", - ["it"]="la figura -- non è preimpostata", - ["nl"]="figuur -- wordt niet preset", - ["ro"]="figura -- nu este presetata", + ["cs"]="obraz %s nepritomen", + ["de"]="Abbildung %s wird nicht erstellt", + ["en"]="figure %s is not preset", + ["fr"]="la figure %s n'est pas pré-sélectionnée", + ["it"]="la figura %s non è preimpostata", + ["nl"]="figuur %s wordt niet preset", + ["ro"]="figura %s nu este presetata", }, ["3"]={ - ["cs"]="dimensions of -- are determined externally", - ["de"]="dimensions of -- are determined externally", - ["en"]="dimensions of -- are determined externally", - ["fr"]="dimensions of -- are determined externally", - ["it"]="dimensions of -- are determined externally", - ["nl"]="maten van -- worden extern vastgesteld", - ["ro"]="dimensions of -- are determined externally", + ["cs"]="dimensions of %s are determined externally", + ["de"]="dimensions of %s are determined externally", + ["en"]="dimensions of %s are determined externally", + ["fr"]="dimensions of %s are determined externally", + ["it"]="dimensions of %s are determined externally", + ["nl"]="maten van %s worden extern vastgesteld", + ["ro"]="dimensions of %s are determined externally", }, ["4"]={ - ["cs"]="dimenze obrazu -- nacteny primo z jeho souboru", - ["de"]="Dimensionen von -- geladen aus der Abbildungsdatei selbst", - ["en"]="dimensions of -- loaded from figurefile itself", - ["fr"]="les dimensions de -- chargées implicitement à partir du fichier de figure", - ["it"]="dimensioni di -- caricate dal file di immagini stesso", - ["nl"]="maten van -- geladen uit figuurfile zelf", - ["ro"]="dimensiunea figurii -- se incarca din fisierul insusi", + ["cs"]="dimenze obrazu %s nacteny primo z jeho souboru", + ["de"]="Dimensionen von %s geladen aus der Abbildungsdatei selbst", + ["en"]="dimensions of %s loaded from figurefile itself", + ["fr"]="les dimensions de %s chargées implicitement à partir du fichier de figure", + ["it"]="dimensioni di %s caricate dal file di immagini stesso", + ["nl"]="maten van %s geladen uit figuurfile zelf", + ["ro"]="dimensiunea figurii %s se incarca din fisierul insusi", }, ["5"]={ - ["cs"]="dimensions of -- are unknown", - ["de"]="Dimensions of -- are unknown", - ["en"]="dimensions of -- are unknown", - ["fr"]="dimensions of -- are unknown", - ["it"]="dimensions of -- are unknown", - ["nl"]="maten van -- zijn onbekend", - ["ro"]="dimensions of -- are unknown", + ["cs"]="dimensions of %s are unknown", + ["de"]="Dimensions of %s are unknown", + ["en"]="dimensions of %s are unknown", + ["fr"]="dimensions of %s are unknown", + ["it"]="dimensions of %s are unknown", + ["nl"]="maten van %s zijn onbekend", + ["ro"]="dimensions of %s are unknown", }, ["6"]={ - ["cs"]="dimenze obrazu -- spocteny programem rlxtools", - ["de"]="Dimensionen von -- ausgerechnet durch rlxtools", - ["en"]="dimensions of -- calculated by rlxtools", - ["fr"]="les dimensions de -- calculées par rlxtools", - ["it"]="dimensioni di -- calcolate da rlxtools", - ["nl"]="maten van -- berekend door rlxtools", - ["ro"]="dimensiunea figurii -- este calculata de rlxtools", + ["cs"]="dimenze obrazu %s spocteny programem rlxtools", + ["de"]="Dimensionen von %s ausgerechnet durch rlxtools", + ["en"]="dimensions of %s calculated by rlxtools", + ["fr"]="les dimensions de %s calculées par rlxtools", + ["it"]="dimensioni di %s calcolate da rlxtools", + ["nl"]="maten van %s berekend door rlxtools", + ["ro"]="dimensiunea figurii %s este calculata de rlxtools", }, ["8"]={ - ["cs"]="obrazovy objekt -- je znovu pouzit", - ["de"]="Abbildungobjekt -- wurde wiederverwandt", - ["en"]="figureobject -- is reused", - ["fr"]="figureobject -- est réutilisé", - ["it"]="oggetto-figura -- riutilizzato", - ["nl"]="figuurobject -- wordt opnieuw gebruikt", - ["ro"]="obiectul figura -- este refolosit", + ["cs"]="obrazovy objekt %s je znovu pouzit", + ["de"]="Abbildungobjekt %s wurde wiederverwandt", + ["en"]="figureobject %s is reused", + ["fr"]="figureobject %s est réutilisé", + ["it"]="oggetto-figura %s riutilizzato", + ["nl"]="figuurobject %s wordt opnieuw gebruikt", + ["ro"]="obiectul figura %s este refolosit", }, ["files"]={ "core-inc.mkii" }, ["title"]={ @@ -541,14 +487,14 @@ return { }, ["files"]={ ["1"]={ - ["cs"]="synonymum souboru -- je jiz pouzito pro --", - ["de"]="Dateisynonym -- wird bereits fuer -- benutzt", - ["en"]="file synonym -- is already used for --", - ["fr"]="le synonyme de fichier -- est déjà utilisé pour --", - ["it"]="sinonimo file -- già in uso per --", - ["nl"]="file synoniem -- is al in gebruik voor --", - ["no"]="filesynonym -- er allerede brukt for --", - ["ro"]="sinonimul fisierelor -- este folosit deja pentru --", + ["cs"]="synonymum souboru %s je jiz pouzito pro %s", + ["de"]="Dateisynonym %s wird bereits fuer %s benutzt", + ["en"]="file synonym %s is already used for %s", + ["fr"]="le synonyme de fichier %s est déjà utilisé pour %s", + ["it"]="sinonimo file %s già in uso per %s", + ["nl"]="file synoniem %s is al in gebruik voor %s", + ["no"]="filesynonym %s er allerede brukt for %s", + ["ro"]="sinonimul fisierelor %s este folosit deja pentru %s", }, ["files"]={ "core-fil.tex" }, ["title"]={ @@ -564,51 +510,51 @@ return { }, ["filters"]={ ["1"]={ - ["cs"]="filter -- is loaded", - ["de"]="filter -- ist geladen", - ["en"]="filter -- is loaded", - ["fr"]="le filtre -- est chargé", - ["it"]="filtro -- caricato", - ["nl"]="filter -- wordt geladen", + ["cs"]="filter %s is loaded", + ["de"]="filter %s ist geladen", + ["en"]="filter %s is loaded", + ["fr"]="le filtre %s est chargé", + ["it"]="filtro %s caricato", + ["nl"]="filter %s wordt geladen", }, ["2"]={ - ["cs"]="unknown filter --", - ["de"]="unknown filter --", - ["en"]="unknown filter --", - ["fr"]="filtre -- inconnu", - ["it"]="filtro sconosciuto --", - ["nl"]="onbekend filter --", + ["cs"]="unknown filter %s", + ["de"]="unknown filter %s", + ["en"]="unknown filter %s", + ["fr"]="filtre %s inconnu", + ["it"]="filtro sconosciuto %s", + ["nl"]="onbekend filter %s", }, ["files"]={ "filt-ini.tex" }, ["title"]={ - ["cs"]="filter", - ["de"]="filter", - ["en"]="filter", + ["cs"]="filters", + ["de"]="filters", + ["en"]="filters", ["fr"]="filtre", ["it"]="filtri", - ["nl"]="filter", + ["nl"]="filters", }, }, ["floatblocks"]={ ["1"]={ - ["cs"]="-- precislovano / -- => --", - ["de"]="-- neu nummeriert / -- => --", - ["en"]="-- renumbered / -- => --", - ["fr"]="-- renuméroté / -- => --", - ["it"]="-- rinumerato / -- => --", - ["nl"]="-- hernummerd / -- => --", - ["no"]="-- renummerert / -- => --", - ["ro"]="-- renumerotat / -- => --", + ["cs"]="%s precislovano / %s => %s", + ["de"]="%s neu nummeriert / %s => %s", + ["en"]="%s renumbered / %s => %s", + ["fr"]="%s renuméroté / %s => %s", + ["it"]="%s rinumerato / %s => %s", + ["nl"]="%s hernummerd / %s => %s", + ["no"]="%s renummerert / %s => %s", + ["ro"]="%s renumerotat / %s => %s", }, ["10"]={ - ["cs"]="-- omezeno", - ["de"]="-- begrenzt", - ["en"]="-- limited", - ["fr"]="-- limité", - ["it"]="-- limitato", - ["nl"]="-- begrensd", - ["no"]="-- begrenset", - ["ro"]="-- limitat", + ["cs"]="%s omezeno", + ["de"]="%s begrenzt", + ["en"]="%s limited", + ["fr"]="%s limité", + ["it"]="%s limitato", + ["nl"]="%s begrensd", + ["no"]="%s begrenset", + ["ro"]="%s limitat", }, ["11"]={ ["cs"]="nedan zadny blok", @@ -641,34 +587,34 @@ return { ["ro"]="there is nothing to split", }, ["2"]={ - ["cs"]="-- ulozeno", - ["de"]="-- gespeichert", - ["en"]="-- saved", - ["fr"]="-- sauvegardé", - ["it"]="-- salvato", - ["nl"]="-- bewaard", - ["no"]="-- lagret", - ["ro"]="-- salvat", + ["cs"]="%s ulozeno", + ["de"]="%s gespeichert", + ["en"]="%s saved", + ["fr"]="%s sauvegardé", + ["it"]="%s salvato", + ["nl"]="%s bewaard", + ["no"]="%s lagret", + ["ro"]="%s salvat", }, ["3"]={ - ["cs"]="-- presunuto", - ["de"]="-- verschoben", - ["en"]="-- moved", - ["fr"]="-- déplacé", - ["it"]="-- mosso", - ["nl"]="-- verplaatst", - ["no"]="-- flyttet", - ["ro"]="-- mutat", + ["cs"]="%s presunuto", + ["de"]="%s verschoben", + ["en"]="%s moved", + ["fr"]="%s déplacé", + ["it"]="%s mosso", + ["nl"]="%s verplaatst", + ["no"]="%s flyttet", + ["ro"]="%s mutat", }, ["4"]={ - ["cs"]="-- umisteno", - ["de"]="-- plaziert", - ["en"]="-- placed", - ["fr"]="-- placé", - ["it"]="-- sistemato", - ["nl"]="-- geplaatst", - ["no"]="-- plassert", - ["ro"]="-- plasat", + ["cs"]="%s umisteno", + ["de"]="%s plaziert", + ["en"]="%s placed", + ["fr"]="%s placé", + ["it"]="%s sistemato", + ["nl"]="%s geplaatst", + ["no"]="%s plassert", + ["ro"]="%s plasat", }, ["5"]={ ["cs"]="poradi prizpusobeno", @@ -681,34 +627,34 @@ return { ["ro"]="ordinea adaptata", }, ["6"]={ - ["cs"]="pocet hornich plovoucich objektu je omezen na --", - ["de"]="Anz. der oberen Gleitobjekte beschraengt auf --", - ["en"]="n of top floats limited to --", - ["fr"]="n flottants de haut de page limité à --", - ["it"]="n di top floats limitato a --", - ["nl"]="maximaal -- boven", - ["no"]="maksimalt -- flytblokker øverst", - ["ro"]="nr. cadrelor de sus limitat la --", + ["cs"]="pocet hornich plovoucich objektu je omezen na %s", + ["de"]="Anz. der oberen Gleitobjekte beschraengt auf %s", + ["en"]="n of top floats limited to %s", + ["fr"]="n flottants de haut de page limité à %s", + ["it"]="n di top floats limitato a %s", + ["nl"]="maximaal %s boven", + ["no"]="maksimalt %s flytblokker øverst", + ["ro"]="nr. cadrelor de sus limitat la %s", }, ["7"]={ - ["cs"]="pocet spodnich plovoucich objektu je omezen na --", - ["de"]="Anz. der unteren Gleitobjekte beschraengt auf --", - ["en"]="n of bottom floats limited to --", - ["fr"]="n flottants de bas de page limité à --", - ["it"]="n di bottom floats limitato a --", - ["nl"]="maximaal -- onder", - ["no"]="maksimalt -- flytblokker nederst", - ["ro"]="nr. blocurilor de jos limitat la --", + ["cs"]="pocet spodnich plovoucich objektu je omezen na %s", + ["de"]="Anz. der unteren Gleitobjekte beschraengt auf %s", + ["en"]="n of bottom floats limited to %s", + ["fr"]="n flottants de bas de page limité à %s", + ["it"]="n di bottom floats limitato a %s", + ["nl"]="maximaal %s onder", + ["no"]="maksimalt %s flytblokker nederst", + ["ro"]="nr. blocurilor de jos limitat la %s", }, ["8"]={ - ["cs"]="radku je mene nez --", - ["de"]="weniger als -- zeilen", - ["en"]="less than -- lines", - ["fr"]="moins de -- lignes", - ["it"]="meno di -- righe", - ["nl"]="minder dan -- regels", - ["no"]="mindre enn -- linjer", - ["ro"]="mai putin de -- linii", + ["cs"]="radku je mene nez %s", + ["de"]="weniger als %s zeilen", + ["en"]="less than %s lines", + ["fr"]="moins de %s lignes", + ["it"]="meno di %s righe", + ["nl"]="minder dan %s regels", + ["no"]="mindre enn %s linjer", + ["ro"]="mai putin de %s linii", }, ["9"]={ ["cs"]="poradi naruseno", @@ -734,104 +680,104 @@ return { }, ["fonts"]={ ["1"]={ - ["cs"]="kodovani --", - ["de"]="Kodierung --", - ["en"]="coding --", - ["fr"]="encodage --", - ["it"]="codifica --", - ["nl"]="codering --", - ["no"]="koding --", - ["ro"]="codificarea --", + ["cs"]="kodovani %s", + ["de"]="Kodierung %s", + ["en"]="coding %s", + ["fr"]="encodage %s", + ["it"]="codifica %s", + ["nl"]="codering %s", + ["no"]="koding %s", + ["ro"]="codificarea %s", }, ["10"]={ - ["cs"]="neznamy font --", - ["de"]="unbekanntes Font --", - ["en"]="unknown font file --", - ["fr"]="fichier de police -- inconnu", - ["it"]="file di font sconosciuto --", - ["nl"]="onbekende font file --", - ["no"]="ukjent fontfil --", - ["ro"]="fisier font necunoscut --", + ["cs"]="neznamy font %s", + ["de"]="unbekanntes Font %s", + ["en"]="unknown font file %s", + ["fr"]="fichier de police %s inconnu", + ["it"]="file di font sconosciuto %s", + ["nl"]="onbekende font file %s", + ["no"]="ukjent fontfil %s", + ["ro"]="fisier font necunoscut %s", }, ["14"]={ - ["cs"]="bodyfont -- is defined (can better be done global)", - ["de"]="Fliesstext -- wurde definiert (besser waere globale Definition)", - ["en"]="bodyfont -- is defined (can better be done global)", - ["fr"]="policecorps -- est défini (une définition globale pourrait être plus adéquat)", - ["it"]="corpo del testo -- definito (sarebbe meglio globale)", - ["nl"]="korps -- is gedefinieerd (kan beter globaal plaatsvinden)", - ["no"]="bodyfont -- is defined (can better be done global)", - ["ro"]="bodyfont -- is defined (can better be done global)", + ["cs"]="bodyfont %s is defined (can better be done global)", + ["de"]="Fliesstext %s wurde definiert (besser waere globale Definition)", + ["en"]="bodyfont %s is defined (can better be done global)", + ["fr"]="policecorps %s est défini (une définition globale pourrait être plus adéquat)", + ["it"]="corpo del testo %s definito (sarebbe meglio globale)", + ["nl"]="korps %s is gedefinieerd (kan beter globaal plaatsvinden)", + ["no"]="bodyfont %s is defined (can better be done global)", + ["ro"]="bodyfont %s is defined (can better be done global)", }, ["2"]={ - ["cs"]="varianta -- je nactena", - ["de"]="Variante -- ist geladen", - ["en"]="variant -- is loaded", - ["fr"]="la variante -- est chargée", - ["it"]="variante -- caricata", - ["nl"]="variant -- wordt geladen", - ["no"]="variant -- er lest inn", - ["ro"]="varianta -- este incarcata", + ["cs"]="varianta %s je nactena", + ["de"]="Variante %s ist geladen", + ["en"]="variant %s is loaded", + ["fr"]="la variante %s est chargée", + ["it"]="variante %s caricata", + ["nl"]="variant %s wordt geladen", + ["no"]="variant %s er lest inn", + ["ro"]="varianta %s este incarcata", }, ["3"]={ - ["cs"]="neznama varianta --", - ["de"]="Unbekannte Variante --", - ["en"]="unknown variant --", - ["fr"]="variante -- inconnue", - ["it"]="variante sconosciuta --", - ["nl"]="onbekende variant --", - ["no"]="ukjent variant --", - ["ro"]="varianta necunoscuta --", + ["cs"]="neznama varianta %s", + ["de"]="Unbekannte Variante %s", + ["en"]="unknown variant %s", + ["fr"]="variante %s inconnue", + ["it"]="variante sconosciuta %s", + ["nl"]="onbekende variant %s", + ["no"]="ukjent variant %s", + ["ro"]="varianta necunoscuta %s", }, ["4"]={ - ["cs"]="zakladni font -- neni definovan", - ["de"]="Fliesstext -- ist nicht definiert", - ["en"]="bodyfont -- is not defined", - ["fr"]="policecorps -- n'est pas définie", - ["it"]="corpo del testo -- non definito", - ["nl"]="korps -- is niet gedefinieerd", - ["no"]="hovedfont -- er ikke definert", - ["ro"]="corpul de litere -- nu este definit", + ["cs"]="zakladni font %s neni definovan", + ["de"]="Fliesstext %s ist nicht definiert", + ["en"]="bodyfont %s is not defined", + ["fr"]="policecorps %s n'est pas définie", + ["it"]="corpo del testo %s non definito", + ["nl"]="korps %s is niet gedefinieerd", + ["no"]="hovedfont %s er ikke definert", + ["ro"]="corpul de litere %s nu este definit", }, ["5"]={ - ["cs"]="styl -- neni definovan", - ["de"]="Stil -- ist nicht definiert", - ["en"]="style -- is not defined", - ["fr"]="le style -- n'est pas défini", - ["it"]="stile -- non definito", - ["nl"]="stijl -- is niet gedefinieerd", - ["no"]="stil -- er ikke definert", - ["ro"]="stilul -- nu este definit", + ["cs"]="styl %s neni definovan", + ["de"]="Stil %s ist nicht definiert", + ["en"]="style %s is not defined", + ["fr"]="le style %s n'est pas défini", + ["it"]="stile %s non definito", + ["nl"]="stijl %s is niet gedefinieerd", + ["no"]="stil %s er ikke definert", + ["ro"]="stilul %s nu este definit", }, ["6"]={ - ["cs"]="-- je nacten", - ["de"]="-- ist geladen", - ["en"]="-- is loaded", - ["fr"]="-- est chargé", - ["it"]="-- caricato", - ["nl"]="-- wordt geladen", - ["no"]="-- er lest inn", - ["ro"]="-- este incarcat", + ["cs"]="%s je nacten", + ["de"]="%s ist geladen", + ["en"]="%s is loaded", + ["fr"]="%s est chargé", + ["it"]="%s caricato", + ["nl"]="%s wordt geladen", + ["no"]="%s er lest inn", + ["ro"]="%s este incarcat", }, ["7"]={ - ["cs"]="neznamy format --", - ["de"]="unbekanntes Format --", - ["en"]="unknown format --", - ["fr"]="format -- inconnu", - ["it"]="formato sconosciuto --", - ["nl"]="onbekend formaat --", - ["no"]="ukjent format --", - ["ro"]="format necunoscut --", + ["cs"]="neznamy format %s", + ["de"]="unbekanntes Format %s", + ["en"]="unknown format %s", + ["fr"]="format %s inconnu", + ["it"]="formato sconosciuto %s", + ["nl"]="onbekend formaat %s", + ["no"]="ukjent format %s", + ["ro"]="format necunoscut %s", }, ["8"]={ - ["cs"]="styl -- definovan", - ["de"]="Stil -- definiert", - ["en"]="style -- defined", - ["fr"]="style -- défini", - ["it"]="stile -- definito", - ["nl"]="stijl -- gedefinieerd", - ["no"]="stil -- definert", - ["ro"]="stilul -- definit", + ["cs"]="styl %s definovan", + ["de"]="Stil %s definiert", + ["en"]="style %s defined", + ["fr"]="style %s défini", + ["it"]="stile %s definito", + ["nl"]="stijl %s gedefinieerd", + ["no"]="stil %s definert", + ["ro"]="stilul %s definit", }, ["files"]={ "font-ini.mkii", "font-ini.mkiv" }, ["title"]={ @@ -845,59 +791,59 @@ return { ["ro"]="corp de litere", }, }, - ["handlings"]={ - ["1"]={ - ["cs"]="font handling --", - ["de"]="Font Verarbeitung --", - ["en"]="font handling --", - ["fr"]="manipulation -- de police", - ["it"]="font handling --", - ["nl"]="font afhandeling --", - ["no"]="font handling --", - ["ro"]="font handling --", - }, - ["2"]={ - ["cs"]="font handling -- is loaded", - ["de"]="Font Verarbeitung -- ist geladen", - ["en"]="font handling -- is loaded", - ["fr"]="la manipulation -- de police est chargée", - ["it"]="font handling -- is loaded", - ["nl"]="font afhandeling -- wordt geladen", - ["no"]="font handling -- is loaded", - ["ro"]="font handling -- is loaded", - }, - ["3"]={ - ["cs"]="unknown font handling --", - ["de"]="unknown font handling --", - ["en"]="unknown font handling --", - ["fr"]="manipulation -- inconnue de police", - ["it"]="unknown font handling --", - ["nl"]="onbekende font afhandeling --", - ["no"]="unknown font handling --", - ["ro"]="unknown font handling --", - }, - ["files"]={ "hand-ini.mkii" }, - ["title"]={ - ["cs"]="handling", - ["de"]="handling", - ["en"]="handling", - ["fr"]="manipulation", - ["it"]="handling", - ["nl"]="handling", - ["no"]="handling", - ["ro"]="handling", - }, - }, +--~ ["handlings"]={ +--~ ["1"]={ +--~ ["cs"]="font handling %s", +--~ ["de"]="Font Verarbeitung %s", +--~ ["en"]="font handling %s", +--~ ["fr"]="manipulation %s de police", +--~ ["it"]="font handling %s", +--~ ["nl"]="font afhandeling %s", +--~ ["no"]="font handling %s", +--~ ["ro"]="font handling %s", +--~ }, +--~ ["2"]={ +--~ ["cs"]="font handling %s is loaded", +--~ ["de"]="Font Verarbeitung %s ist geladen", +--~ ["en"]="font handling %s is loaded", +--~ ["fr"]="la manipulation %s de police est chargée", +--~ ["it"]="font handling %s is loaded", +--~ ["nl"]="font afhandeling %s wordt geladen", +--~ ["no"]="font handling %s is loaded", +--~ ["ro"]="font handling %s is loaded", +--~ }, +--~ ["3"]={ +--~ ["cs"]="unknown font handling %s", +--~ ["de"]="unknown font handling %s", +--~ ["en"]="unknown font handling %s", +--~ ["fr"]="manipulation %s inconnue de police", +--~ ["it"]="unknown font handling %s", +--~ ["nl"]="onbekende font afhandeling %s", +--~ ["no"]="unknown font handling %s", +--~ ["ro"]="unknown font handling %s", +--~ }, +--~ ["files"]={ "hand-ini.mkii" }, +--~ ["title"]={ +--~ ["cs"]="handling", +--~ ["de"]="handling", +--~ ["en"]="handling", +--~ ["fr"]="manipulation", +--~ ["it"]="handling", +--~ ["nl"]="handling", +--~ ["no"]="handling", +--~ ["ro"]="handling", +--~ }, +--~ }, ["interactions"]={ ["1"]={ - ["cs"]="pomer -- x -- (s x v)", - ["de"]="Seitenverhaeltnis -- x -- (B x H)", - ["en"]="aspect ratio -- x -- (b x h)", - ["fr"]="ratio d'aspect -- x -- (b x h)", - ["it"]="rapporto -- x -- (b x a)", - ["nl"]="aspect ratio -- x -- (b x h)", - ["no"]="forholdstall -- x -- (b x h)", - ["ro"]="aspectul -- x -- (b x h)", + ["cs"]="pomer %s x %s (s x v)", + ["de"]="Seitenverhaeltnis %s x %s (B x H)", + ["en"]="aspect ratio %s x %s (b x h)", + ["fr"]="ratio d'aspect %s x %s (b x h)", + ["it"]="rapporto %s x %s (b x a)", + ["nl"]="aspect ratio %s x %s (b x h)", + ["no"]="forholdstall %s x %s (b x h)", + ["ro"]="aspectul %s x %s (b x h)", }, ["2"]={ ["cs"]="aktivni", @@ -910,14 +856,14 @@ return { ["ro"]="activ", }, ["21"]={ - ["cs"]="-- kod vlozen", - ["de"]="-- Code eingefuegt", - ["en"]="-- code inserted", - ["fr"]="-- code inseré", - ["it"]="codice -- inserito", - ["nl"]="-- code tussengevoegd", - ["no"]="-- kode satt inn / tilføyd", - ["ro"]="-- cod inserat", + ["cs"]="%s kod vlozen", + ["de"]="%s Code eingefuegt", + ["en"]="%s code inserted", + ["fr"]="%s code inseré", + ["it"]="codice %s inserito", + ["nl"]="%s code tussengevoegd", + ["no"]="%s kode satt inn / tilføyd", + ["ro"]="%s cod inserat", }, ["3"]={ ["cs"]="neaktivni", @@ -930,130 +876,130 @@ return { ["ro"]="inactiv", }, ["4"]={ - ["cs"]="zadna strankova synchronizace (--) v hmode", - ["de"]="keine Seitensynchronisation (--) im hmode", - ["en"]="no pagesynchronisation (--) in hmode", - ["fr"]="pas de synchronisation de page (--) dans le hmode", - ["it"]="sincronizzazione di pagina (--) non disponibile in hmode", - ["nl"]="geen paginasynchronisatie (--) in hmode", - ["no"]="ingen sidesynkronisering (--) i hmode", - ["ro"]="nu exista sincronizare pt. pagini (--) in hmode", + ["cs"]="zadna strankova synchronizace (%s) v hmode", + ["de"]="keine Seitensynchronisation (%s) im hmode", + ["en"]="no pagesynchronisation (%s) in hmode", + ["fr"]="pas de synchronisation de page (%s) dans le hmode", + ["it"]="sincronizzazione di pagina (%s) non disponibile in hmode", + ["nl"]="geen paginasynchronisatie (%s) in hmode", + ["no"]="ingen sidesynkronisering (%s) i hmode", + ["ro"]="nu exista sincronizare pt. pagini (%s) in hmode", }, ["5"]={ - ["cs"]="unknown attachment --", - ["de"]="unknown attachment --", - ["en"]="unknown attachment --", - ["fr"]="le fichier joint -- est inconnu", - ["it"]="unknown attachment --", - ["nl"]="onbekend attachment --", - ["no"]="unknown attachment --", - ["ro"]="unknown attachment --", + ["cs"]="unknown attachment %s", + ["de"]="unknown attachment %s", + ["en"]="unknown attachment %s", + ["fr"]="le fichier joint %s est inconnu", + ["it"]="unknown attachment %s", + ["nl"]="onbekend attachment %s", + ["no"]="unknown attachment %s", + ["ro"]="unknown attachment %s", }, ["6"]={ - ["cs"]="attachment file -- does not exist", - ["de"]="attachment file -- does not exist", - ["en"]="attachment file -- does not exist", - ["fr"]="le fichier joint -- n'existe pas", - ["it"]="attachment file -- does not exist", - ["nl"]="attachment file -- bestaat niet", - ["no"]="attachment file -- does not exist", - ["ro"]="attachment file -- does not exist", + ["cs"]="attachment file %s does not exist", + ["de"]="attachment file %s does not exist", + ["en"]="attachment file %s does not exist", + ["fr"]="le fichier joint %s n'existe pas", + ["it"]="attachment file %s does not exist", + ["nl"]="attachment file %s bestaat niet", + ["no"]="attachment file %s does not exist", + ["ro"]="attachment file %s does not exist", }, ["files"]={ "core-int.tex", "spec-ini.tex" }, ["title"]={ ["cs"]="interakce", - ["de"]="Interaktion", - ["en"]="interaction", - ["fr"]="interaction", + ["de"]="Interaktions", + ["en"]="interactions", + ["fr"]="interactions", ["it"]="interazione", - ["nl"]="interactie", + ["nl"]="interacties", ["no"]="interaksjon", ["ro"]="interactiuni", }, }, - ["javascript"]={ - ["1"]={ - ["cs"]="nacita se soubor skriptu --", - ["de"]="Lade Scriptdatei --", - ["en"]="loading script set --", - ["fr"]="chargement du jeu de script --", - ["it"]="caricamento dello script set --", - ["nl"]="script set -- wordt geladen", - ["no"]="leser inn scriptsett --", - ["ro"]="se incarca scriptul --", - }, - ["2"]={ - ["cs"]="neznama preambule --", - ["de"]="unbekannte Preamble --", - ["en"]="unknown preamble --", - ["fr"]="préambule -- inconnu", - ["it"]="preambolo sconosciuto --", - ["nl"]="onbekende preamble --", - ["no"]="ukjent 'preamble' --", - ["ro"]="preambul necunoscut --", - }, - ["files"]={ "java-ini.tex" }, - ["title"]={ - ["cs"]="javascript", - ["de"]="javascript", - ["en"]="javascript", - ["fr"]="javascript", - ["it"]="javascript", - ["nl"]="javascript", - ["no"]="javascript", - ["ro"]="javascript", - }, - }, +--~ ["javascripts"]={ +--~ ["1"]={ +--~ ["cs"]="nacita se soubor skriptu %s", +--~ ["de"]="Lade Scriptdatei %s", +--~ ["en"]="loading script set %s", +--~ ["fr"]="chargement du jeu de script %s", +--~ ["it"]="caricamento dello script set %s", +--~ ["nl"]="script set %s wordt geladen", +--~ ["no"]="leser inn scriptsett %s", +--~ ["ro"]="se incarca scriptul %s", +--~ }, +--~ ["2"]={ +--~ ["cs"]="neznama preambule %s", +--~ ["de"]="unbekannte Preamble %s", +--~ ["en"]="unknown preamble %s", +--~ ["fr"]="préambule %s inconnu", +--~ ["it"]="preambolo sconosciuto %s", +--~ ["nl"]="onbekende preamble %s", +--~ ["no"]="ukjent 'preamble' %s", +--~ ["ro"]="preambul necunoscut %s", +--~ }, +--~ ["files"]={ "java-ini.tex" }, +--~ ["title"]={ +--~ ["cs"]="javascripts", +--~ ["de"]="javascripts", +--~ ["en"]="javascripts", +--~ ["fr"]="javascripts", +--~ ["it"]="javascripts", +--~ ["nl"]="javascripts", +--~ ["no"]="javascripts", +--~ ["ro"]="javascripts", +--~ }, +--~ }, ["layouts"]={ ["1"]={ - ["cs"]="vyska textu prizpusobena s -- na strane --", - ["de"]="Texthoehe angepasst mit -- auf Seite --", - ["en"]="textheight adapted with -- at page --", - ["fr"]="hauteurtexte adaptée avec -- à la page --", - ["it"]="altezza del testo adattata con -- a pagina --", - ["nl"]="teksthoogte aangepast met -- op pagina --", - ["no"]="teksthøyde tilpasset med -- på side --", - ["ro"]="textheight adaptat cu -- la pagina --", + ["cs"]="vyska textu prizpusobena s %s na strane %s", + ["de"]="Texthoehe angepasst mit %s auf Seite %s", + ["en"]="textheight adapted with %s at page %s", + ["fr"]="hauteurtexte adaptée avec %s à la page %s", + ["it"]="altezza del testo adattata con %s a pagina %s", + ["nl"]="teksthoogte aangepast met %s op pagina %s", + ["no"]="teksthøyde tilpasset med %s på side %s", + ["ro"]="textheight adaptat cu %s la pagina %s", }, ["10"]={ - ["cs"]="-- a -- nedava dohromady 1.0", - ["de"]="-- und -- ergeben zusammen nicht 1.0", - ["en"]="-- and -- don't add up to 1.0", - ["fr"]="-- et -- ne sont pas ajoutés à 1.0", - ["it"]="-- e -- non sommano a 1.0", - ["nl"]="-- en -- tellen niet op tot 1.0", - ["no"]="-- og -- er ikke 1.0 til sammen", - ["ro"]="-- si -- nu se adauga pana la 1.0", + ["cs"]="%s a %s nedava dohromady 1.0", + ["de"]="%s und %s ergeben zusammen nicht 1.0", + ["en"]="%s and %s don't add up to 1.0", + ["fr"]="%s et %s ne sont pas ajoutés à 1.0", + ["it"]="%s e %s non sommano a 1.0", + ["nl"]="%s en %s tellen niet op tot 1.0", + ["no"]="%s og %s er ikke 1.0 til sammen", + ["ro"]="%s si %s nu se adauga pana la 1.0", }, ["11"]={ - ["cs"]="svisla mezera -- neni povolena v pevnem radkovem rejstriku", - ["de"]="Zwischenraum -- nicht im Grittermoduserlau", - ["en"]="spacing -- not permitted in gridmode", - ["fr"]="espacement -- non permis en modegrille", - ["it"]="spaziatura -- non permessa in modo griglia", - ["nl"]="interlinie -- niet toegestaan in gridmode", - ["no"]="mellomrom -- ikke tillatt i gridmodus", - ["ro"]="spatierea -- nu este permisa in gridmode", + ["cs"]="svisla mezera %s neni povolena v pevnem radkovem rejstriku", + ["de"]="Zwischenraum %s nicht im Grittermoduserlau", + ["en"]="spacing %s not permitted in gridmode", + ["fr"]="espacement %s non permis en modegrille", + ["it"]="spaziatura %s non permessa in modo griglia", + ["nl"]="interlinie %s niet toegestaan in gridmode", + ["no"]="mellomrom %s ikke tillatt i gridmodus", + ["ro"]="spatierea %s nu este permisa in gridmode", }, ["2"]={ - ["cs"]="-- krat odlozeny text umisten", - ["de"]="-- mal verschobener Text plaziert", - ["en"]="-- times postponed text placed", - ["fr"]="-- times postponed text placed", - ["it"]="posizionato testo posticipato -- volte", - ["nl"]="-- maal uitgestelde tekst tussengevoegd", - ["no"]="-- ganger forskjøvet tekst plassert", - ["ro"]="textul amanat de -- ori a fost plasat", + ["cs"]="%s krat odlozeny text umisten", + ["de"]="%s mal verschobener Text plaziert", + ["en"]="%s times postponed text placed", + ["fr"]="%s times postponed text placed", + ["it"]="posizionato testo posticipato %s volte", + ["nl"]="%s maal uitgestelde tekst tussengevoegd", + ["no"]="%s ganger forskjøvet tekst plassert", + ["ro"]="textul amanat de %s ori a fost plasat", }, ["3"]={ - ["cs"]="-- krat text odlozen", - ["de"]="-- mal Text verschoben", - ["en"]="-- times text postponed", - ["fr"]="-- times text postponed", - ["it"]="testo posticipato -- volte", - ["nl"]="-- maal tekst plaatsen uitstellen", - ["no"]="-- ganger tekst forskjøvet", - ["ro"]="textul amanat de -- ori", + ["cs"]="%s krat text odlozen", + ["de"]="%s mal Text verschoben", + ["en"]="%s times text postponed", + ["fr"]="%s times text postponed", + ["it"]="testo posticipato %s volte", + ["nl"]="%s maal tekst plaatsen uitstellen", + ["no"]="%s ganger tekst forskjøvet", + ["ro"]="textul amanat de %s ori", }, ["4"]={ ["cs"]="okrajove bloky aktivni", @@ -1076,14 +1022,14 @@ return { ["ro"]="blocuri marginale inactive", }, ["6"]={ - ["cs"]="sada stran -- zpracovana (velikost --)", - ["de"]="Unterseitenfolge -- verarbeitet (Groesse --)", - ["en"]="subpage set -- processed (size --)", - ["fr"]="jeu de souspage -- traité (taille --)", - ["it"]="gruppo di sottopagine -- elaborato (dimensione --)", - ["nl"]="subpagina reeks -- verwerkt (aantal --)", - ["no"]="delside sett -- behandlet (størrelse --)", - ["ro"]="setul -- de subpagini procesat (dimensiunea --)", + ["cs"]="sada stran %s zpracovana (velikost %s)", + ["de"]="Unterseitenfolge %s verarbeitet (Groesse %s)", + ["en"]="subpage set %s processed (size %s)", + ["fr"]="jeu de souspage %s traité (taille %s)", + ["it"]="gruppo di sottopagine %s elaborato (dimensione %s)", + ["nl"]="subpagina reeks %s verwerkt (aantal %s)", + ["no"]="delside sett %s behandlet (størrelse %s)", + ["ro"]="setul %s de subpagini procesat (dimensiunea %s)", }, ["7"]={ ["cs"]="pocita se misto pro logo", @@ -1106,150 +1052,150 @@ return { ["ro"]="se calculeaza fundalurile", }, ["9"]={ - ["cs"]="aktualne ne vice nez -- urovne/urovni vyctu", - ["de"]="z.Z. nicht mehr als -- Ebenen in Aufzaehlungen", - ["en"]="currently no more than -- levels in itemizations", - ["fr"]="pas plus de -- niveaux pour l'instant dans les élémentarisations", - ["it"]="attualmente non più di -- livelli di elencazione", - ["nl"]="momenteel maximaal -- niveaus in opsommingen", - ["no"]="for øyeblikket maksimalt -- nivåer i opplisting", - ["ro"]="acum nu se supota mai mult de -- nivele de adancime la iteratii", + ["cs"]="aktualne ne vice nez %s urovne/urovni vyctu", + ["de"]="z.Z. nicht mehr als %s Ebenen in Aufzaehlungen", + ["en"]="currently no more than %s levels in itemizations", + ["fr"]="pas plus de %s niveaux pour l'instant dans les élémentarisations", + ["it"]="attualmente non più di %s livelli di elencazione", + ["nl"]="momenteel maximaal %s niveaus in opsommingen", + ["no"]="for øyeblikket maksimalt %s nivåer i opplisting", + ["ro"]="acum nu se supota mai mult de %s nivele de adancime la iteratii", }, ["files"]={ "core-itm.tex", "page-bck.mkii", "page-bck.mkiv", "page-ini.tex", "page-log.tex", "strc-itm.tex" }, ["title"]={ - ["cs"]="layout", - ["de"]="Layout", - ["en"]="layout", + ["cs"]="layouts", + ["de"]="Layouts", + ["en"]="layouts", ["fr"]="calque", - ["it"]="layout", - ["nl"]="layout", - ["no"]="layout", + ["it"]="layouts", + ["nl"]="layouts", + ["no"]="layouts", ["ro"]="aranjamente", }, }, - ["linguals"]={ + ["languages"]={ ["1"]={ - ["cs"]="vzory -- pro -- nacteny (n=--,e=--,m=--)", - ["de"]="Trennmuster -- fuer -- geladen (n=--,e=--,m=--)", - ["en"]="patterns -- for -- loaded (n=--,e=--,m=--)", - ["fr"]="les motifs -- pour -- sont chargés (n=--,e=--,m=--)", - ["it"]="schemi -- per -- caricati (n=--,e=--,m=--)", - ["nl"]="afbreekpatronen -- voor -- geladen (n=--,e=--,m=--)", - ["no"]="orddelingsmønster -- for -- er lest inn (n=--,e=--,m=--)", - ["ro"]="sablonul -- pentru -- s-a incarcat (n=--,e=--,m=--)", + ["cs"]="vzory %s pro %s nacteny (n=%s,e=%s,m=%s)", + ["de"]="Trennmuster %s fuer %s geladen (n=%s,e=%s,m=%s)", + ["en"]="patterns %s for %s loaded (n=%s,e=%s,m=%s)", + ["fr"]="les motifs %s pour %s sont chargés (n=%s,e=%s,m=%s)", + ["it"]="schemi %s per %s caricati (n=%s,e=%s,m=%s)", + ["nl"]="afbreekpatronen %s voor %s geladen (n=%s,e=%s,m=%s)", + ["no"]="orddelingsmønster %s for %s er lest inn (n=%s,e=%s,m=%s)", + ["ro"]="sablonul %s pentru %s s-a incarcat (n=%s,e=%s,m=%s)", }, ["10"]={ - ["cs"]="vzory --nacteny", - ["de"]="Trennmuster --geladen", - ["en"]="patterns --loaded", - ["fr"]="motifs -- chargés", - ["it"]="schemi -- caricati", - ["nl"]="patronen --geladen", - ["no"]="orddelingsmønster -- er lest inn", - ["ro"]="sabloanele -- incarcate", + ["cs"]="vzory %s nacteny", + ["de"]="Trennmuster %s geladen", + ["en"]="patterns %s loaded", + ["fr"]="motifs %s chargés", + ["it"]="schemi %s caricati", + ["nl"]="patronen %sgeladen", + ["no"]="orddelingsmønster %s er lest inn", + ["ro"]="sabloanele %s incarcate", }, ["2"]={ - ["cs"]="zadne vzory -- pro -- (n=--,e=--,m=--) (--,--)", - ["de"]="Keine Trennmuster -- fuer -- (n=--,e=--,m=--) (--,--)", - ["en"]="no patterns -- for -- (n=--,e=--,m=--) (--,--)", - ["fr"]="pas de motifs -- pour -- (n=--,e=--,m=--) (--,--)", - ["it"]="niente schemi -- per -- (n=--,e=--,m=--) (--,--)", - ["nl"]="geen afbreekpatronen -- voor -- (n=--,e=--,m=--) (--,--)", - ["no"]="ingen orddelingsmønster -- for -- (n=--,e=--,m=--) (--,--)", - ["ro"]="nu exista sabloane -- pentru -- (n=--,e=--,m=--) (--,--)", + ["cs"]="zadne vzory %s pro %s (n=%s,e=%s,m=%s) (%s,%s)", + ["de"]="Keine Trennmuster %s fuer %s (n=%s,e=%s,m=%s) (%s,%s)", + ["en"]="no patterns %s for %s (n=%s,e=%s,m=%s) (%s,%s)", + ["fr"]="pas de motifs %s pour %s (n=%s,e=%s,m=%s) (%s,%s)", + ["it"]="niente schemi %s per %s (n=%s,e=%s,m=%s) (%s,%s)", + ["nl"]="geen afbreekpatronen %s voor %s (n=%s,e=%s,m=%s) (%s,%s)", + ["no"]="ingen orddelingsmønster %s for %s (n=%s,e=%s,m=%s) (%s,%s)", + ["ro"]="nu exista sabloane %s pentru %s (n=%s,e=%s,m=%s) (%s,%s)", }, ["3"]={ - ["cs"]="deleni slov -- pro -- nacteno (n=--,e=--,m=--)", - ["de"]="Trenndefinitionen -- fuer -- geladen (n=--,e=--,m=--)", - ["en"]="hyphenations -- for -- loaded (n=--,e=--,m=--)", - ["fr"]="hyphenations -- pour -- chargés (n=--,e=--,m=--)", - ["it"]="sillabazione -- per -- caricata (n=--,e=--,m=--)", - ["nl"]="afbreekdefinities -- voor -- geladen (n=--,e=--,m=--)", - ["no"]="orddelingsdefinisjon -- for -- er lest inn (n=--,e=--,m=--)", - ["ro"]="despartirea in silabe -- pentru -- s-a incarcat (n=--,e=--,m=--)", + ["cs"]="deleni slov %s pro %s nacteno (n=%s,e=%s,m=%s)", + ["de"]="Trenndefinitionen %s fuer %s geladen (n=%s,e=%s,m=%s)", + ["en"]="hyphenations %s for %s loaded (n=%s,e=%s,m=%s)", + ["fr"]="hyphenations %s pour %s chargés (n=%s,e=%s,m=%s)", + ["it"]="sillabazione %s per %s caricata (n=%s,e=%s,m=%s)", + ["nl"]="afbreekdefinities %s voor %s geladen (n=%s,e=%s,m=%s)", + ["no"]="orddelingsdefinisjon %s for %s er lest inn (n=%s,e=%s,m=%s)", + ["ro"]="despartirea in silabe %s pentru %s s-a incarcat (n=%s,e=%s,m=%s)", }, ["4"]={ - ["cs"]="zadne deleni slov -- pro -- (n=--,e=--,m=--)", - ["de"]="Keine Trenndefinitionen -- fuer -- (n=--,e=--,m=--)", - ["en"]="no hyphenations -- for -- (n=--,e=--,m=--)", - ["fr"]="pas d'hyphenations -- pour -- (n=--,e=--,m=--)", - ["it"]="niente sillabazione -- per -- (n=--,e=--,m=--)", - ["nl"]="geen afbreekdefinities -- voor -- (n=--,e=--,m=--)", - ["no"]="ingen orddelingsdefinisjon -- for -- (n=--,e=--,m=--)", - ["ro"]="nu exista despartire in silabe -- pentru -- (n=--,e=--,m=--)", + ["cs"]="zadne deleni slov %s pro %s (n=%s,e=%s,m=%s)", + ["de"]="Keine Trenndefinitionen %s fuer %s (n=%s,e=%s,m=%s)", + ["en"]="no hyphenations %s for %s (n=%s,e=%s,m=%s)", + ["fr"]="pas d'hyphenations %s pour %s (n=%s,e=%s,m=%s)", + ["it"]="niente sillabazione %s per %s (n=%s,e=%s,m=%s)", + ["nl"]="geen afbreekdefinities %s voor %s (n=%s,e=%s,m=%s)", + ["no"]="ingen orddelingsdefinisjon %s for %s (n=%s,e=%s,m=%s)", + ["ro"]="nu exista despartire in silabe %s pentru %s (n=%s,e=%s,m=%s)", }, ["5"]={ - ["cs"]="vzory pro -- nenacteny", - ["de"]="Trennmuster fuer -- nicht geladen", - ["en"]="patterns for -- not loaded", - ["fr"]="les motifs pour -- ne sont pas chargés", - ["it"]="schemi per -- non caricati", - ["nl"]="afbreekpatronen voor -- niet geladen", - ["no"]="orddelingsmønster for -- er ikke lest inn", - ["ro"]="sabloanele pentru -- nu sunt incarcate", + ["cs"]="vzory pro %s nenacteny", + ["de"]="Trennmuster fuer %s nicht geladen", + ["en"]="patterns for %s not loaded", + ["fr"]="les motifs pour %s ne sont pas chargés", + ["it"]="schemi per %s non caricati", + ["nl"]="afbreekpatronen voor %s niet geladen", + ["no"]="orddelingsmønster for %s er ikke lest inn", + ["ro"]="sabloanele pentru %s nu sunt incarcate", }, ["6"]={ - ["cs"]="jazyk -- neni definovan", - ["de"]="Sprache -- ist undefiniert", - ["en"]="language -- is undefined", - ["fr"]="langue -- non définie", - ["it"]="lingua -- non definita", - ["nl"]="taal -- is niet gedefinieerd", - ["no"]="spràk -- er udefinert", - ["ro"]="limba -- nu este definita", + ["cs"]="jazyk %s neni definovan", + ["de"]="Sprache %s ist undefiniert", + ["en"]="language %s is undefined", + ["fr"]="langue %s non définie", + ["it"]="lingua %s non definita", + ["nl"]="taal %s is niet gedefinieerd", + ["no"]="spràk %s er udefinert", + ["ro"]="limba %s nu este definita", }, ["7"]={ - ["cs"]="specificke volby jazyka [--] zavadeji -- (zavlecenou) mezeru", - ["de"]="Sprachenspezifische Option [--] fuegt eine Luecke von -- ein", - ["en"]="language specific options [--] introduce a -- skip", - ["fr"]="les options spécifiques de langue [--] introduisent un -- saut", - ["it"]="opzioni specifiche per la lingua [--] introducono un salto --", - ["nl"]="taal specifieke opties [--] introduceren een skip van --", - ["no"]="spràk spesifikk opsjon [--] introduserer et -- hopp", - ["ro"]="optiunile specifice ale limbii [--] introduc un spatiu --", + ["cs"]="specificke volby jazyka [%s] zavadeji %s (zavlecenou) mezeru", + ["de"]="Sprachenspezifische Option [%s] fuegt eine Luecke von %s ein", + ["en"]="language specific options [%s] introduce a %s skip", + ["fr"]="les options spécifiques de langue [%s] introduisent un %s saut", + ["it"]="opzioni specifiche per la lingua [%s] introducono un salto %s", + ["nl"]="taal specifieke opties [%s] introduceren een skip van %s", + ["no"]="spràk spesifikk opsjon [%s] introduserer et %s hopp", + ["ro"]="optiunile specifice ale limbii [%s] introduc un spatiu %s", }, ["8"]={ - ["cs"]="specificke volby jazyka [--] bez mezer pripojeny", - ["de"]="Sprachenspezifische Option [--] nahtlos hinzugefuegt", - ["en"]="language specific options [--] seamless appended", - ["fr"]="les options spécifiques de langue [--] sont ajoutés en douceur", - ["it"]="opzioni specifiche per la lingua [--] aggiunte trasparentemente", - ["nl"]="taal specifieke opties [--] naadloos toegevoegd", - ["no"]="spràk spesifikk opsjon [--] problemfritt tilføyd", - ["ro"]="optiunile specifice ale limbii [--] adaugate", + ["cs"]="specificke volby jazyka [%s] bez mezer pripojeny", + ["de"]="Sprachenspezifische Option [%s] nahtlos hinzugefuegt", + ["en"]="language specific options [%s] seamless appended", + ["fr"]="les options spécifiques de langue [%s] sont ajoutés en douceur", + ["it"]="opzioni specifiche per la lingua [%s] aggiunte trasparentemente", + ["nl"]="taal specifieke opties [%s] naadloos toegevoegd", + ["no"]="spràk spesifikk opsjon [%s] problemfritt tilføyd", + ["ro"]="optiunile specifice ale limbii [%s] adaugate", }, ["9"]={ - ["cs"]="language -- is active", - ["de"]="Sprache -- ist aktiv", - ["en"]="language -- is active", - ["fr"]="la langue -- est active", - ["it"]="lingua -- attiva", - ["nl"]="taal -- is actief", - ["no"]="spràk -- er aktivt", - ["ro"]="limba -- este activa", + ["cs"]="language %s is active", + ["de"]="Sprache %s ist aktiv", + ["en"]="language %s is active", + ["fr"]="la langue %s est active", + ["it"]="lingua %s attiva", + ["nl"]="taal %s is actief", + ["no"]="spràk %s er aktivt", + ["ro"]="limba %s este activa", }, ["files"]={ "lang-ini.mkii", "lang-ini.mkiv" }, ["title"]={ ["cs"]="jazyky", ["de"]="Sprache", - ["en"]="language", + ["en"]="languages", ["fr"]="langue", ["it"]="lingua", - ["nl"]="taal", + ["nl"]="talen", ["no"]="sprøk", ["ro"]="limbi", }, }, ["metapost"]={ ["1"]={ - ["cs"]="loading metapost library --", - ["de"]="Lade metapost Bibliothek --", - ["en"]="loading metapost library --", - ["fr"]="chargement de la bibliothèque metapost --", - ["it"]="caricamento della libreria metapost --", - ["nl"]="metapost bibliotheek -- wordt geladen", - ["no"]="metapost bibliotek -- blir lest inn", - ["ro"]="se incarca biblioteca metapost --", + ["cs"]="loading metapost library %s", + ["de"]="Lade metapost Bibliothek %s", + ["en"]="loading metapost library %s", + ["fr"]="chargement de la bibliothèque metapost %s", + ["it"]="caricamento della libreria metapost %s", + ["nl"]="metapost bibliotheek %s wordt geladen", + ["no"]="metapost bibliotek %s blir lest inn", + ["ro"]="se incarca biblioteca metapost %s", }, ["files"]={ "meta-ini.mkii", "meta-ini.mkiv" }, ["title"]={ @@ -1265,109 +1211,109 @@ return { }, ["references"]={ ["1"]={ - ["cs"]="neznama reference --", - ["de"]="unbekannte Referenz --", - ["en"]="unknown reference --", - ["fr"]="réference -- inconnue", - ["it"]="riferimento sconosciuto --", - ["nl"]="onbekende verwijzing --", - ["no"]="ukjent referanse --", - ["ro"]="referinta necunoscuta --", + ["cs"]="neznama reference %s", + ["de"]="unbekannte Referenz %s", + ["en"]="unknown reference %s", + ["fr"]="réference %s inconnue", + ["it"]="riferimento sconosciuto %s", + ["nl"]="onbekende verwijzing %s", + ["no"]="ukjent referanse %s", + ["ro"]="referinta necunoscuta %s", }, ["2"]={ - ["cs"]="duplicitni reference -- na strane --", - ["de"]="doppelte Referenz -- auf Seite --", - ["en"]="duplicate reference -- on page --", - ["fr"]="réference -- dupliquée à la page --", - ["it"]="riferimento duplicato -- a pagina --", - ["nl"]="dubbele verwijzing -- op pagina --", - ["no"]="duplikat referanse -- pø side --", - ["ro"]="referinta duplicat -- la pagina --", + ["cs"]="duplicitni reference %s na strane %s", + ["de"]="doppelte Referenz %s auf Seite %s", + ["en"]="duplicate reference %s on page %s", + ["fr"]="réference %s dupliquée à la page %s", + ["it"]="riferimento duplicato %s a pagina %s", + ["nl"]="dubbele verwijzing %s op pagina %s", + ["no"]="duplikat referanse %s pø side %s", + ["ro"]="referinta duplicat %s la pagina %s", }, ["21"]={ - ["cs"]="dokument -- nacten", - ["de"]="Dokument -- geladen", - ["en"]="document -- loaded", - ["fr"]="document -- chargé", - ["it"]="documento -- caricato", - ["nl"]="document -- geladen", - ["no"]="dokument -- er lest inn", - ["ro"]="documentul -- este incarcat", + ["cs"]="dokument %s nacten", + ["de"]="Dokument %s geladen", + ["en"]="document %s loaded", + ["fr"]="document %s chargé", + ["it"]="documento %s caricato", + ["nl"]="document %s geladen", + ["no"]="dokument %s er lest inn", + ["ro"]="documentul %s este incarcat", }, ["22"]={ - ["cs"]="dokument -- neni interaktivni", - ["de"]="Dokument -- ist nicht aktiv", - ["en"]="document -- is not interactive", - ["fr"]="le document -- n'est pas interactif", - ["it"]="il documento -- non ø interattivo", - ["nl"]="document -- is niet interactief", - ["no"]="dokument -- er ikke interaktivt", - ["ro"]="documentul -- nu este interactiv", + ["cs"]="dokument %s neni interaktivni", + ["de"]="Dokument %s ist nicht aktiv", + ["en"]="document %s is not interactive", + ["fr"]="le document %s n'est pas interactif", + ["it"]="il documento %s non ø interattivo", + ["nl"]="document %s is niet interactief", + ["no"]="dokument %s er ikke interaktivt", + ["ro"]="documentul %s nu este interactiv", }, ["23"]={ - ["cs"]="obskurni (nejasna) reference -- (prefix=--)", - ["de"]="Obskure Referenz -- (Prefix=--)", - ["en"]="obscure reference -- (prefix=--)", - ["fr"]="reference -- indéterminé (préfixe=--)", - ["it"]="riferimento ambiguo -- (prefisso=--)", - ["nl"]="onduidelijke verwijzing -- (prefix=--)", - ["no"]="obskur referanse -- (Prefix=--)", - ["ro"]="referinta obscura -- (prefix=--)", + ["cs"]="obskurni (nejasna) reference %s (prefix=%s)", + ["de"]="Obskure Referenz %s (Prefix=%s)", + ["en"]="obscure reference %s (prefix=%s)", + ["fr"]="reference %s indéterminé (préfixe=%s)", + ["it"]="riferimento ambiguo %s (prefisso=%s)", + ["nl"]="onduidelijke verwijzing %s (prefix=%s)", + ["no"]="obskur referanse %s (Prefix=%s)", + ["ro"]="referinta obscura %s (prefix=%s)", }, ["24"]={ - ["en"]="references from document '--' are not exported", + ["en"]="references from document '%s' are not exported", }, ["25"]={ - ["en"]="references from document '--' are not imported (export again)", + ["en"]="references from document '%s' are not imported (export again)", }, ["26"]={ - ["en"]="references from document '--' are imported", + ["en"]="references from document '%s' are imported", }, ["3"]={ - ["cs"]="neznamy typ reference --", - ["de"]="unbekannte Referenz Typ --", - ["en"]="unknown reference type --", - ["fr"]="type -- de réference inconnu", - ["it"]="riferimento di tipo sconosciuto --", - ["nl"]="type verwijzing -- onbekend", - ["no"]="ukjent referansetype --", - ["ro"]="tip necunoscut de referinta --", + ["cs"]="neznamy typ reference %s", + ["de"]="unbekannte Referenz Typ %s", + ["en"]="unknown reference type %s", + ["fr"]="type %s de réference inconnu", + ["it"]="riferimento di tipo sconosciuto %s", + ["nl"]="type verwijzing %s onbekend", + ["no"]="ukjent referansetype %s", + ["ro"]="tip necunoscut de referinta %s", }, ["30"]={ - ["cs"]="neznamy objekt --", - ["de"]="unbekanntes Object --", - ["en"]="unknown object --", - ["fr"]="objet -- inconnu", - ["it"]="oggetto sconosciuto --", - ["nl"]="onbekend object --", - ["no"]="ukjent objekt --", - ["ro"]="obiect necunoscut --", + ["cs"]="neznamy objekt %s", + ["de"]="unbekanntes Object %s", + ["en"]="unknown object %s", + ["fr"]="objet %s inconnu", + ["it"]="oggetto sconosciuto %s", + ["nl"]="onbekend object %s", + ["no"]="ukjent objekt %s", + ["ro"]="obiect necunoscut %s", }, ["31"]={ - ["cs"]="duplicitni object --", - ["de"]="doppeltes Object --", - ["en"]="duplicate object --", - ["fr"]="objet -- dupliqué", - ["it"]="oggetto duplicato --", - ["nl"]="dubbel object --", - ["no"]="duplikat objekt --", - ["ro"]="obiect duplicat --", + ["cs"]="duplicitni object %s", + ["de"]="doppeltes Object %s", + ["en"]="duplicate object %s", + ["fr"]="objet %s dupliqué", + ["it"]="oggetto duplicato %s", + ["nl"]="dubbel object %s", + ["no"]="duplikat objekt %s", + ["ro"]="obiect duplicat %s", }, ["4"]={ - ["cs"]="nedovolena reference --", - ["de"]="illegale Referenz --", - ["en"]="illegal reference --", - ["fr"]="réference -- inconnue", - ["it"]="riferimento illecito --", - ["nl"]="verboden verwijzing --", - ["no"]="ulovlig referanse --", - ["ro"]="referinta eronata --", + ["cs"]="nedovolena reference %s", + ["de"]="illegale Referenz %s", + ["en"]="illegal reference %s", + ["fr"]="réference %s inconnue", + ["it"]="riferimento illecito %s", + ["nl"]="verboden verwijzing %s", + ["no"]="ulovlig referanse %s", + ["ro"]="referinta eronata %s", }, ["5"]={ - ["en"]="number of unknown references: --", + ["en"]="number of unknown references: %s", }, ["6"]={ - ["en"]="number of illegal references: --", + ["en"]="number of illegal references: %s", }, ["files"]={ "core-obj.tex", "core-ref.tex", "strc-ref.tex" }, ["title"]={ @@ -1381,175 +1327,92 @@ return { ["ro"]="referinte", }, }, - ["regimes"]={ - ["1"]={ - ["cs"]="kodovani --", - ["de"]="Kodierung --", - ["en"]="regime --", - ["fr"]="encodage --", - ["it"]="codifica --", - ["nl"]="regime --", - ["no"]="koding --", - ["ro"]="codificarea --", - }, - ["2"]={ - ["cs"]="je nacteno kodovani --", - ["de"]="Kodierung -- ist geladen", - ["en"]="regime -- is loaded", - ["fr"]="l'encodage -- est chargé", - ["it"]="codifica -- caricata", - ["nl"]="regime -- wordt geladen", - ["no"]="koding -- er lest inn", - ["ro"]="codificarea -- este Encarcata", - }, - ["3"]={ - ["cs"]="nezname kodovani --", - ["de"]="Unbekannte Kodierung --", - ["en"]="unknown regime --", - ["fr"]="encodage -- inconnu", - ["it"]="codifica sconosciuta --", - ["nl"]="onbekend regime --", - ["no"]="ukjent koding --", - ["ro"]="codificarea -- este necunoscuta", - }, - ["files"]={ "regi-ini.mkii" }, - ["title"]={ - ["cs"]="kodovani", - ["de"]="Kodierung", - ["en"]="regime", - ["fr"]="encodage", - ["it"]="codifica", - ["nl"]="regime", - ["no"]="koding", - ["ro"]="codificari", - }, - }, - ["specials"]={ - ["1"]={ - ["cs"]="-- nacteno", - ["de"]="-- geladen", - ["en"]="-- loaded", - ["fr"]="-- chargé", - ["it"]="-- caricato", - ["nl"]="-- geladen", - ["no"]="-- er lest inn", - ["ro"]="-- incarcat", - }, - ["2"]={ - ["cs"]="neni dovoleno hlubsi zanoreni --", - ["de"]="keine tiefere Verschachtelung erlaubt --", - ["en"]="no deeper nesting is permitted --", - ["fr"]="pas d'imbracations plus profondes ne sont permises --", - ["it"]="non ø permesso un annidamento maggiore --", - ["nl"]="verdere nesting is niet toegestaan --", - ["no"]="dypere 'nesting' er ikke tillatt --", - ["ro"]="nu este permis un nivel de imbricare mai mare --", - }, - ["3"]={ - ["cs"]="-- je resetovano", - ["de"]="-- ist zurueckgesetzt", - ["en"]="-- is reset", - ["fr"]="-- est remis à zéro", - ["it"]="-- reimpostato", - ["nl"]="-- gereset", - ["no"]="-- er tilbakestilt", - ["ro"]="-- s-a resetat", - }, - ["4"]={ - ["cs"]="prikaz -- neexistuje", - ["de"]="Befehl -- existiert nicht", - ["en"]="command -- does not exist", - ["fr"]="la commande -- n'existe pas", - ["it"]="il comando -- non esiste", - ["nl"]="commando -- bestaat niet", - ["no"]="kommando -- eksisterer ikke", - ["ro"]="comanda -- nu exista", - }, - ["5"]={ - ["cs"]="nacita se definicni soubor --", - ["de"]="lade Definitionsdatei --", - ["en"]="loading definition file --", - ["fr"]="chargement du fichier de définition --", - ["it"]="caricamento del file di definizione --", - ["nl"]="definitiefile -- wordt geladen", - ["no"]="leser inn definisjonsfil for --", - ["ro"]="se incarca fisierul de definitii --", - }, - ["6"]={ - ["cs"]="zanoreni neni dovoleno", - ["de"]="Verschachtelung nicht erlaubt", - ["en"]="nesting is not permitted", - ["fr"]="l'imbrication n'est pas permise", - ["it"]="annidamento non permesso", - ["nl"]="nesting is niet toegestaan", - ["no"]="'nesting' er ikke tillatt", - ["ro"]="imbricarea nu este permisa", - }, - ["7"]={ - ["cs"]="neznamy ovladac (driver) --", - ["de"]="unbekante Driver --", - ["en"]="unknown driver --", - ["fr"]="pilote -- inconnu", - ["it"]="driver sconosciuto --", - ["nl"]="onbekende driver --", - ["no"]="ukjent driver --", - ["ro"]="driver necunoscut --", - }, - ["files"]={ "spec-ini.tex" }, - ["title"]={ - ["cs"]="speciality", - ["de"]="spezielles", - ["en"]="specials", - ["fr"]="specials", - ["it"]="specialitø", - ["nl"]="specials", - ["no"]="specials", - ["ro"]="specials", - }, - }, +--~ ["regimes"]={ +--~ ["1"]={ +--~ ["cs"]="kodovani %s", +--~ ["de"]="Kodierung %s", +--~ ["en"]="regime %s", +--~ ["fr"]="encodage %s", +--~ ["it"]="codifica %s", +--~ ["nl"]="regime %s", +--~ ["no"]="koding %s", +--~ ["ro"]="codificarea %s", +--~ }, +--~ ["2"]={ +--~ ["cs"]="je nacteno kodovani %s", +--~ ["de"]="Kodierung %s ist geladen", +--~ ["en"]="regime %s is loaded", +--~ ["fr"]="l'encodage %s est chargé", +--~ ["it"]="codifica %s caricata", +--~ ["nl"]="regime %s wordt geladen", +--~ ["no"]="koding %s er lest inn", +--~ ["ro"]="codificarea %s este Encarcata", +--~ }, +--~ ["3"]={ +--~ ["cs"]="nezname kodovani %s", +--~ ["de"]="Unbekannte Kodierung %s", +--~ ["en"]="unknown regime %s", +--~ ["fr"]="encodage %s inconnu", +--~ ["it"]="codifica sconosciuta %s", +--~ ["nl"]="onbekend regime %s", +--~ ["no"]="ukjent koding %s", +--~ ["ro"]="codificarea %s este necunoscuta", +--~ }, +--~ ["files"]={ "regi-ini.mkiv" }, +--~ ["title"]={ +--~ ["cs"]="kodovani", +--~ ["de"]="Kodierungen", +--~ ["en"]="regimes", +--~ ["fr"]="encodages", +--~ ["it"]="codifica", +--~ ["nl"]="regimes", +--~ ["no"]="koding", +--~ ["ro"]="codificari", +--~ }, +--~ }, ["structures"]={ ["1"]={ - ["cs"]="zacatek oddilu (sekce) --", - ["de"]="Begin des Abschnittsblocks --", - ["en"]="begin of sectionblock --", - ["fr"]="début de blocsection --", - ["it"]="inizio del blocco (sezione) --", - ["nl"]="begin van sectieblok --", - ["no"]="starten av blokk -- (seksjon)", - ["ro"]="inceput de bloc sectiune --", + ["cs"]="zacatek oddilu (sekce) %s", + ["de"]="Begin des Abschnittsblocks %s", + ["en"]="begin of sectionblock %s", + ["fr"]="début de blocsection %s", + ["it"]="inizio del blocco (sezione) %s", + ["nl"]="begin van sectieblok %s", + ["no"]="starten av blokk %s (seksjon)", + ["ro"]="inceput de bloc sectiune %s", }, ["2"]={ - ["cs"]="konec oddilu (sekce) --", - ["de"]="Ende des Abschnittsblocks --", - ["en"]="end of sectionblock --", - ["fr"]="fin de blocsection --", - ["it"]="fine del blocco (sezione) --", - ["nl"]="eind van sectieblok --", - ["no"]="slutten av blokk -- (seksjon)", - ["ro"]="sfarsit de bloc sectiune --", + ["cs"]="konec oddilu (sekce) %s", + ["de"]="Ende des Abschnittsblocks %s", + ["en"]="end of sectionblock %s", + ["fr"]="fin de blocsection %s", + ["it"]="fine del blocco (sezione) %s", + ["nl"]="eind van sectieblok %s", + ["no"]="slutten av blokk %s (seksjon)", + ["ro"]="sfarsit de bloc sectiune %s", }, ["files"]={ "core-sec.mkii", "core-sec.mkiv", "strc-sbe.tex" }, ["title"]={ ["cs"]="struktury", - ["de"]="struktur", - ["en"]="structure", - ["fr"]="structure", + ["de"]="strukture", + ["en"]="structures", + ["fr"]="structures", ["it"]="struttura", - ["nl"]="structuur", + ["nl"]="structuren", ["no"]="struktur", ["ro"]="structuri", }, }, ["symbols"]={ ["1"]={ - ["cs"]="nacita se soubor symbolu --", - ["de"]="Lade Symboldatei --", - ["en"]="loading symbolset --", - ["fr"]="chargement du jeu de symbole --", - ["it"]="caricamento gruppo di simboli --", - ["nl"]="symboolset -- wordt geladen", - ["no"]="leser inn symbolsett --", - ["ro"]="se incarca setul de simboluri --", + ["cs"]="nacita se soubor symbolu %s", + ["de"]="Lade Symboldatei %s", + ["en"]="loading symbolset %s", + ["fr"]="chargement du jeu de symbole %s", + ["it"]="caricamento gruppo di simboli %s", + ["nl"]="symboolset %s wordt geladen", + ["no"]="leser inn symbolsett %s", + ["ro"]="se incarca setul de simboluri %s", }, ["files"]={ "symb-ini.tex" }, ["title"]={ @@ -1563,7 +1426,7 @@ return { ["ro"]="simboluri", }, }, - ["systems"]={ + ["system"]={ ["1"]={ ["cs"]="nacteni pomocneho souboru odlozeno (typemode)", ["de"]="Laden der Hilfsdatei aufgeschoben (Eingabe-Modus)", @@ -1575,14 +1438,14 @@ return { ["ro"]="se incarca utilitarul-fisierul este amanat (typemode)", }, ["10"]={ - ["cs"]="nepouzivejte em v --", - ["de"]="Benutzte kein em in --", - ["en"]="don't use em in --", - ["fr"]="n'utilisez pas em dans --", - ["it"]="non usare em in --", - ["nl"]="gebruik geen em in --", - ["no"]="ikke bruk em i --", - ["ro"]="nu folositi em in --", + ["cs"]="nepouzivejte em v %s", + ["de"]="Benutzte kein em in %s", + ["en"]="don't use em in %s", + ["fr"]="n'utilisez pas em dans %s", + ["it"]="non usare em in %s", + ["nl"]="gebruik geen em in %s", + ["no"]="ikke bruk em i %s", + ["ro"]="nu folositi em in %s", }, ["11"]={ ["cs"]="vytvarim jednoduchy pomocny soubor", @@ -1605,94 +1468,94 @@ return { ["ro"]="fisierul utilitar nu este sortat, folositi texutil", }, ["13"]={ - ["cs"]="znacka -- definovana --", - ["de"]="Beschriftung -- definiert --", - ["en"]="mark -- defined --", - ["fr"]="marquage -- defini --", - ["it"]="marcatura -- definita --", - ["nl"]="markering -- gedefinieerd --", - ["no"]="markering -- definert --", - ["ro"]="marcajul -- definit --", + ["cs"]="znacka %s definovana %s", + ["de"]="Beschriftung %s definiert %s", + ["en"]="mark %s defined %s", + ["fr"]="marquage %s defini %s", + ["it"]="marcatura %s definita %s", + ["nl"]="markering %s gedefinieerd %s", + ["no"]="markering %s definert %s", + ["ro"]="marcajul %s definit %s", }, ["14"]={ - ["cs"]="vynucena nova stranka v seznamu na --", - ["de"]="Erzwungendes Seitenumbruch in Liste bei --", - ["en"]="forced newpage in list at --", - ["fr"]="nouvellepage forcée dans la liste à --", - ["it"]="nuova pagina obbligata in lista a --", - ["nl"]="geforceerde paginaovergang in lijst voor --", - ["no"]="tvunget sideskift i liste ved --", - ["ro"]="s-a fortat trecere pa pagina noua in lista la --", + ["cs"]="vynucena nova stranka v seznamu na %s", + ["de"]="Erzwungendes Seitenumbruch in Liste bei %s", + ["en"]="forced newpage in list at %s", + ["fr"]="nouvellepage forcée dans la liste à %s", + ["it"]="nuova pagina obbligata in lista a %s", + ["nl"]="geforceerde paginaovergang in lijst voor %s", + ["no"]="tvunget sideskift i liste ved %s", + ["ro"]="s-a fortat trecere pa pagina noua in lista la %s", }, ["15"]={ - ["cs"]="uklada se buffer --", - ["de"]="Speichere Buffer --", - ["en"]="saving buffer --", - ["fr"]="sauvegarde du tampon (buffer) --", - ["it"]="salvataggio del buffer --", - ["nl"]="wegschrijven buffer --", - ["no"]="lagrer Buffer --", - ["ro"]="buffer salvat --", + ["cs"]="uklada se buffer %s", + ["de"]="Speichere Buffer %s", + ["en"]="saving buffer %s", + ["fr"]="sauvegarde du tampon (buffer) %s", + ["it"]="salvataggio del buffer %s", + ["nl"]="wegschrijven buffer %s", + ["no"]="lagrer Buffer %s", + ["ro"]="buffer salvat %s", }, ["16"]={ - ["cs"]="sazi se buffer --", - ["de"]="Setzte Buffer --", - ["en"]="typesetting buffer --", - ["fr"]="composition du tampon (buffer) --", - ["it"]="composizione del buffer --", - ["nl"]="inlezen buffer --", - ["no"]="tegnsetter buffer --", - ["ro"]="buffer-ul -- s-a cules", + ["cs"]="sazi se buffer %s", + ["de"]="Setzte Buffer %s", + ["en"]="typesetting buffer %s", + ["fr"]="composition du tampon (buffer) %s", + ["it"]="composizione del buffer %s", + ["nl"]="inlezen buffer %s", + ["no"]="tegnsetter buffer %s", + ["ro"]="buffer-ul %s s-a cules", }, ["17"]={ - ["cs"]="sazi se doslovny (verbatim) buffer --", - ["de"]="Setzte tippen-Buffer --", - ["en"]="typesetting verbatim buffer --", - ["fr"]="composition textuelle du tampon (buffer) --", - ["it"]="composizione verbatim del buffer --", - ["nl"]="verbatim inlezen buffer --", - ["no"]="tegnsetter verbatim-buffer --", - ["ro"]="se culege buffer-ul verbatim --", + ["cs"]="sazi se doslovny (verbatim) buffer %s", + ["de"]="Setzte tippen-Buffer %s", + ["en"]="typesetting verbatim buffer %s", + ["fr"]="composition textuelle du tampon (buffer) %s", + ["it"]="composizione verbatim del buffer %s", + ["nl"]="verbatim inlezen buffer %s", + ["no"]="tegnsetter verbatim-buffer %s", + ["ro"]="se culege buffer-ul verbatim %s", }, ["18"]={ - ["cs"]="synonymum -- -- neexistuje", - ["de"]="Synonym -- -- existiert nicht", - ["en"]="synonym -- -- does not exist", - ["fr"]="le synonyme -- -- n'existe pas", - ["it"]="sinonimo -- -- non esistente", - ["nl"]="synoniem -- -- bestaat niet", - ["no"]="synonym -- -- eksisterer ikke", - ["ro"]="sinonimul -- -- nu exista", + ["cs"]="synonymum %s %s neexistuje", + ["de"]="Synonym %s %s existiert nicht", + ["en"]="synonym %s %s does not exist", + ["fr"]="le synonyme %s %s n'existe pas", + ["it"]="sinonimo %s %s non esistente", + ["nl"]="synoniem %s %s bestaat niet", + ["no"]="synonym %s %s eksisterer ikke", + ["ro"]="sinonimul %s %s nu exista", }, ["19"]={ - ["cs"]="vyznam (synonyma) -- nacten", - ["de"]="Bedeutung (synonyme) von -- geladen", - ["en"]="meaning (synonyms) of -- loaded", - ["fr"]="signification (synonymes) de -- chargée", - ["it"]="significato (sinonimi) di -- caricato", - ["nl"]="betekenissen (synoniemen) van -- geladen", - ["no"]="betydning (synonymer) av -- er lest inn", - ["ro"]="intelesul (sinonimele) pentru -- incarcat", + ["cs"]="vyznam (synonyma) %s nacten", + ["de"]="Bedeutung (synonyme) von %s geladen", + ["en"]="meaning (synonyms) of %s loaded", + ["fr"]="signification (synonymes) de %s chargée", + ["it"]="significato (sinonimi) di %s caricato", + ["nl"]="betekenissen (synoniemen) van %s geladen", + ["no"]="betydning (synonymer) av %s er lest inn", + ["ro"]="intelesul (sinonimele) pentru %s incarcat", }, ["2"]={ - ["cs"]="-- nacteno", - ["de"]="-- geladen", - ["en"]="-- loaded", - ["fr"]="-- chargé", - ["it"]="-- caricato", - ["nl"]="-- geladen", - ["no"]="-- er lest inn", - ["ro"]="-- s-a incarcat", + ["cs"]="%s nacteno", + ["de"]="%s geladen", + ["en"]="%s loaded", + ["fr"]="%s chargé", + ["it"]="%s caricato", + ["nl"]="%s geladen", + ["no"]="%s er lest inn", + ["ro"]="%s s-a incarcat", }, ["20"]={ - ["cs"]="vyznam (trideni) -- nacten", - ["de"]="Bedeutung (sortieren) von -- geladen", - ["en"]="meaning (sorts) of -- loaded", - ["fr"]="signification (tris) de -- chargée", - ["it"]="significato (specie) di -- caricato", - ["nl"]="betekenissen (sorteren) van -- geladen", - ["no"]="betydning (sorterer) av -- er lest inn", - ["ro"]="intelesul (ordinea) pentru -- incarcat", + ["cs"]="vyznam (trideni) %s nacten", + ["de"]="Bedeutung (sortieren) von %s geladen", + ["en"]="meaning (sorts) of %s loaded", + ["fr"]="signification (tris) de %s chargée", + ["it"]="significato (specie) di %s caricato", + ["nl"]="betekenissen (sorteren) van %s geladen", + ["no"]="betydning (sorterer) av %s er lest inn", + ["ro"]="intelesul (ordinea) pentru %s incarcat", }, ["21"]={ ["cs"]="pomocny soubor necten", @@ -1715,14 +1578,14 @@ return { ["ro"]="folositi un fisier utilitar valid", }, ["23"]={ - ["cs"]="-- upraveno na --", - ["de"]="-- angeordnet auf --", - ["en"]="-- arranged at --", - ["fr"]="-- arrangé à --", - ["it"]="-- sistemato a --", - ["nl"]="-- gearrangeerd op --", - ["no"]="-- arrangert på --", - ["ro"]="-- aranjat la --", + ["cs"]="%s upraveno na %s", + ["de"]="%s angeordnet auf %s", + ["en"]="%s arranged at %s", + ["fr"]="%s arrangé à %s", + ["it"]="%s sistemato a %s", + ["nl"]="%s gearrangeerd op %s", + ["no"]="%s arrangert på %s", + ["ro"]="%s aranjat la %s", }, ["24"]={ ["cs"]="plovouci bloky", @@ -1765,54 +1628,54 @@ return { ["ro"]="Versiune", }, ["4"]={ - ["cs"]="prikaz -- je jiz definovan", - ["de"]="Befehl -- ist bereits definiert", - ["en"]="command -- is already defined", - ["fr"]="la commande -- est déjà définie", - ["it"]="comando -- già definito", - ["nl"]="commando -- is al gedefinieerd", - ["no"]="kommando -- er allerede definert", - ["ro"]="comanda -- este deja definita", + ["cs"]="prikaz %s je jiz definovan", + ["de"]="Befehl %s ist bereits definiert", + ["en"]="command %s is already defined", + ["fr"]="la commande %s est déjà définie", + ["it"]="comando %s già definito", + ["nl"]="commando %s is al gedefinieerd", + ["no"]="kommando %s er allerede definert", + ["ro"]="comanda %s este deja definita", }, ["41"]={ - ["cs"]="externi soubor -- ve skupine -- neexistuje", - ["de"]="Externe Datei -- in Gruppe -- existiert nicht", - ["en"]="external file -- in group -- does not exist", - ["fr"]="le fichier externe -- du groupe -- n'existe pas", - ["it"]="il file esterno -- del gruppo -- non esiste", - ["nl"]="externe file -- in groep -- bestaat niet", - ["no"]="ekstern fil -- i gruppe -- eksisterer ikke", - ["ro"]="fisierul extern -- din grupul -- nu exista", + ["cs"]="externi soubor %s ve skupine %s neexistuje", + ["de"]="Externe Datei %s in Gruppe %s existiert nicht", + ["en"]="external file %s in group %s does not exist", + ["fr"]="le fichier externe %s du groupe %s n'existe pas", + ["it"]="il file esterno %s del gruppo %s non esiste", + ["nl"]="externe file %s in groep %s bestaat niet", + ["no"]="ekstern fil %s i gruppe %s eksisterer ikke", + ["ro"]="fisierul extern %s din grupul %s nu exista", }, ["5"]={ - ["cs"]="makra z -- nactena", - ["de"]="Modul -- geladen", - ["en"]="module -- loaded", - ["fr"]="module -- chargé", - ["it"]="macro del modulo -- caricate", - ["nl"]="module -- geladen", - ["no"]="makroene i modul -- er lest inn", - ["ro"]="macro-urile din modulul -- s-au incarcat", + ["cs"]="makra z %s nactena", + ["de"]="Modul %s geladen", + ["en"]="module %s loaded", + ["fr"]="module %s chargé", + ["it"]="macro del modulo %s caricate", + ["nl"]="module %s geladen", + ["no"]="makroene i modul %s er lest inn", + ["ro"]="macro-urile din modulul %s s-au incarcat", }, ["6"]={ - ["cs"]="zadna makra v -- nenalezena", - ["de"]="Modul -- gefunden", - ["en"]="module -- not found", - ["fr"]="module -- non trouvé", - ["it"]="nessuna macro trovata nel modulo --", - ["nl"]="geen module -- gevonden", - ["no"]="ingen makroer funnet i modul ---", - ["ro"]="nu s-au gasit macro-uri in modulul --", + ["cs"]="zadna makra v %s nenalezena", + ["de"]="Modul %s gefunden", + ["en"]="module %s not found", + ["fr"]="module %s non trouvé", + ["it"]="nessuna macro trovata nel modulo %s", + ["nl"]="geen module %s gevonden", + ["no"]="ingen makroer funnet i modul %s-", + ["ro"]="nu s-au gasit macro-uri in modulul %s", }, ["7"]={ - ["cs"]="makra z -- jsou jiz nactena", - ["de"]="Modul -- bereits geladen", - ["en"]="module -- already loaded", - ["fr"]="module -- déjà chargé", - ["it"]="macro del modulo -- già caricate", - ["nl"]="module -- reeds geladen", - ["no"]="makroene i modul -- er allerede lest inn", - ["ro"]="macro-urile din modulul -- s-au incarcat deja", + ["cs"]="makra z %s jsou jiz nactena", + ["de"]="Modul %s bereits geladen", + ["en"]="module %s already loaded", + ["fr"]="module %s déjà chargé", + ["it"]="macro del modulo %s già caricate", + ["nl"]="module %s reeds geladen", + ["no"]="makroene i modul %s er allerede lest inn", + ["ro"]="macro-urile din modulul %s s-au incarcat deja", }, ["8"]={ ["cs"]="nova verze pomocneho souboru, je treba druheho behu", @@ -1825,18 +1688,18 @@ return { ["ro"]="o noua versiune de fisier utilitar, este necesara o noua trecere", }, ["9"]={ - ["cs"]="-- nenalezeno/nezpracovano", - ["de"]="-- nicht gefunden/verarbeitet", - ["en"]="-- not found/processed", - ["fr"]="-- non trouvé/traité", - ["it"]="-- non trovato/elaborato", - ["nl"]="-- niet gevonden/geplaatst", - ["no"]="-- ikke funnet/behandlet", - ["ro"]="-- nu este gasit/procesat", + ["cs"]="%s nenalezeno/nezpracovano", + ["de"]="%s nicht gefunden/verarbeitet", + ["en"]="%s not found/processed", + ["fr"]="%s non trouvé/traité", + ["it"]="%s non trovato/elaborato", + ["nl"]="%s niet gevonden/geplaatst", + ["no"]="%s ikke funnet/behandlet", + ["ro"]="%s nu este gasit/procesat", }, ["91"]={ - ["en"]="papertray --", - ["nl"]="papierlade --", + ["en"]="papertray %s", + ["nl"]="papierlade %s", }, ["files"]={ "core-mis.tex", "page-ini.tex", "prag-gen.tex", "strc-mar.tex" }, ["title"]={ @@ -1862,54 +1725,54 @@ return { ["ro"]="o noua versiune, este nevoie de inca o trecere", }, ["10"]={ - ["cs"]="-- nacteno a zpracovano", - ["de"]="-- geladen und verarbeitet", - ["en"]="-- loaded and processed", - ["fr"]="-- chargé et traité", - ["it"]="-- caricato ed elaborato", - ["nl"]="-- geladen en verwerkt", - ["no"]="-- lest inn og behandlet", - ["ro"]="-- incarcat si procesat", + ["cs"]="%s nacteno a zpracovano", + ["de"]="%s geladen und verarbeitet", + ["en"]="%s loaded and processed", + ["fr"]="%s chargé et traité", + ["it"]="%s caricato ed elaborato", + ["nl"]="%s geladen en verwerkt", + ["no"]="%s lest inn og behandlet", + ["ro"]="%s incarcat si procesat", }, ["11"]={ - ["cs"]="-- nacteno a vysazeno", - ["de"]="-- geladen und gesetzt", - ["en"]="-- loaded and typeset", - ["fr"]="-- chargé et composé", - ["it"]="-- caricato e composto", - ["nl"]="-- geladen en geplaatst", - ["no"]="-- lest inn og tegnsatt", - ["ro"]="-- incarcat si cules", + ["cs"]="%s nacteno a vysazeno", + ["de"]="%s geladen und gesetzt", + ["en"]="%s loaded and typeset", + ["fr"]="%s chargé et composé", + ["it"]="%s caricato e composto", + ["nl"]="%s geladen en geplaatst", + ["no"]="%s lest inn og tegnsatt", + ["ro"]="%s incarcat si cules", }, ["12"]={ - ["cs"]="-- preskoceno", - ["de"]="-- ausgelassen", - ["en"]="-- skipped", - ["fr"]="-- sauté", - ["it"]="-- saltato", - ["nl"]="-- overgeslagen", - ["no"]="-- utelatt", - ["ro"]="-- sarit peste", + ["cs"]="%s preskoceno", + ["de"]="%s ausgelassen", + ["en"]="%s skipped", + ["fr"]="%s sauté", + ["it"]="%s saltato", + ["nl"]="%s overgeslagen", + ["no"]="%s utelatt", + ["ro"]="%s sarit peste", }, ["2"]={ - ["cs"]="zapisuji bloky do --", - ["de"]="schreibe Bloecke zu --", - ["en"]="writing blocks to --", - ["fr"]="ecriture des blocs vers --", - ["it"]="scrittura dei blocchi su --", - ["nl"]="wegschrijven blokken naar --", - ["no"]="skriver blokker til --", - ["ro"]="se scriu blocurile in --", + ["cs"]="zapisuji bloky do %s", + ["de"]="schreibe Bloecke zu %s", + ["en"]="writing blocks to %s", + ["fr"]="ecriture des blocs vers %s", + ["it"]="scrittura dei blocchi su %s", + ["nl"]="wegschrijven blokken naar %s", + ["no"]="skriver blokker til %s", + ["ro"]="se scriu blocurile in %s", }, ["3"]={ - ["cs"]="ctu bloky z --", - ["de"]="lese Bloecke von --", - ["en"]="reading blocks from --", - ["fr"]="lecture des blocs en provenance de --", - ["it"]="lettura dei blocchi da --", - ["nl"]="inlezen blokken uit --", - ["no"]="leser blokker fra --", - ["ro"]="se citesc blocurile din --", + ["cs"]="ctu bloky z %s", + ["de"]="lese Bloecke von %s", + ["en"]="reading blocks from %s", + ["fr"]="lecture des blocs en provenance de %s", + ["it"]="lettura dei blocchi da %s", + ["nl"]="inlezen blokken uit %s", + ["no"]="leser blokker fra %s", + ["ro"]="se citesc blocurile din %s", }, ["4"]={ ["cs"]="je treba druhy beh", @@ -1922,54 +1785,54 @@ return { ["ro"]="este nevoie de inca o trecere", }, ["5"]={ - ["cs"]="-- neni skryto", - ["de"]="-- nicht verborgen", - ["en"]="-- not hidden", - ["fr"]="-- non caché", - ["it"]="-- non nascosto", - ["nl"]="-- niet verborgen", - ["no"]="-- ikke skjult", - ["ro"]="-- nu este ascuns", + ["cs"]="%s neni skryto", + ["de"]="%s nicht verborgen", + ["en"]="%s not hidden", + ["fr"]="%s non caché", + ["it"]="%s non nascosto", + ["nl"]="%s niet verborgen", + ["no"]="%s ikke skjult", + ["ro"]="%s nu este ascuns", }, ["6"]={ - ["cs"]="-- skryto a zpracovano", - ["de"]="-- verborgen und verarbeitet", - ["en"]="-- hidden and processed", - ["fr"]="-- caché et traité", - ["it"]="-- nascosto ed elaborato", - ["nl"]="-- verborgen en verwerkt", - ["no"]="-- skjult og behandlet", - ["ro"]="-- ascuns si procesat", + ["cs"]="%s skryto a zpracovano", + ["de"]="%s verborgen und verarbeitet", + ["en"]="%s hidden and processed", + ["fr"]="%s caché et traité", + ["it"]="%s nascosto ed elaborato", + ["nl"]="%s verborgen en verwerkt", + ["no"]="%s skjult og behandlet", + ["ro"]="%s ascuns si procesat", }, ["7"]={ - ["cs"]="-- skryto", - ["de"]="-- verborgen", - ["en"]="-- hidden", - ["fr"]="-- caché", - ["it"]="-- nascosto", - ["nl"]="-- verborgen", - ["no"]="-- skjult", - ["ro"]="-- ascuns", + ["cs"]="%s skryto", + ["de"]="%s verborgen", + ["en"]="%s hidden", + ["fr"]="%s caché", + ["it"]="%s nascosto", + ["nl"]="%s verborgen", + ["no"]="%s skjult", + ["ro"]="%s ascuns", }, ["8"]={ - ["cs"]="-- vysazeno", - ["de"]="-- gesetzt", - ["en"]="-- typeset", - ["fr"]="-- composé", - ["it"]="-- composto", - ["nl"]="-- gehandhaafd", - ["no"]="-- tegnsatt", - ["ro"]="-- cules", + ["cs"]="%s vysazeno", + ["de"]="%s gesetzt", + ["en"]="%s typeset", + ["fr"]="%s composé", + ["it"]="%s composto", + ["nl"]="%s gehandhaafd", + ["no"]="%s tegnsatt", + ["ro"]="%s cules", }, ["9"]={ - ["cs"]="-- nevysazeno", - ["de"]="-- nicht gesetzt", - ["en"]="-- not typeset", - ["fr"]="-- non composé", - ["it"]="-- non composto", - ["nl"]="-- niet gehandhaafd", - ["no"]="-- ikke tegnsatt", - ["ro"]="-- nu este cules", + ["cs"]="%s nevysazeno", + ["de"]="%s nicht gesetzt", + ["en"]="%s not typeset", + ["fr"]="%s non composé", + ["it"]="%s non composto", + ["nl"]="%s niet gehandhaafd", + ["no"]="%s ikke tegnsatt", + ["ro"]="%s nu este cules", }, ["files"]={ "core-blk.tex" }, ["title"]={ @@ -1985,14 +1848,14 @@ return { }, ["verbatims"]={ ["1"]={ - ["cs"]="soubor -- neexistuje", - ["de"]="Datei -- existiert nicht", - ["en"]="file -- does not exist", - ["fr"]="le fichier -- n'existe pas", - ["it"]="il file -- non esiste", - ["nl"]="file -- bestaat niet", - ["no"]="fil -- eksisterer ikke", - ["ro"]="fisierul -- nu exista", + ["cs"]="soubor %s neexistuje", + ["de"]="Datei %s existiert nicht", + ["en"]="file %s does not exist", + ["fr"]="le fichier %s n'existe pas", + ["it"]="il file %s non esiste", + ["nl"]="file %s bestaat niet", + ["no"]="fil %s eksisterer ikke", + ["ro"]="fisierul %s nu exista", }, ["files"]={ "core-ver.tex" }, ["title"]={ @@ -2006,47 +1869,47 @@ return { ["ro"]="verbatim", }, }, - ["versions"]={ - ["1"]={ - ["cs"]="postradam @+", - ["de"]="fehlendes @+", - ["en"]="missing @+", - ["fr"]="@+ manquant", - ["it"]="@+ mancante", - ["nl"]="er mankeert een @+", - ["no"]="manglende @+", - ["ro"]="lipseste @+", - }, - ["2"]={ - ["cs"]="oznacuji se strany", - ["de"]="Erstelle Seiten", - ["en"]="marking pages", - ["fr"]="marquage des pages", - ["it"]="marcatura pagine", - ["nl"]="markeren pagina's", - ["no"]="markerer sider", - ["ro"]="pagini marcate", - }, - ["3"]={ - ["cs"]="oznacene strany: --", - ["de"]="Ausgewaehlte Seiten: --", - ["en"]="selected pages: --", - ["fr"]="pages sélectionnées : --", - ["it"]="pagine selezionate: --", - ["nl"]="geselecteerde pagina's: --", - ["no"]="valgte sider: --", - ["ro"]="pagini selectate: --", - }, - ["files"]={ "core-int.tex" }, - ["title"]={ - ["cs"]="verze", - ["de"]="Version", - ["en"]="version", - ["fr"]="version", - ["it"]="version", - ["nl"]="versie", - ["no"]="versjon", - ["ro"]="versiuni", - }, - }, +--~ ["versions"]={ +--~ ["1"]={ +--~ ["cs"]="postradam @+", +--~ ["de"]="fehlendes @+", +--~ ["en"]="missing @+", +--~ ["fr"]="@+ manquant", +--~ ["it"]="@+ mancante", +--~ ["nl"]="er mankeert een @+", +--~ ["no"]="manglende @+", +--~ ["ro"]="lipseste @+", +--~ }, +--~ ["2"]={ +--~ ["cs"]="oznacuji se strany", +--~ ["de"]="Erstelle Seiten", +--~ ["en"]="marking pages", +--~ ["fr"]="marquage des pages", +--~ ["it"]="marcatura pagine", +--~ ["nl"]="markeren pagina's", +--~ ["no"]="markerer sider", +--~ ["ro"]="pagini marcate", +--~ }, +--~ ["3"]={ +--~ ["cs"]="oznacene strany: %s", +--~ ["de"]="Ausgewaehlte Seiten: %s", +--~ ["en"]="selected pages: %s", +--~ ["fr"]="pages sélectionnées : %s", +--~ ["it"]="pagine selezionate: %s", +--~ ["nl"]="geselecteerde pagina's: %s", +--~ ["no"]="valgte sider: %s", +--~ ["ro"]="pagini selectate: %s", +--~ }, +--~ ["files"]={ "core-int.tex" }, +--~ ["title"]={ +--~ ["cs"]="verze", +--~ ["de"]="Version", +--~ ["en"]="version", +--~ ["fr"]="version", +--~ ["it"]="version", +--~ ["nl"]="versie", +--~ ["no"]="versjon", +--~ ["ro"]="versiuni", +--~ }, +--~ }, } diff --git a/tex/context/base/mult-mpe.mkii b/tex/context/base/mult-mpe.mkii index c9c56bcc5..a8d429356 100644 --- a/tex/context/base/mult-mpe.mkii +++ b/tex/context/base/mult-mpe.mkii @@ -88,7 +88,7 @@ \setinterfacemessage{linguals}{9}{language -- is active} \setinterfacemessage{linguals}{8}{language specific options [--] seamless appended} \setinterfacemessage{linguals}{title}{language} -\setinterfacemessage{linguals}{10}{patterns --loaded} +\setinterfacemessage{linguals}{10}{patterns -- loaded} \setinterfacemessage{verbatims}{1}{file -- does not exist} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{filter -- is loaded} diff --git a/tex/context/base/mult-sys.mkiv b/tex/context/base/mult-sys.mkiv index a0bd7d6b3..853168f63 100644 --- a/tex/context/base/mult-sys.mkiv +++ b/tex/context/base/mult-sys.mkiv @@ -64,7 +64,7 @@ \definesystemconstant {russian} \definesystemconstant {ru} \definesystemconstant {slovak} \definesystemconstant {sk} \definesystemconstant {slovenian} \definesystemconstant {sl} -\definesystemconstant {slovene} +\definesystemconstant {slovene} % obsolete \definesystemconstant {spanish} \definesystemconstant {es} \definesystemconstant {swedish} \definesystemconstant {sv} \definesystemconstant {turkish} \definesystemconstant {tr} @@ -135,7 +135,6 @@ \definemessageconstant {check} \definemessageconstant {colors} \definemessageconstant {columns} -\definemessageconstant {encodings} \definemessageconstant {regimes} \definemessageconstant {figures} \definemessageconstant {fields} @@ -144,14 +143,13 @@ \definemessageconstant {fonts} \definemessageconstant {handlings} \definemessageconstant {interactions} -\definemessageconstant {javascript} +\definemessageconstant {javascripts} \definemessageconstant {layouts} -\definemessageconstant {linguals} +\definemessageconstant {languages} \definemessageconstant {references} -\definemessageconstant {specials} \definemessageconstant {structures} \definemessageconstant {symbols} -\definemessageconstant {systems} +\definemessageconstant {system} \definemessageconstant {lua} \definemessageconstant {textblocks} \definemessageconstant {verbatims} @@ -265,6 +263,8 @@ \definesystemconstant {extensions} \definesystemconstant {initializations} +\definesystemconstant {system} % not yet interfaces messages + %D Just to be complete we define the standard \TEX\ units. \definesystemconstant {cm} diff --git a/tex/context/base/node-aux.lua b/tex/context/base/node-aux.lua index 2fd6fc005..a916e9ed1 100644 --- a/tex/context/base/node-aux.lua +++ b/tex/context/base/node-aux.lua @@ -153,7 +153,7 @@ nodes.unsetattributes = unset_attributes -- local u = floor(x / 0x8000) * n + f -- 0100000 -- local v = floor(u % d) * 0x8000 + f -- 0100000 -- if floor(u / d) >= 0x8000 then -- 0100000 --- logs.error("parbuilder",'arith_error') +-- report_parbuilders('arith_error') -- else -- u = 0x8000 * floor(u / d) + floor(v / d) -- 0100000 -- end diff --git a/tex/context/base/node-fnt.lua b/tex/context/base/node-fnt.lua index 2eceb5dae..dfb57d9c5 100644 --- a/tex/context/base/node-fnt.lua +++ b/tex/context/base/node-fnt.lua @@ -14,9 +14,9 @@ local concat = table.concat local trace_characters = false trackers.register("nodes.characters", function(v) trace_characters = v end) local trace_fontrun = false trackers.register("nodes.fontrun", function(v) trace_fontrun = v end) -local report_fontrun = logs.new("font run") +local report_fonts = logs.new("fonts","processing") -local nodes, node = nodes, node +local nodes, node = nodes, node fonts = fonts or { } fonts.tfm = fonts.tfm or { } @@ -51,16 +51,16 @@ function handlers.characters(head) local a, u, prevfont, prevattr = 0, 0, nil, 0 if trace_fontrun then run = run + 1 - report_fontrun("") - report_fontrun("node mode run %s",run) - report_fontrun("") + report_fonts() + report_fonts("checking node list, run %s",run) + report_fonts() local n = head while n do if n.id == glyph_code then local font, attr = n.font, has_attribute(n,0) or 0 - report_run("font %03i dynamic %03i glyph %s",font,attr,utf.char(n.char)) + report_fonts("font %03i, dynamic %03i, glyph %s",font,attr,utf.char(n.char)) else - report_run("[%s]",nodecodes[n.id]) + report_fonts("[%s]",nodecodes[n.id]) end n = n.next end @@ -112,10 +112,10 @@ function handlers.characters(head) end end if trace_fontrun then - report_fontrun("") - report_fontrun("statics : %s",(u > 0 and concat(table.keys(usedfonts)," ")) or "none") - report_fontrun("dynamics: %s",(a > 0 and concat(table.keys(attrfonts)," ")) or "none") - report_fontrun("") + report_fonts() + report_fonts("statics : %s",(u > 0 and concat(table.keys(usedfonts)," ")) or "none") + report_fonts("dynamics: %s",(a > 0 and concat(table.keys(attrfonts)," ")) or "none") + report_fonts() end -- we could combine these and just make the attribute nil if u == 1 then diff --git a/tex/context/base/node-inj.lua b/tex/context/base/node-inj.lua index a55ea284d..836b01085 100644 --- a/tex/context/base/node-inj.lua +++ b/tex/context/base/node-inj.lua @@ -17,7 +17,7 @@ local next = next local trace_injections = false trackers.register("nodes.injections", function(v) trace_injections = v end) -local report_injections = logs.new("injections") +local report_injections = logs.new("nodes","injections") local attributes, nodes, node = attributes, nodes, node diff --git a/tex/context/base/node-mig.lua b/tex/context/base/node-mig.lua index 24f01fbff..fb6b4570a 100644 --- a/tex/context/base/node-mig.lua +++ b/tex/context/base/node-mig.lua @@ -26,7 +26,7 @@ local migrated = attributes.private("migrated") local trace_migrations = false trackers.register("nodes.migrations", function(v) trace_migrations = v end) -local report_nodes = logs.new("nodes") +local report_nodes = logs.new("nodes","migrations") local migrate_inserts, migrate_marks diff --git a/tex/context/base/node-mig.mkiv b/tex/context/base/node-mig.mkiv index 337703611..c07f5ed5b 100644 --- a/tex/context/base/node-mig.mkiv +++ b/tex/context/base/node-mig.mkiv @@ -54,7 +54,7 @@ \to \everyautomigratefootnotes \appendtoks - \writestatus\m!systems{migration of marks is normally not needed}% + \writestatus\m!system{migration of marks is normally not needed}% \enableexperiments[marks.migrate]% \to \everyautomigratemarks diff --git a/tex/context/base/node-pro.lua b/tex/context/base/node-pro.lua index 5f0c555a6..19ebcdd03 100644 --- a/tex/context/base/node-pro.lua +++ b/tex/context/base/node-pro.lua @@ -12,7 +12,7 @@ local format, concat = string.format, table.concat local trace_callbacks = false trackers.register("nodes.callbacks", function(v) trace_callbacks = v end) -local report_nodes = logs.new("nodes") +local report_nodes = logs.new("nodes","processors") local nodes, node = nodes, node diff --git a/tex/context/base/node-ref.lua b/tex/context/base/node-ref.lua index e82065ee7..e0aa65c6c 100644 --- a/tex/context/base/node-ref.lua +++ b/tex/context/base/node-ref.lua @@ -39,7 +39,9 @@ local trace_backend = false trackers.register("nodes.backend", functi local trace_references = false trackers.register("nodes.references", function(v) trace_references = v end) local trace_destinations = false trackers.register("nodes.destinations", function(v) trace_destinations = v end) -local report_backends = logs.new("backends") +local report_reference = logs.new("backend","references") +local report_destination = logs.new("backend","destinations") +local report_area = logs.new("backend","areas") local nodecodes = nodes.nodecodes local skipcodes = nodes.skipcodes @@ -107,14 +109,14 @@ local function inject_range(head,first,last,reference,make,stack,parent,pardir,t if result and resolved then if head == first then if trace_backend then - report_backends("head: %04i %s %s %s => w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",tosequence(first,last,true),width,height,depth,resolved) + report_area("head: %04i %s %s %s => w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",tosequence(first,last,true),width,height,depth,resolved) end result.next = first first.prev = result return result, last else if trace_backend then - report_backends("middle: %04i %s %s => w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",tosequence(first,last,true),width,height,depth,resolved) + report_area("middle: %04i %s %s => w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",tosequence(first,last,true),width,height,depth,resolved) end local prev = first.prev if prev then @@ -178,7 +180,7 @@ local function inject_list(id,current,reference,make,stack,pardir,txtdir) local result, resolved = make(width,height,depth,reference) if result and resolved then if trace_backend then - report_backends("box: %04i %s %s: w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",width,height,depth,resolved) + report_area("box: %04i %s %s: w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",width,height,depth,resolved) end if not first then current.list = result @@ -322,11 +324,11 @@ local function colorize(width,height,depth,n) u_colors[n] = u_color end if width == 0 then - report_backends("reference %s has no horizontal dimensions: width=%s, height=%s, depth=%s",reference,width,height,depth) + report_area("reference %s has no horizontal dimensions: width=%s, height=%s, depth=%s",reference,width,height,depth) width = 65536 end if height + depth <= 0 then - report_backends("reference %s has no vertical dimensions: width=%s, height=%s, depth=%s",reference,width,height,depth) + report_area("reference %s has no vertical dimensions: width=%s, height=%s, depth=%s",reference,width,height,depth) height = 65536/2 depth = height end @@ -387,7 +389,7 @@ local function makereference(width,height,depth,reference) local sr = stack[reference] if sr then if trace_references then - report_backends("resolving reference attribute %s",reference) + report_reference("resolving attribute %s",reference) end local resolved, ht, dp, set, n = sr[1], sr[2], sr[3], sr[4], sr[5] if ht then @@ -415,10 +417,10 @@ local function makereference(width,height,depth,reference) if cleanupreferences then stack[reference] = nil end return result, resolved elseif trace_references then - report_backends("unable to resolve reference annotation %s",reference) + report_reference("unable to resolve annotation %s",reference) end elseif trace_references then - report_backends("unable to resolve reference attribute %s",reference) + report_reference("unable to resolve attribute %s",reference) end end @@ -454,7 +456,7 @@ local function makedestination(width,height,depth,reference) local sr = stack[reference] if sr then if trace_destinations then - report_backends("resolving destination attribute %s",reference) + report_destination("resolving attribute %s",reference) end local resolved, ht, dp, name, view = sr[1], sr[2], sr[3], sr[4], sr[5] if ht then @@ -500,7 +502,7 @@ local function makedestination(width,height,depth,reference) if cleanupdestinations then stack[reference] = nil end return result, resolved elseif trace_destinations then - report_backends("unable to resolve destination attribute %s",reference) + report_destination("unable to resolve attribute %s",reference) end end diff --git a/tex/context/base/node-res.lua b/tex/context/base/node-res.lua index e636abaef..b4be0b920 100644 --- a/tex/context/base/node-res.lua +++ b/tex/context/base/node-res.lua @@ -14,6 +14,8 @@ local tonumber, round = tonumber, math.round for debugging <l n='luatex'/> node management.</p> --ldx]]-- +local report_nodes = logs.new("nodes","housekeeping") + local nodes, node = nodes, node local copy_node = node.copy @@ -201,9 +203,9 @@ end function pool.leftmarginkern(glyph,width) local n = copy_node(left_margin_kern) if not glyph then - logs.fatal("nodes","invalid pointer to left margin glyph node") + report_nodes("invalid pointer to left margin glyph node") elseif glyph.id ~= glyph_code then - logs.fatal("nodes","invalid node type %s for left margin glyph node",nodecodes[glyph]) + report_nodes("invalid node type %s for left margin glyph node",nodecodes[glyph]) else n.glyph = glyph end @@ -216,9 +218,9 @@ end function pool.rightmarginkern(glyph,width) local n = copy_node(right_margin_kern) if not glyph then - logs.fatal("nodes","invalid pointer to right margin glyph node") + report_nodes("invalid pointer to right margin glyph node") elseif glyph.id ~= glyph_code then - logs.fatal("nodes","invalid node type %s for right margin glyph node",nodecodes[p]) + report_nodes("invalid node type %s for right margin glyph node",nodecodes[p]) else n.glyph = glyph end diff --git a/tex/context/base/node-rul.lua b/tex/context/base/node-rul.lua index e90449366..d7ef13453 100644 --- a/tex/context/base/node-rul.lua +++ b/tex/context/base/node-rul.lua @@ -60,9 +60,9 @@ end -- todo: order and maybe other dimensions -local trace_ruled = false trackers.register("nodes.ruled", function(v) trace_ruled = v end) +local trace_ruled = false trackers.register("nodes.rules", function(v) trace_ruled = v end) -local report_ruled = logs.new("ruled") +local report_ruled = logs.new("nodes","rules") local floor = math.floor local n_tostring, n_tosequence = nodes.idstostring, nodes.tosequence @@ -317,9 +317,9 @@ end -- tasks.appendaction ("shipouts", "normalizers", "nodes.rules.handler") -- tasks.disableaction("shipouts", "nodes.rules.handler") -- only kick in when used -local trace_shifted = false trackers.register("nodes.shifted", function(v) trace_shifted = v end) +local trace_shifted = false trackers.register("nodes.shifting", function(v) trace_shifted = v end) -local report_shifted = logs.new("shifted") +local report_shifted = logs.new("nodes","shifting") local a_shifted = attributes.private('shifted') diff --git a/tex/context/base/node-spl.lua b/tex/context/base/node-spl.lua index e90146bf9..14bd3fbeb 100644 --- a/tex/context/base/node-spl.lua +++ b/tex/context/base/node-spl.lua @@ -31,9 +31,9 @@ local trace_optimize = false trackers.register("builders.paragraphs.solutions.s local trace_colors = false trackers.register("builders.paragraphs.solutions.splitters.colors", function(v) trace_colors = v end) local trace_goodies = false trackers.register("fonts.goodies", function(v) trace_goodies = v end) -local report_fonts = logs.new("fonts") -local report_splitter = logs.new("splitter") -local report_optimizer = logs.new("optimizer") +local report_solutions = logs.new("fonts","solutions") +local report_splitters = logs.new("nodes","splitters") +local report_optimizers = logs.new("nodes","optimizers") local nodes, node = nodes, node @@ -129,10 +129,10 @@ local function convert(featuresets,name,set,what) nofnumbers = nofnumbers + 1 numbers[nofnumbers] = fn if trace_goodies or trace_optimize then - report_fonts("solution %s of '%s' uses feature '%s' with number %s",i,name,feature,fn) + report_solutions("solution %s of '%s' uses feature '%s' with number %s",i,name,feature,fn) end else - report_fonts("solution %s has an invalid feature reference '%s'",i,name,tostring(feature)) + report_solutions("solution %s has an invalid feature reference '%s'",i,name,tostring(feature)) end end return nofnumbers > 0 and numbers @@ -145,7 +145,7 @@ local function initialize(goodies) local featuresets = goodies.featuresets local goodiesname = goodies.name if trace_goodies or trace_optimize then - report_fonts("checking solutions in '%s'",goodiesname) + report_solutions("checking solutions in '%s'",goodiesname) end for name, set in next, solutions do set.less = convert(featuresets,name,set,"less") @@ -201,7 +201,7 @@ function splitters.define(name,parameters) end end if trace_optimize then - report_fonts("defining solutions '%s', less: '%s', more: '%s'",name,concat(less_set or {}," "),concat(more_set or {}," ")) + report_solutions("defining solutions '%s', less: '%s', more: '%s'",name,concat(less_set or {}," "),concat(more_set or {}," ")) end local nofsolutions = #solutions + 1 solutions[nofsolutions] = { @@ -241,7 +241,7 @@ function splitters.split(head) font = font } if trace_split then - report_splitter( "cached %4i: font: %s, attribute: %s, word: %s, direction: %s", n, + report_splitters("cached %4i: font: %s, attribute: %s, word: %s, direction: %s", n, font, attribute, nodes.listtoutf(list,true), rlmode) end cache[n] = c @@ -372,7 +372,7 @@ local function doit(word,list,best,width,badness,line,set,listdir) local temp, b = repack_hlist(list,width,'exactly',listdir) if b > badness then if trace_optimize then - report_optimizer("line %s, badness before: %s, after: %s, criterium: %s -> quit",line,badness,b,criterium) + report_optimizers("line %s, badness before: %s, after: %s, criterium: %s -> quit",line,badness,b,criterium) end -- remove last insert prev.next, h.prev = h, prev @@ -385,7 +385,7 @@ local function doit(word,list,best,width,badness,line,set,listdir) free_nodelist(first) else if trace_optimize then - report_optimizer("line %s, badness before: %s, after: %s, criterium: %s -> continue",line,badness,b,criterium) + report_optimizers("line %s, badness before: %s, after: %s, criterium: %s -> continue",line,badness,b,criterium) end -- free old h->t t.next = nil @@ -471,7 +471,7 @@ local function show_quality(current,what,line) local sign = current.glue_sign local order = current.glue_order local amount = set * ((sign == 2 and -1) or 1) - report_optimizer("line %s, %s, amount %s, set %s, sign %s (%s), order %s",line,what,amount,set,sign,how,order) + report_optimizers("line %s, %s, amount %s, set %s, sign %s (%s), order %s",line,what,amount,set,sign,how,order) end function splitters.optimize(head) @@ -487,29 +487,29 @@ function splitters.optimize(head) local tex_hbadness, tex_hfuzz = tex.hbadness, tex.hfuzz tex.hbadness, tex.hfuzz = 10000, number.maxdimen if trace_optimize then - report_optimizer("preroll: %s, variant: %s, preroll criterium: %s, cache size: %s", + report_optimizers("preroll: %s, variant: %s, preroll criterium: %s, cache size: %s", tostring(preroll),variant,criterium,nc) end for current in traverse_ids(hlist_code,head) do - -- report_splitter("before: [%s] => %s",current.dir,nodes.tosequence(current.list,nil)) + -- report_splitters("before: [%s] => %s",current.dir,nodes.tosequence(current.list,nil)) line = line + 1 local sign, dir, list, width = current.glue_sign, current.dir, current.list, current.width local temp, badness = repack_hlist(list,width,'exactly',dir) -- it would be nice if the badness was stored in the node if badness > 0 then if sign == 0 then if trace_optimize then - report_optimizer("line %s, badness %s, okay",line,badness) + report_optimizers("line %s, badness %s, okay",line,badness) end else local set, max if sign == 1 then if trace_optimize then - report_optimizer("line %s, badness %s, underfull, trying more",line,badness) + report_optimizers("line %s, badness %s, underfull, trying more",line,badness) end set, max = "more", max_more else if trace_optimize then - report_optimizer("line %s, badness %s, overfull, trying less",line,badness) + report_optimizers("line %s, badness %s, overfull, trying less",line,badness) end set, max = "less", max_less end @@ -527,7 +527,7 @@ function splitters.optimize(head) local temp, done, changes, b = optimize(words,base,j,width,badness,line,set,dir) base = temp if trace_optimize then - report_optimizer("line %s, alternative: %s.%s, changes: %s, badness %s",line,i,j,changes,b) + report_optimizers("line %s, alternative: %s.%s, changes: %s, badness %s",line,i,j,changes,b) end bb = b if b <= criterium then @@ -554,7 +554,7 @@ function splitters.optimize(head) local temp, done, changes, b = optimize(words,list,best,width,badness,line,set,dir) current.list = temp if trace_optimize then - report_optimizer("line %s, alternative: %s, changes: %s, badness %s",line,best,changes,b) + report_optimizers("line %s, alternative: %s, changes: %s, badness %s",line,best,changes,b) end if done then if b <= criterium then -- was == 0 @@ -566,12 +566,12 @@ function splitters.optimize(head) end else if trace_optimize then - report_optimizer("line %s, not bad enough",line) + report_optimizers("line %s, not bad enough",line) end end -- we pack inside the outer hpack and that way keep the original wd/ht/dp as bonus current.list = hpack_nodes(current.list,width,'exactly',listdir) - -- report_splitter("after: [%s] => %s",temp.dir,nodes.tosequence(temp.list,nil)) + -- report_splitters("after: [%s] => %s",temp.dir,nodes.tosequence(temp.list,nil)) end for i=1,nc do local ci = cache[i] diff --git a/tex/context/base/node-tra.lua b/tex/context/base/node-tra.lua index 22d11fc5b..c464d7736 100644 --- a/tex/context/base/node-tra.lua +++ b/tex/context/base/node-tra.lua @@ -17,7 +17,7 @@ local format, match, gmatch, concat, rep = string.format, string.match, string.g local lpegmatch = lpeg.match local write_nl = texio.write_nl -local report_nodes = logs.new("nodes") +local report_nodes = logs.new("nodes","tracing") fonts = fonts or { } nodes = nodes or { } @@ -361,7 +361,11 @@ function nodes.handlers.checkglyphs(head,message) t[#t+1] = format("U+%04X:%s",g.char,g.subtype) end if #t > 0 then - logs.report(message or "nodes","%s glyphs: %s",#t,concat(t," ")) + if message and message ~= "" then + report_nodes("%s, %s glyphs: %s",message,#t,concat(t," ")) + else + report_nodes("%s glyphs: %s",#t,concat(t," ")) + end end return false end @@ -565,7 +569,7 @@ local function showboxes(n,symbol,depth) local id = n.id if id == hlist_code or id == vlist_code then local s = n.subtype - logs.simple(rep(symbol,depth) .. what[s] or s) + report_nodes(rep(symbol,depth) .. what[s] or s) showboxes(n.list,symbol,depth+1) end end diff --git a/tex/context/base/pack-lyr.mkiv b/tex/context/base/pack-lyr.mkiv index 955381d62..8335a07b9 100644 --- a/tex/context/base/pack-lyr.mkiv +++ b/tex/context/base/pack-lyr.mkiv @@ -642,7 +642,7 @@ %D Watch out, a redefinition: -\ifx\settextpagecontent\undefined \writestatus\m!systems{error in page-lyr.tex} \wait \fi +\ifx\settextpagecontent\undefined \writestatus\m!system{error in page-lyr.tex} \wait \fi \let\normalsettextpagecontent\settextpagecontent diff --git a/tex/context/base/page-flt.lua b/tex/context/base/page-flt.lua index e3357a97e..02cf70840 100644 --- a/tex/context/base/page-flt.lua +++ b/tex/context/base/page-flt.lua @@ -16,7 +16,7 @@ local copy_node_list = node.copy_list local trace_floats = false trackers.register("graphics.floats", function(v) trace_floats = v end) -- name might change -local report_floats = logs.new("floats") +local report_floats = logs.new("structure","floats") local C, S, P, lpegmatch = lpeg.C, lpeg.S, lpeg.P, lpeg.match diff --git a/tex/context/base/page-imp.mkiv b/tex/context/base/page-imp.mkiv index d1d8a7f4d..cc48b9359 100644 --- a/tex/context/base/page-imp.mkiv +++ b/tex/context/base/page-imp.mkiv @@ -433,8 +433,7 @@ %D real arrangments. Some day ... \def\reportarrangedpage#1% - {\showmessage\m!systems - {23}{\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,\number#1}} + {\showmessage\m!system{23}{\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,\number#1}} % TOP diff --git a/tex/context/base/page-ini.mkiv b/tex/context/base/page-ini.mkiv index ac3b4d500..add2814dc 100644 --- a/tex/context/base/page-ini.mkiv +++ b/tex/context/base/page-ini.mkiv @@ -601,7 +601,7 @@ \vskip\!!sixpoint \hbox to \makeupwidth {\infofont - \getmessage\m!systems{27}:\space\currentdate\space + \getmessage\m!system{27}:\space\currentdate\space \doplaceversiontext\v!project \currentproject \doplaceversiontext\v!product \currentproduct \doplaceversiontext\v!component\currentcomponent @@ -1303,7 +1303,7 @@ % We don't want spurious last pages (due to left over marks): \def\noshipout - {\writestatus\m!systems{ignoring further shipouts}% + {\writestatus\m!system{ignoring further shipouts}% \global\advance\realpageno\minusone % else no flush of resources \dowithnextbox{\deadcycles\zerocount}} diff --git a/tex/context/base/page-lay.mkiv b/tex/context/base/page-lay.mkiv index 261bf849d..9efc7ff6d 100644 --- a/tex/context/base/page-lay.mkiv +++ b/tex/context/base/page-lay.mkiv @@ -385,11 +385,11 @@ \fi\fi \ifdim\paperheight>\printpaperheight \global\printpaperheight\paperheight - \writestatus\m!systems{print height forced to paper height}% + \writestatus\m!system{print height forced to paper height}% \fi \ifdim\paperwidth>\printpaperwidth \global\printpaperwidth\paperwidth - \writestatus\m!systems{print width forced to paper width}% + \writestatus\m!system{print width forced to paper width}% \fi \egroup}} @@ -428,7 +428,7 @@ % {\beforesplitstring#1\at em\to\asciia % \doifnot\asciia{#1} % {\aftersplitstring\asciia\at=\to\asciia -% \doifsomething\asciia{\showmessage\m!systems{10}{#1}}}} +% \doifsomething\asciia{\showmessage\m!system{10}{#1}}}} % % \def\checkforems[#1]% % {\processcommalist[#1]\docheckforems} diff --git a/tex/context/base/page-mar.mkiv b/tex/context/base/page-mar.mkiv index c260b0eda..0868d62ad 100644 --- a/tex/context/base/page-mar.mkiv +++ b/tex/context/base/page-mar.mkiv @@ -260,7 +260,7 @@ \donothing \doifnumberelse\margincontenttag {\ifnum\margincontenttag>25 % to be translated - \writestatus\m!systems{potential margin stack overflow (\margincontenttag)}% + \writestatus\m!system{potential margin stack overflow (\margincontenttag)}% \fi} \donothing % we need to preserve {a,b,c} kind of settings diff --git a/tex/context/base/prop-ini.mkiv b/tex/context/base/prop-ini.mkiv index a122e8bb4..3cb5d2a6f 100644 --- a/tex/context/base/prop-ini.mkiv +++ b/tex/context/base/prop-ini.mkiv @@ -21,7 +21,7 @@ \unprotect \def\propertyobsoletemessage - {\writestatus\m!systems{properties are obsolete, use dedicated commands}% + {\writestatus\m!system{properties are obsolete, use dedicated commands}% \glet\propertyobsoletemessage\donothing} \setvalue{\??py:d:\v!layer }[#1][#2][#3]{\defineviewerlayer[#1][#3]} diff --git a/tex/context/base/regi-8859-1.lua b/tex/context/base/regi-8859-1.lua index b8f0a8573..ff2182afa 100644 --- a/tex/context/base/regi-8859-1.lua +++ b/tex/context/base/regi-8859-1.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-1'] = { license = "see context related readme files" } -regimes.data["8859-1"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, - 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF } diff --git a/tex/context/base/regi-8859-10.lua b/tex/context/base/regi-8859-10.lua index 574d4ac50..f23744b4a 100644 --- a/tex/context/base/regi-8859-10.lua +++ b/tex/context/base/regi-8859-10.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-10'] = { license = "see context related readme files" } -regimes.data["8859-10"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7, 0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A, - 0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7, 0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 0x016B, 0x014B, - 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF, - 0x00D0, 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168, 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, - 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF, - 0x00F0, 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169, 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7, 0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A, + 0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7, 0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 0x016B, 0x014B, + 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF, + 0x00D0, 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168, 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, + 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF, + 0x00F0, 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169, 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138 } diff --git a/tex/context/base/regi-8859-11.lua b/tex/context/base/regi-8859-11.lua index 1910bbb5d..54e5626c2 100644 --- a/tex/context/base/regi-8859-11.lua +++ b/tex/context/base/regi-8859-11.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-11'] = { license = "see context related readme files" } -regimes.data["8859-11"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, - 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, - 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, - 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, 0x0E38, 0x0E39, 0x0E3A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0E3F, - 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, - 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, 0x0000, 0x0000, 0x0000, 0x0000 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, + 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, + 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, + 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, 0x0E38, 0x0E39, 0x0E3A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0E3F, + 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, + 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, 0x0000, 0x0000, 0x0000, 0x0000 } diff --git a/tex/context/base/regi-8859-13.lua b/tex/context/base/regi-8859-13.lua index a6f71cb78..1646133b5 100644 --- a/tex/context/base/regi-8859-13.lua +++ b/tex/context/base/regi-8859-13.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-13'] = { license = "see context related readme files" } -regimes.data["8859-13"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, - 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, - 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, - 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, - 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, + 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, + 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, + 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, + 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019 } diff --git a/tex/context/base/regi-8859-14.lua b/tex/context/base/regi-8859-14.lua index 0c3474865..2b0c68814 100644 --- a/tex/context/base/regi-8859-14.lua +++ b/tex/context/base/regi-8859-14.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-14'] = { license = "see context related readme files" } -regimes.data["8859-14"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7, 0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x0178, - 0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56, 0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x1E61, - 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - 0x0174, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x1E6A, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x0176, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x0175, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x1E6B, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x0177, 0x00FF +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7, 0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x0178, + 0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56, 0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x1E61, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x0174, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x1E6A, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x0176, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x0175, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x1E6B, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x0177, 0x00FF } diff --git a/tex/context/base/regi-8859-15.lua b/tex/context/base/regi-8859-15.lua index a5626d653..48861f396 100644 --- a/tex/context/base/regi-8859-15.lua +++ b/tex/context/base/regi-8859-15.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-15'] = { license = "see context related readme files" } -regimes.data["8859-15"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7, 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7, 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF, - 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7, 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7, 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF } diff --git a/tex/context/base/regi-8859-16.lua b/tex/context/base/regi-8859-16.lua index 817b41db2..e122a2042 100644 --- a/tex/context/base/regi-8859-16.lua +++ b/tex/context/base/regi-8859-16.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-16'] = { license = "see context related readme files" } -regimes.data["8859-16"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0104, 0x0105, 0x0141, 0x20AC, 0x201E, 0x0160, 0x00A7, 0x0161, 0x00A9, 0x0218, 0x00AB, 0x0179, 0x00AD, 0x017A, 0x017B, - 0x00B0, 0x00B1, 0x010C, 0x0142, 0x017D, 0x201D, 0x00B6, 0x00B7, 0x017E, 0x010D, 0x0219, 0x00BB, 0x0152, 0x0153, 0x0178, 0x017C, - 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0106, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - 0x0110, 0x0143, 0x00D2, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x015A, 0x0170, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0118, 0x021A, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x0107, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x0111, 0x0144, 0x00F2, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x015B, 0x0171, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0119, 0x021B, 0x00FF +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0104, 0x0105, 0x0141, 0x20AC, 0x201E, 0x0160, 0x00A7, 0x0161, 0x00A9, 0x0218, 0x00AB, 0x0179, 0x00AD, 0x017A, 0x017B, + 0x00B0, 0x00B1, 0x010C, 0x0142, 0x017D, 0x201D, 0x00B6, 0x00B7, 0x017E, 0x010D, 0x0219, 0x00BB, 0x0152, 0x0153, 0x0178, 0x017C, + 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0106, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x0110, 0x0143, 0x00D2, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x015A, 0x0170, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0118, 0x021A, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x0107, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x0111, 0x0144, 0x00F2, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x015B, 0x0171, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0119, 0x021B, 0x00FF } diff --git a/tex/context/base/regi-8859-2.lua b/tex/context/base/regi-8859-2.lua index 7ae59d0fa..affd6c3ca 100644 --- a/tex/context/base/regi-8859-2.lua +++ b/tex/context/base/regi-8859-2.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-2'] = { license = "see context related readme files" } -regimes.data["8859-2"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, - 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, - 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, - 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, - 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, - 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, + 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, + 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, + 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, + 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, + 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 } diff --git a/tex/context/base/regi-8859-3.lua b/tex/context/base/regi-8859-3.lua index a83d63bac..4b5c54b4f 100644 --- a/tex/context/base/regi-8859-3.lua +++ b/tex/context/base/regi-8859-3.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-3'] = { license = "see context related readme files" } -regimes.data["8859-3"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0x0000, 0x0124, 0x00A7, 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0x0000, 0x017B, - 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0x0000, 0x017C, - 0x00C0, 0x00C1, 0x00C2, 0x0000, 0x00C4, 0x010A, 0x0108, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - 0x0000, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x0000, 0x00E4, 0x010B, 0x0109, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x0000, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0x0000, 0x0124, 0x00A7, 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0x0000, 0x017B, + 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0x0000, 0x017C, + 0x00C0, 0x00C1, 0x00C2, 0x0000, 0x00C4, 0x010A, 0x0108, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x0000, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x0000, 0x00E4, 0x010B, 0x0109, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x0000, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 } diff --git a/tex/context/base/regi-8859-4.lua b/tex/context/base/regi-8859-4.lua index 939d55026..774ec2e10 100644 --- a/tex/context/base/regi-8859-4.lua +++ b/tex/context/base/regi-8859-4.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-4'] = { license = "see context related readme files" } -regimes.data["8859-4"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, - 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, - 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, - 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, - 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, - 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, + 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, + 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, + 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, + 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, + 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9 } diff --git a/tex/context/base/regi-8859-5.lua b/tex/context/base/regi-8859-5.lua index ab093d139..1137f37bb 100644 --- a/tex/context/base/regi-8859-5.lua +++ b/tex/context/base/regi-8859-5.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-5'] = { license = "see context related readme files" } -regimes.data["8859-5"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, - 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, + 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F } diff --git a/tex/context/base/regi-8859-6.lua b/tex/context/base/regi-8859-6.lua index e094129f2..651ae79ff 100644 --- a/tex/context/base/regi-8859-6.lua +++ b/tex/context/base/regi-8859-6.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-6'] = { license = "see context related readme files" } -regimes.data["8859-6"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0000, 0x0000, 0x0000, 0x00A4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x060C, 0x00AD, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x061B, 0x0000, 0x0000, 0x0000, 0x061F, - 0x0000, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, - 0x0650, 0x0651, 0x0652, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0000, 0x0000, 0x0000, 0x00A4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x060C, 0x00AD, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x061B, 0x0000, 0x0000, 0x0000, 0x061F, + 0x0000, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, + 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, + 0x0650, 0x0651, 0x0652, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } diff --git a/tex/context/base/regi-8859-7.lua b/tex/context/base/regi-8859-7.lua index cee253582..08cbbab6e 100644 --- a/tex/context/base/regi-8859-7.lua +++ b/tex/context/base/regi-8859-7.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-7'] = { license = "see context related readme files" } -regimes.data["8859-7"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x2018, 0x2019, 0x00A3, 0x20AC, 0x20AF, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x037A, 0x00AB, 0x00AC, 0x00AD, 0x0000, 0x2015, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, - 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, - 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, - 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, - 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x2018, 0x2019, 0x00A3, 0x20AC, 0x20AF, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x037A, 0x00AB, 0x00AC, 0x00AD, 0x0000, 0x2015, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, + 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000 } diff --git a/tex/context/base/regi-8859-8.lua b/tex/context/base/regi-8859-8.lua index 062b080ad..b69609991 100644 --- a/tex/context/base/regi-8859-8.lua +++ b/tex/context/base/regi-8859-8.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-8'] = { license = "see context related readme files" } -regimes.data["8859-8"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2017, - 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, - 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2017, + 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, + 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000 } diff --git a/tex/context/base/regi-8859-9.lua b/tex/context/base/regi-8859-9.lua index 2af118a8c..773307fff 100644 --- a/tex/context/base/regi-8859-9.lua +++ b/tex/context/base/regi-8859-9.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-8859-9'] = { license = "see context related readme files" } -regimes.data["8859-9"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, - 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF } diff --git a/tex/context/base/regi-cp1250.lua b/tex/context/base/regi-cp1250.lua index a37ca46b4..00d55d1b8 100644 --- a/tex/context/base/regi-cp1250.lua +++ b/tex/context/base/regi-cp1250.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1250'] = { license = "see context related readme files" } -regimes.data["cp1250"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021, 0x0000, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, - 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x0000, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, - 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, - 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, - 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, - 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, - 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, - 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021, 0x0000, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, + 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x0000, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, + 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, + 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, + 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, + 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, + 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, + 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 } diff --git a/tex/context/base/regi-cp1251.lua b/tex/context/base/regi-cp1251.lua index 42fe0b340..7bb72e0cc 100644 --- a/tex/context/base/regi-cp1251.lua +++ b/tex/context/base/regi-cp1251.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1251'] = { license = "see context related readme files" } -regimes.data["cp1251"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, - 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x0000, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, - 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, - 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, + 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x0000, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, + 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, + 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F } diff --git a/tex/context/base/regi-cp1252.lua b/tex/context/base/regi-cp1252.lua index 74b2f3761..86954c9af 100644 --- a/tex/context/base/regi-cp1252.lua +++ b/tex/context/base/regi-cp1252.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1252'] = { license = "see context related readme files" } -regimes.data["cp1252"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x017D, 0x0000, - 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x017E, 0x0178, - 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, - 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x017D, 0x0000, + 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x017E, 0x0178, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF } diff --git a/tex/context/base/regi-cp1253.lua b/tex/context/base/regi-cp1253.lua index f14a186bb..31a411efe 100644 --- a/tex/context/base/regi-cp1253.lua +++ b/tex/context/base/regi-cp1253.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1253'] = { license = "see context related readme files" } -regimes.data["cp1253"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000, - 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x0000, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, - 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, - 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, - 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, - 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000, + 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x0000, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, + 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000 } diff --git a/tex/context/base/regi-cp1254.lua b/tex/context/base/regi-cp1254.lua index 76fbe9c49..73b9927c6 100644 --- a/tex/context/base/regi-cp1254.lua +++ b/tex/context/base/regi-cp1254.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1254'] = { license = "see context related readme files" } -regimes.data["cp1254"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000, - 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178, - 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, - 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF } diff --git a/tex/context/base/regi-cp1255.lua b/tex/context/base/regi-cp1255.lua index 9ea807fbd..2abb16b54 100644 --- a/tex/context/base/regi-cp1255.lua +++ b/tex/context/base/regi-cp1255.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1255'] = { license = "see context related readme files" } -regimes.data["cp1255"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000, - 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, - 0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7, 0x05B8, 0x05B9, 0x0000, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF, - 0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3, 0x05F4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, - 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7, 0x05B8, 0x05B9, 0x0000, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF, + 0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3, 0x05F4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, + 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000 } diff --git a/tex/context/base/regi-cp1256.lua b/tex/context/base/regi-cp1256.lua index e77525bcf..a0697c321 100644 --- a/tex/context/base/regi-cp1256.lua +++ b/tex/context/base/regi-cp1256.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1256'] = { license = "see context related readme files" } -regimes.data["cp1256"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, - 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA, - 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F, - 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7, 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643, - 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF, - 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7, 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, + 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA, + 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F, + 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, + 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7, 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643, + 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF, + 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7, 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2 } diff --git a/tex/context/base/regi-cp1257.lua b/tex/context/base/regi-cp1257.lua index 1b5d53379..6e39c10d4 100644 --- a/tex/context/base/regi-cp1257.lua +++ b/tex/context/base/regi-cp1257.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1257'] = { license = "see context related readme files" } -regimes.data["cp1257"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021, 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x00A8, 0x02C7, 0x00B8, - 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x00AF, 0x02DB, 0x0000, - 0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x0000, 0x00A6, 0x00A7, 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, - 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, - 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, - 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, - 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9 +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021, 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x00A8, 0x02C7, 0x00B8, + 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x00AF, 0x02DB, 0x0000, + 0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x0000, 0x00A6, 0x00A7, 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, + 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, + 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, + 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, + 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9 } diff --git a/tex/context/base/regi-cp1258.lua b/tex/context/base/regi-cp1258.lua index 271db3009..cf64d2ab6 100644 --- a/tex/context/base/regi-cp1258.lua +++ b/tex/context/base/regi-cp1258.lua @@ -6,21 +6,21 @@ if not modules then modules = { } end modules ['regi-cp1258'] = { license = "see context related readme files" } -regimes.data["cp1258"] = { [0] = - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0000, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000, - 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0000, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178, - 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, - 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF, - 0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF, - 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF, - 0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF +return { [0] = + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, + 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0000, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0000, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF, + 0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF, + 0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF } diff --git a/tex/context/base/regi-demo.lua b/tex/context/base/regi-demo.lua new file mode 100644 index 000000000..689f44e32 --- /dev/null +++ b/tex/context/base/regi-demo.lua @@ -0,0 +1,22 @@ +if not modules then modules = { } end modules ['regi-demo'] = { + version = 1.001, + comment = "companion to regi-ini.mkiv", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +-- digits -> * + +return { + [0x0030] = 0x002A, + [0x0031] = 0x002A, + [0x0032] = 0x002A, + [0x0033] = 0x002A, + [0x0034] = 0x002A, + [0x0035] = 0x002A, + [0x0036] = 0x002A, + [0x0037] = 0x002A, + [0x0038] = 0x002A, + [0x0039] = 0x002A, +} diff --git a/tex/context/base/regi-ini.lua b/tex/context/base/regi-ini.lua index d3444e6f4..c6dae61c1 100644 --- a/tex/context/base/regi-ini.lua +++ b/tex/context/base/regi-ini.lua @@ -6,147 +6,216 @@ if not modules then modules = { } end modules ['regi-ini'] = { license = "see context related readme files" } -local utf = unicode.utf8 -local char, utfchar, gsub = string.char, utf.char, string.gsub - --[[ldx-- <p>Regimes take care of converting the input characters into <l n='utf'/> sequences. The conversion tables are loaded at runtime.</p> --ldx]]-- -regimes = regimes or { } -local regimes = regimes +local utfchar = utf.char +local char, gsub, format = string.char, string.gsub, string.format +local next, setmetatable = next, setmetatable +local insert, remove = table.insert, table.remove -regimes.data = regimes.data or { } -local data = regimes.data +local sequencers = utilities.sequencers +local textlineactions = resolvers.openers.helpers.textlineactions -regimes.utf = regimes.utf or { } +--[[ldx-- +<p>We will hook regime handling code into the input methods.</p> +--ldx]]-- --- regimes.synonyms = regimes.synonyms or { } --- local synonyms = regimes.synonyms --- --- if storage then --- storage.register("regimes/synonyms", synonyms, "regimes.synonyms") --- else --- regimes.synonyms = { } --- end +local trace_translating = false trackers.register("regimes.translating", function(v) trace_translating = v end) + +local report_loading = logs.new("regimes","loading") +local report_translating = logs.new("regimes","translating") -local synonyms = { - - ["windows-1250"] = "cp1250", - ["windows-1251"] = "cp1251", - ["windows-1252"] = "cp1252", - ["windows-1253"] = "cp1253", - ["windows-1254"] = "cp1254", - ["windows-1255"] = "cp1255", - ["windows-1256"] = "cp1256", - ["windows-1257"] = "cp1257", - ["windows-1258"] = "cp1258", - - ["il1"] = "8859-1", - ["il2"] = "8859-2", - ["il3"] = "8859-3", - ["il4"] = "8859-4", - ["il5"] = "8859-9", - ["il6"] = "8859-10", - ["il7"] = "8859-13", - ["il8"] = "8859-14", - ["il9"] = "8859-15", - ["il10"] = "8859-16", - - ["iso-8859-1"] = "8859-1", - ["iso-8859-2"] = "8859-2", - ["iso-8859-3"] = "8859-3", - ["iso-8859-4"] = "8859-4", - ["iso-8859-9"] = "8859-9", - ["iso-8859-10"] = "8859-10", - ["iso-8859-13"] = "8859-13", - ["iso-8859-14"] = "8859-14", - ["iso-8859-15"] = "8859-15", - ["iso-8859-16"] = "8859-16", - - ["latin1"] = "8859-1", - ["latin2"] = "8859-2", - ["latin3"] = "8859-3", - ["latin4"] = "8859-4", - ["latin5"] = "8859-9", - ["latin6"] = "8859-10", - ["latin7"] = "8859-13", - ["latin8"] = "8859-14", - ["latin9"] = "8859-15", - ["latin10"] = "8859-16", - - ["utf-8"] = "utf", - ["utf8"] = "utf", - - ["windows"] = "cp1252", +regimes = regimes or { } +local regimes = regimes +local mapping = { + utf = false } -regimes.currentregime = "utf" +local synonyms = { -- backward compatibility list + + ["windows-1250"] = "cp1250", + ["windows-1251"] = "cp1251", + ["windows-1252"] = "cp1252", + ["windows-1253"] = "cp1253", + ["windows-1254"] = "cp1254", + ["windows-1255"] = "cp1255", + ["windows-1256"] = "cp1256", + ["windows-1257"] = "cp1257", + ["windows-1258"] = "cp1258", + + ["il1"] = "8859-1", + ["il2"] = "8859-2", + ["il3"] = "8859-3", + ["il4"] = "8859-4", + ["il5"] = "8859-9", + ["il6"] = "8859-10", + ["il7"] = "8859-13", + ["il8"] = "8859-14", + ["il9"] = "8859-15", + ["il10"] = "8859-16", + + ["iso-8859-1"] = "8859-1", + ["iso-8859-2"] = "8859-2", + ["iso-8859-3"] = "8859-3", + ["iso-8859-4"] = "8859-4", + ["iso-8859-9"] = "8859-9", + ["iso-8859-10"] = "8859-10", + ["iso-8859-13"] = "8859-13", + ["iso-8859-14"] = "8859-14", + ["iso-8859-15"] = "8859-15", + ["iso-8859-16"] = "8859-16", + + ["latin1"] = "8859-1", + ["latin2"] = "8859-2", + ["latin3"] = "8859-3", + ["latin4"] = "8859-4", + ["latin5"] = "8859-9", + ["latin6"] = "8859-10", + ["latin7"] = "8859-13", + ["latin8"] = "8859-14", + ["latin9"] = "8859-15", + ["latin10"] = "8859-16", + + ["utf-8"] = "utf", + ["utf8"] = "utf", + [""] = "utf", + + ["windows"] = "cp1252", ---[[ldx-- -<p>We will hook regime handling code into the input methods.</p> ---ldx]]-- +} + +local currentregime = "utf" -function regimes.number(n) - if type(n) == "string" then return tonumber(n,16) else return n end +local function loadregime(mapping,regime) + local name = resolvers.findfile(format("regi-%s.lua",regime)) or "" + local data = name ~= "" and dofile(name) + if data then + vector = { } + for eightbit, unicode in next, data do + vector[char(eightbit)] = utfchar(unicode) + end + report_loading("vector '%s' is loaded",regime) + else + vector = false + report_loading("vector '%s' is unknown",regime) + end + mapping[regime] = vector + return vector end -function regimes.setsynonym(synonym,target) -- more or less obsolete - synonyms[synonym] = target +setmetatable(mapping, { __index = loadregime }) + +local function translate(line,regime) + if line and #line > 0 then + local map = mapping[regime and synonyms[regime] or regime or currentregime] + if map then + line = gsub(line,".",map) + end + end + return line end -function regimes.truename(regime) - context((regime and synonyms[synonym] or regime) or regimes.currentregime) +local function disable() + currentregime = "utf" + sequencers.disableaction(textlineactions,"regimes.process") end -function regimes.load(regime) +local function enable(regime) regime = synonyms[regime] or regime - if not data[regime] then - environment.loadluafile("regi-"..regime, 1.001) - if data[regime] then - regimes.utf[regime] = { } - for k,v in next, data[regime] do - regimes.utf[regime][char(k)] = utfchar(v) - end + if mapping[regime] == false then + disable() + else + currentregime = regime + sequencers.enableaction(textlineactions,"regimes.process") + end +end + +regimes.translate = translate +regimes.enable = enable +regimes.disable = disable + +-- The following function can be used when we want to make sure that +-- utf gets passed unharmed. This is needed for modules. + +local level = 0 + +function regimes.process(str) + if level == 0 then + str = translate(str,currentregime) + if trace_translating then + report_translating("utf: %s",str) end end + return str end -function regimes.translate(line,regime) - regime = synonyms[regime] or regime - if regime and line then - local rur = regimes.utf[regime] - if rur then - return (gsub(line,"(.)",rur)) -- () redundant +function regimes.push() + level = level + 1 + if trace_translating then + report_translating("pushing level %s",level) + end +end + +function regimes.pop() + if level > 0 then + if trace_translating then + report_translating("popping level %s",level) end + level = level - 1 end - return line end -local sequencers = utilities.sequencers -local textlineactions = resolvers.openers.helpers.textlineactions +sequencers.prependaction(textlineactions,"system","regimes.process") +sequencers.disableaction(textlineactions,"regimes.process") + +-- interface: -function regimes.process(s) - return regimes.translate(s,regimes.currentregime) +commands.enableregime = enable +commands.disableregime = disable + +function commands.currentregime() + context(currentregime) end -function regimes.enable(regime) - regime = synonyms[regime] or regime - if data[regime] then - regimes.currentregime = regime - sequencers.enableaction(textlineactions,"regimes.process") - else - sequencers.disableaction(textlineactions,"regimes.process") +local stack = { } + +function commands.startregime(regime) + insert(stack,currentregime) + if trace_translating then + report_translating("start '%s'",regime) end + enable(regime) end -function regimes.disable() - regimes.currentregime = "utf" - sequencers.disableaction(textlineactions,"regimes.process") +function commands.stopregime() + if #stack > 0 then + local regime = remove(stack) + if trace_translating then + report_translating("stop '%s'",regime) + end + enable(regime) + end end -utilities.sequencers.prependaction(textlineactions,"system","regimes.process") -utilities.sequencers.disableaction(textlineactions,"regimes.process") +-- obsolete: +-- +-- function regimes.setsynonym(synonym,target) +-- synonyms[synonym] = target +-- end +-- +-- function regimes.truename(regime) +-- return regime and synonyms[regime] or regime or currentregime +-- end +-- +-- function commands.trueregimename(regime) +-- context(regimes.truename(regime)) +-- end +-- +-- function regimes.load(regime) +-- return mapping[synonyms[regime] or regime] +-- end diff --git a/tex/context/base/regi-ini.mkiv b/tex/context/base/regi-ini.mkiv index b306d87f4..41f001426 100644 --- a/tex/context/base/regi-ini.mkiv +++ b/tex/context/base/regi-ini.mkiv @@ -11,45 +11,39 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\unprotect - -%D First some initialization code: - \registerctxluafile{regi-ini}{1.001} -%D \macros -%D {currentregime} - -\def\currentregime{utf} - -%D \macros -%D {defineregimesynonym,trueregimename} - -\unexpanded\def\defineregimesynonym % more or less obsolete - {\dodoubleargument\dodefineregimesynonym} - -\def\dodefineregimesynonym[#1][#2]% - {\ctxlua{regimes.setsynonym("#1","#2")}} - -\def\trueregimename#1% - {\ctxlua{regimes.truename("#1")}} - -%D \macros -%D {useregime} - -\def\useregime[#1]% - {\processcommalist[#1]\douseregime} - -\def\douseregime#1% - {\ctxlua{regimes.load("#1")}} +\unprotect %D \macros -%D {enableregime,disableregime} - -\def\enableregime[#1]% - {\edef\currentregime{\ctxlua{regimes.load("#1") regimes.enable("#1") regimes.truename()}}} - -\def\disableregime - {\edef\currentregime{\ctxlua{regimes.disable()}}} +%D {enableregime,disableregime,currentregime} +%D +%D Beware, the enable and disable commands are global switches, so +%D best use the start|/|stop commands. + +\unexpanded\def\enableregime[#1]{\ctxcommand{enableregime("#1")}} +\unexpanded\def\disableregime {\ctxcommand{disableregime()}} +\unexpanded\def\startregime [#1]{\ctxcommand{startregime("#1")}} +\unexpanded\def\stopregime {\ctxcommand{stopregime()}} + \def\currentregime {\ctxcommand{currentregime()}} + +% D \macros +% D {defineregimesynonym,trueregimename} +% +% \unexpanded\def\defineregimesynonym % more or less obsolete +% {\dodoubleargument\dodefineregimesynonym} +% +% \def\dodefineregimesynonym[#1][#2]% +% {\ctxlua{regimes.setsynonym("#1","#2")}} +% +% \def\trueregimename#1% +% {\ctxcommand{trueregimename("#1")}} + +% D \macros +% D {useregime} +% D +% D This one is sort of obsolete but we keep them around. + +\unexpanded\def\useregime[#1]{} \protect \endinput diff --git a/tex/context/base/scrp-ini.lua b/tex/context/base/scrp-ini.lua index 5b012890d..2d36fd973 100644 --- a/tex/context/base/scrp-ini.lua +++ b/tex/context/base/scrp-ini.lua @@ -13,7 +13,7 @@ local texwrite = tex.write local trace_analyzing = false trackers.register("scripts.analyzing", function(v) trace_analyzing = v end) local trace_injections = false trackers.register("scripts.injections", function(v) trace_injections = v end) -local report_preprocessing = logs.new("preprocessing") +local report_preprocessing = logs.new("scripts","preprocessing") local allocate = utilities.storage.allocate diff --git a/tex/context/base/sort-ini.lua b/tex/context/base/sort-ini.lua index 2cf92bf67..793022e52 100644 --- a/tex/context/base/sort-ini.lua +++ b/tex/context/base/sort-ini.lua @@ -50,7 +50,7 @@ local allocate = utilities.storage.allocate local trace_tests = false trackers.register("sorters.tests", function(v) trace_tests = v end) -local report_sorters = logs.new("sorters") +local report_sorters = logs.new("languages","sorters") local comparers = { } local splitters = { } diff --git a/tex/context/base/spac-ver.lua b/tex/context/base/spac-ver.lua index 958d1ad7a..c10ff18fd 100644 --- a/tex/context/base/spac-ver.lua +++ b/tex/context/base/spac-ver.lua @@ -46,9 +46,9 @@ local trace_vspacing = false trackers.register("builders.vspacing", local trace_vsnapping = false trackers.register("builders.vsnapping", function(v) trace_vsnapping = v end) local trace_vpacking = false trackers.register("builders.vpacking", function(v) trace_vpacking = v end) -local report_vspacing = logs.new("vspacing") -local report_collapser = logs.new("collapser") -local report_snapper = logs.new("snapper") +local report_vspacing = logs.new("vspacing","spacing") +local report_collapser = logs.new("vspacing","collapsing") +local report_snapper = logs.new("vspacing","snapping") local a_skipcategory = attributes.private('skipcategory') local a_skippenalty = attributes.private('skippenalty') diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv index fa408ec38..1da6d6d7c 100644 --- a/tex/context/base/spac-ver.mkiv +++ b/tex/context/base/spac-ver.mkiv @@ -1854,13 +1854,13 @@ % \def\disablevspacing{\the\everydisablevspacing} % % \appendtoks -% \writestatus\m!systems{! ! enabling vspacing ! !}% +% \writestatus\m!system{! ! enabling vspacing ! !}% % \settrue\vspacingenabled % \ctxlua{builders.vspacing.enable()}% % \to \everyenablevspacing % % \appendtoks -% \writestatus\m!systems{! ! disabling vspacing ! !}% +% \writestatus\m!system{! ! disabling vspacing ! !}% % \setfalse\vspacingenabled % \ctxlua{builders.vspacing.disable()}% % \to \everydisablevspacing diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf Binary files differindex c9b8be6bd..139a75836 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf diff --git a/tex/context/base/strc-bkm.lua b/tex/context/base/strc-bkm.lua index 08f26c88f..84bb73e80 100644 --- a/tex/context/base/strc-bkm.lua +++ b/tex/context/base/strc-bkm.lua @@ -21,7 +21,7 @@ local codeinjections = backends.codeinjections local trace_bookmarks = false trackers.register("references.bookmarks", function(v) trace_bookmarks = v end) -local report_bookmarks = logs.new("bookmarks") +local report_bookmarks = logs.new("structure","bookmarks") local structures = structures diff --git a/tex/context/base/strc-doc.lua b/tex/context/base/strc-doc.lua index 7e95fb563..8195bdecf 100644 --- a/tex/context/base/strc-doc.lua +++ b/tex/context/base/strc-doc.lua @@ -25,7 +25,7 @@ local variables = interfaces.variables local trace_sectioning = false trackers.register("structures.sectioning", function(v) trace_sectioning = v end) local trace_detail = false trackers.register("structures.detail", function(v) trace_detail = v end) -local report_structure = logs.new("structure") +local report_structure = logs.new("structure","sectioning") local structures, context = structures, context @@ -322,7 +322,7 @@ function sections.somelevel(given) -- given.numberdata = nil end -function sections.writestatus() +function sections.reportstructure() if sections.verbose then local numbers, ownnumbers, status, depth = data.numbers, data.ownnumbers, data.status, data.depth local d = status[depth] @@ -332,11 +332,11 @@ function sections.writestatus() local t = (l ~= "" and l) or d.titledata.title or "[no title]" local m = d.metadata.name if o and not find(o,"^%.*$") then - commands.writestatus("structure","%s @ level %i : (%s) %s -> %s",m,depth,n,o,t) + report_structure("%s @ level %i : (%s) %s -> %s",m,depth,n,o,t) elseif d.directives and d.directives.hidenumber then - commands.writestatus("structure","%s @ level %i : (%s) -> %s",m,depth,n,t) + report_structure("%s @ level %i : (%s) -> %s",m,depth,n,t) else - commands.writestatus("structure","%s @ level %i : %s -> %s",m,depth,n,t) + report_structure("%s @ level %i : %s -> %s",m,depth,n,t) end end end diff --git a/tex/context/base/strc-doc.mkiv b/tex/context/base/strc-doc.mkiv index 972e50f78..2d05bf04d 100644 --- a/tex/context/base/strc-doc.mkiv +++ b/tex/context/base/strc-doc.mkiv @@ -178,7 +178,7 @@ {\xdef\currentstructureattribute {\ctxlua {tex.write(structures.references.setinternalreference("\currentstructurereferenceprefix","\currentstructurereference",\nextinternalreference,"\@@iafocus"))}}% \xdef\currentstructuresynchronize{\ctxlatelua{structures.lists.enhance(#1)}}} -\def\reportcurrentstructure{\ctxlua{structures.sections.writestatus()}} +\def\reportcurrentstructure{\ctxlua{structures.sections.reportstructure()}} % Beware: we need to flush the data to the list explicitly. This is because % node in inserted and we may want control over when that happens. diff --git a/tex/context/base/strc-ini.lua b/tex/context/base/strc-ini.lua index 88c1d344d..69d7528dd 100644 --- a/tex/context/base/strc-ini.lua +++ b/tex/context/base/strc-ini.lua @@ -31,7 +31,7 @@ local ctxcatcodes, xmlcatcodes, notcatcodes = tex.ctxcatcodes, tex.xmlcatcodes, local trace_processors = false trackers.register("structures.processors", function(v) trace_processors = v end) -local report_processors = logs.new("processors") +local report_processors = logs.new("structure","processors") -- move this diff --git a/tex/context/base/strc-lst.lua b/tex/context/base/strc-lst.lua index 8278a66d9..fca7f56e3 100644 --- a/tex/context/base/strc-lst.lua +++ b/tex/context/base/strc-lst.lua @@ -21,7 +21,7 @@ local allocate, mark, checked = utilities.storage.allocate, utilities.storage.ma local trace_lists = false trackers.register("structures.lists", function(v) trace_lists = v end) -local report_lists = logs.new("lists") +local report_lists = logs.new("structure","lists") local ctxcatcodes = tex.ctxcatcodes diff --git a/tex/context/base/strc-lst.mkiv b/tex/context/base/strc-lst.mkiv index eb876452c..50458c4d5 100644 --- a/tex/context/base/strc-lst.mkiv +++ b/tex/context/base/strc-lst.mkiv @@ -211,7 +211,7 @@ \definelistextra [\v!page] - [\c!before={\showmessage\m!systems{14}{\currentlist/\currentlistindex}\page}] + [\c!before={\showmessage\m!system{14}{\currentlist/\currentlistindex}\page}] \def\processlistextrabefore{\executeifdefined{\??li:\c!extras:\currentlistextra:\c!before}\relax} \def\processlistextraafter {\executeifdefined{\??li:\c!extras:\currentlistextra:\c!after }\relax} @@ -639,7 +639,7 @@ % \begingroup % \edef\listelements{\listparameter\c!pageboundaries}% % \normalexpanded{\noexpand\doifinset{#3}{\listelements}} -% {\showmessage\m!systems{14}{#3}% +% {\showmessage\m!system{14}{#3}% % \page}% % \endgroup \dontcomplain diff --git a/tex/context/base/strc-mar.lua b/tex/context/base/strc-mar.lua index d990b4fff..c14d93a43 100644 --- a/tex/context/base/strc-mar.lua +++ b/tex/context/base/strc-mar.lua @@ -22,13 +22,13 @@ local traversenodes = node.traverse local texsetattribute = tex.setattribute local texbox = tex.box -local a_marks = attributes.private('marks') +local a_marks = attributes.private("structure","marks") local trace_marks_set = false trackers.register("marks.set", function(v) trace_marks_set = v end) local trace_marks_get = false trackers.register("marks.get", function(v) trace_marks_get = v end) local trace_marks_all = false trackers.register("marks.detail", function(v) trace_marks_all = v end) -local report_marks = logs.new("marks") +local report_marks = logs.new("structure","marks") local variables = interfaces.variables diff --git a/tex/context/base/strc-not.lua b/tex/context/base/strc-not.lua index 222623a59..ebc25dd5d 100644 --- a/tex/context/base/strc-not.lua +++ b/tex/context/base/strc-not.lua @@ -12,7 +12,7 @@ local texcount = tex.count local trace_notes = false trackers.register("structures.notes", function(v) trace_notes = v end) -local report_notes = logs.new("notes") +local report_notes = logs.new("structure","notes") local structures = structures local helpers = structures.helpers diff --git a/tex/context/base/strc-num.lua b/tex/context/base/strc-num.lua index 1fefd864c..8f4f0e245 100644 --- a/tex/context/base/strc-num.lua +++ b/tex/context/base/strc-num.lua @@ -14,7 +14,7 @@ local allocate, mark = utilities.storage.allocate, utilities.storage.mark local trace_counters = false trackers.register("structures.counters", function(v) trace_counters = v end) -local report_counters = logs.new("counters") +local report_counters = logs.new("structure","counters") local structures = structures diff --git a/tex/context/base/strc-pag.lua b/tex/context/base/strc-pag.lua index 3dc70b6a3..19af8cbc4 100644 --- a/tex/context/base/strc-pag.lua +++ b/tex/context/base/strc-pag.lua @@ -13,7 +13,7 @@ local allocate, mark = utilities.storage.allocate, utilities.storage.mark local trace_pages = false trackers.register("structures.pages", function(v) trace_pages = v end) -local report_pages = logs.new("pages") +local report_pages = logs.new("structure","pages") local structures = structures diff --git a/tex/context/base/strc-ref.lua b/tex/context/base/strc-ref.lua index ff773e9a0..522442982 100644 --- a/tex/context/base/strc-ref.lua +++ b/tex/context/base/strc-ref.lua @@ -16,7 +16,7 @@ local allocate = utilities.storage.allocate local trace_referencing = false trackers.register("structures.referencing", function(v) trace_referencing = v end) -local report_references = logs.new("references") +local report_references = logs.new("structure","references") local variables = interfaces.variables local constants = interfaces.constants diff --git a/tex/context/base/strc-ref.mkiv b/tex/context/base/strc-ref.mkiv index a9a19515c..b91940523 100644 --- a/tex/context/base/strc-ref.mkiv +++ b/tex/context/base/strc-ref.mkiv @@ -258,7 +258,7 @@ %D \stoptabulate \def\usereferences[#1]% not yet - {\writestatus\m!systems{references from other files are handled automatically}} + {\writestatus\m!system{references from other files are handled automatically}} %D As mentioned we will also use the cross reference mechanism %D for navigational purposes. The main reason for this is that diff --git a/tex/context/base/strc-reg.lua b/tex/context/base/strc-reg.lua index 7e392ba72..3220b3f61 100644 --- a/tex/context/base/strc-reg.lua +++ b/tex/context/base/strc-reg.lua @@ -16,7 +16,7 @@ local allocate, mark = utilities.storage.allocate, utilities.storage.mark local trace_registers = false trackers.register("structures.registers", function(v) trace_registers = v end) -local report_registers = logs.new("registers") +local report_registers = logs.new("structure","registers") local structures = structures local registers = structures.registers diff --git a/tex/context/base/strc-sec.mkiv b/tex/context/base/strc-sec.mkiv index 94e97ea24..c9a5f870f 100644 --- a/tex/context/base/strc-sec.mkiv +++ b/tex/context/base/strc-sec.mkiv @@ -531,7 +531,7 @@ \xdef\currentstructureheadcoupling{\structuresectionheadcoupling\currentstructurehead}% \xdef\currentstructureheadsection {\structuresectionheadsection \currentstructureheadcoupling}% \xdef\currentstructureheadlevel {\structuresectionlevel \currentstructureheadsection}% - %writestatus\m!systems{setup: \currentstructurehead,\currentstructureheadcoupling,\currentstructureheadsection,\currentstructureheadlevel}% + %writestatus\m!system{setup: \currentstructurehead,\currentstructureheadcoupling,\currentstructureheadsection,\currentstructureheadlevel}% % \setstructureheadreference % does not do much currently \setstructureheadincrement diff --git a/tex/context/base/strc-tag.lua b/tex/context/base/strc-tag.lua index f853cdd85..5563cd834 100644 --- a/tex/context/base/strc-tag.lua +++ b/tex/context/base/strc-tag.lua @@ -17,7 +17,7 @@ local settings_to_hash = utilities.parsers.settings_to_hash local trace_tags = false trackers.register("structures.tags", function(v) trace_tags = v end) -local report_tags = logs.new("tags") +local report_tags = logs.new("structure","tags") local attributes, structures = attributes, structures diff --git a/tex/context/base/supp-box.lua b/tex/context/base/supp-box.lua index c40995562..be5bc2864 100644 --- a/tex/context/base/supp-box.lua +++ b/tex/context/base/supp-box.lua @@ -8,6 +8,8 @@ if not modules then modules = { } end modules ['supp-box'] = { -- this is preliminary code +local report_hyphenation = logs.new("languages","hyphenation") + local nodecodes = nodes.nodecodes local disc_code = nodecodes.disc @@ -45,7 +47,7 @@ end commands.hyphenatedlist = hyphenatedlist function commands.showhyphenatedinlist(list) - commands.writestatus("show hyphens",nodes.listtoutf(list)) + report_hyphenation("show: %s",nodes.listtoutf(list)) end function checkedlist(list) diff --git a/tex/context/base/supp-fil.lua b/tex/context/base/supp-fil.lua index acc3bbe66..357de5eca 100644 --- a/tex/context/base/supp-fil.lua +++ b/tex/context/base/supp-fil.lua @@ -9,6 +9,7 @@ if not modules then modules = { } end modules ['supp-fil'] = { -- This module will be redone ! -- context is not defined yet! todo! (we need to load tupp-fil after cld) +-- todo: move startreadingfile to lua and push regime there --[[ldx-- <p>It's more convenient to manipulate filenames (paths) in @@ -23,8 +24,8 @@ local isfile = lfs.isfile local trace_modules = false trackers.register("modules.loading", function(v) trace_modules = v end) local trace_files = false trackers.register("resolvers.readfile", function(v) trace_files = v end) -local report_modules = logs.new("modules") -local report_files = logs.new("resolvers") +local report_modules = logs.new("resolvers","modules") +local report_files = logs.new("resolvers","files") commands = commands or { } local commands = commands @@ -305,17 +306,17 @@ function commands.usemodules(prefix,askedname,truename) if trace_modules then report_modules("skipping '%s' (not found)",truename) else - interfaces.showmessage("systems",6,askedname) + interfaces.showmessage("system",6,askedname) end elseif status == 1 then if not trace_modules then - interfaces.showmessage("systems",5,askedname) + interfaces.showmessage("system",5,askedname) end else if trace_modules then report_modules("skipping '%s' (already loaded)",truename) else - interfaces.showmessage("systems",7,askedname) + interfaces.showmessage("system",7,askedname) end end modstatus[hashname] = status diff --git a/tex/context/base/supp-fil.mkiv b/tex/context/base/supp-fil.mkiv index 555d1240a..6b9af21ce 100644 --- a/tex/context/base/supp-fil.mkiv +++ b/tex/context/base/supp-fil.mkiv @@ -412,10 +412,12 @@ {\global\advance\readingfilelevel\plusone \the\everystartreadingfile \pushcatcodetable % saveguard + \ctxlua{regimes.push()}% temporarily this way }% \setcatcodetable\prtcatcodes % no longer in mkiv, has to be done explictly \unexpanded\def\stopreadingfile {\popcatcodetable % saveguard + \ctxlua{regimes.pop()}% temporarily this way \the\everystopreadingfile \global\advance\readingfilelevel\minusone} diff --git a/tex/context/base/supp-ran.lua b/tex/context/base/supp-ran.lua index 5263208eb..0be9f66fd 100644 --- a/tex/context/base/supp-ran.lua +++ b/tex/context/base/supp-ran.lua @@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['supp-ran'] = { -- We cannot ask for the current seed, so we need some messy hack -- here. -local report_system = logs.new("system") +local report_system = logs.new("system","randomizer") commands = commands or { } local commands = commands @@ -19,12 +19,15 @@ local random, randomseed, round, seed, last = math.random, math.randomseed, math local texwrite = tex.write function math.setrandomseedi(n,comment) + if not n then +--~ n = 0.5 -- hack + end if n <= 1 then n = n*1073741823 -- maxcount end n = round(n) if false then - report_system("setting random seed to %s (%s)",n,comment or "normal") + report_system("setting seed to %s (%s)",n,comment or "normal") end randomseed(n) last = random(0,1073741823) -- we need an initial value diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv index 461c84117..17169acbf 100644 --- a/tex/context/base/syst-aux.mkiv +++ b/tex/context/base/syst-aux.mkiv @@ -2091,7 +2091,7 @@ \setnewconstant\expectedarguments \zerocount \def\showargumenterror#1#2% - {\writestatus{systems}{\number#1 argument(s) expected in line #2}} + {\writestatus{system}{\number#1 argument(s) expected in line #2}} \def\doshowargumenterror {\ifnum\expectedarguments>\noexpectedarguments @@ -4534,7 +4534,7 @@ %D \CONTEXT only defines lowcased macros. \def\showdefinederror#1#2% - {\writestatus\m!systems{#1 #2 replaces a macro, use CAPITALS!}} + {\writestatus\m!system{#1 #2 replaces a macro, use CAPITALS!}} \def\checkdefined#1#2#3% {\doifdefined{#3}{\showdefinederror{#2}{#3}}} @@ -6945,10 +6945,10 @@ \def\retestfeature % timer support is new per 10/5/2005 {\bgroup \ifcase\interactionmode\let\wait\relax\fi - \writestatus\m!systems{starting feature test}\wait + \writestatus\m!system{starting feature test}\wait \resettimer \featuretest\zerocount \dotestfeature - \writestatus\m!systems{feature test done (\elapsedseconds s)}% + \writestatus\m!system{feature test done (\elapsedseconds s)}% \wait \egroup} diff --git a/tex/context/base/syst-ini.mkiv b/tex/context/base/syst-ini.mkiv index 293ce4258..63cf65f35 100644 --- a/tex/context/base/syst-ini.mkiv +++ b/tex/context/base/syst-ini.mkiv @@ -257,7 +257,9 @@ %D evolved from code that dealt with older engines but as all engines %D now provide many registers we removed all traces. -\def\writestatus#1#2{\immediate\write16{#1: #2}} \def\space { } +\ifdefined\writestatus \else + \def\writestatus#1#2{\immediate\write16{#1: #2}} +\fi \def\allocateregisteryes#1#2#3#4#5% last class method max name {\ifnum#1<#4\relax diff --git a/tex/context/base/syst-lua.lua b/tex/context/base/syst-lua.lua index da9269ac3..fefe415cf 100644 --- a/tex/context/base/syst-lua.lua +++ b/tex/context/base/syst-lua.lua @@ -14,8 +14,9 @@ local ctxcatcodes = tex.ctxcatcodes commands = commands or { } -- cs = commands -- shorter, maybe some day, not used now -function commands.writereport(...) logs.report(...) end -- not that efficient -function commands.writestatus(...) logs.status(...) end +function commands.writestatus(...) logs.status(...) end -- overloaded later + +-- todo: use shorter names i.e. less tokenization local function testcase(b) if b then -- looks faster with if than with expression diff --git a/tex/context/base/syst-mes.mkiv b/tex/context/base/syst-mes.mkiv index af792aba9..070c7af72 100644 --- a/tex/context/base/syst-mes.mkiv +++ b/tex/context/base/syst-mes.mkiv @@ -11,9 +11,6 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\setnewconstant\statuswidth 15 -\setnewconstant\statuswrite 16 - \newtoks\everywritestring \def\writedirect {\immediate\write\statuswrite} @@ -22,17 +19,4 @@ \let\writebanner \writestring \let\message \normalmessage -\ifx\normalwritestatus\undefined \def\normalwritestatus#1#2{\writedirect{#1 : #2}} \fi - -% no xml logging in format generation - -\everyjob {% we can redefine at the lua end ! - \doif {\ctxlua{tex.sprint(logs.getmethod())}} {xml} {% - \long\def\writebanner #1{\writestring {<m t='banner'>#1</m>}}% - \long\def\writestatus#1#2{\writestring {<m t='#1'>#2</m>}}% - \long\def\message #1{\normalmessage{<m t='message'>#1</m>}}% - \let\normalwritestatus\writestatus - }% -} - \endinput diff --git a/tex/context/base/tabl-ntb.mkiv b/tex/context/base/tabl-ntb.mkiv index e3e88d83f..11acaff9e 100644 --- a/tex/context/base/tabl-ntb.mkiv +++ b/tex/context/base/tabl-ntb.mkiv @@ -851,7 +851,7 @@ \def\eTBL{\tbltoks\@EA\@EA\@EA{\@EA\the\@EA\tbltoks\@EA\begintblrow\the\tblrowtoks\endtblrow}}% \def\prelocateTBLerror - {\writestatus\m!systems{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \number\prelocatedTBLrows)}} + {\writestatus\m!system{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \number\prelocatedTBLrows)}} \def\prelocateTBLrows#1% we start at zero so we have one to much, better play safe anyway {\dostepwiserecurse\prelocatedTBLrows{#1}\plusone{\expandafter\newtoks\csname tbl:\recurselevel\endcsname}% diff --git a/tex/context/base/trac-deb.lua b/tex/context/base/trac-deb.lua index 87355c61a..fdcc5513e 100644 --- a/tex/context/base/trac-deb.lua +++ b/tex/context/base/trac-deb.lua @@ -14,7 +14,7 @@ local texdimen, textoks, texcount = tex.dimen, tex.toks, tex.count -- maybe tracers -> tracers.tex (and tracers.lua for current debugger) -local report_system = logs.new("system") +local report_system = logs.new("system","tex") tracers = tracers or { } local tracers = tracers diff --git a/tex/context/base/trac-deb.mkiv b/tex/context/base/trac-deb.mkiv index e88a8a3f2..2eb44247a 100644 --- a/tex/context/base/trac-deb.mkiv +++ b/tex/context/base/trac-deb.mkiv @@ -33,3 +33,5 @@ \def\showdebuginfo{\ctxlua{lmx.showdebuginfo()}} \def\overloaderror{\ctxlua{lmx.overloaderror()}} % \enabledirectives[system.showerror] + +\def\showlogcategories {\ctxlua{logs.show()}} diff --git a/tex/context/base/trac-inf.lua b/tex/context/base/trac-inf.lua index aa224cf38..79007953a 100644 --- a/tex/context/base/trac-inf.lua +++ b/tex/context/base/trac-inf.lua @@ -137,19 +137,21 @@ function statistics.show(reporter) end end - -local template, nn = nil, 0 -- we only calcute it once +local template, report_statistics, nn = nil, nil, 0 -- we only calcute it once function statistics.showjobstat(tag,data,n) - if type(data) == "table" then + if not logs then + -- sorry + elseif type(data) == "table" then for i=1,#data do statistics.showjobstat(tag,data[i],n) end else if not template or n > nn then - template, n = format("%%-%ss: %%-%ss - %%s",15,n), nn + template, n = format("%%-%ss - %%s",n), nn + report_statistics = logs.new("mkiv lua stats") end - write_nl(format(template,"mkiv lua stats",tag,data)) + report_statistics(format(template,tag,data)) end end @@ -170,7 +172,7 @@ function statistics.runtime() end function statistics.timed(action,report) - report = report or logs.simple + report = report or logs.new("system") starttiming("run") action() stoptiming("run") diff --git a/tex/context/base/trac-log.lua b/tex/context/base/trac-log.lua index 6160e1b0f..41bd40eaf 100644 --- a/tex/context/base/trac-log.lua +++ b/tex/context/base/trac-log.lua @@ -6,22 +6,21 @@ if not modules then modules = { } end modules ['trac-log'] = { license = "see context related readme files" } --- xml logging is only usefull in normal runs, not in ini mode --- it looks like some tex logging (like filenames) is broken (no longer --- interceoted at the tex end so the xml variant is not that useable now) +-- todo: less categories, more subcategories (e.g. nodes) --~ io.stdout:setvbuf("no") --~ io.stderr:setvbuf("no") local write_nl, write = texio and texio.write_nl or print, texio and texio.write or io.write -local format, gmatch = string.format, string.gmatch +local format, gmatch, find = string.format, string.gmatch, string.find +local concat = table.concat +local escapedpattern = string.escapedpattern local texcount = tex and tex.count +local next, type = next, type --[[ldx-- -<p>This is a prelude to a more extensive logging module. For the sake -of parsing log files, in addition to the standard logging we will -provide an <l n='xml'/> structured file. Actually, any logging that -is hooked into callbacks will be \XML\ by default.</p> +<p>This is a prelude to a more extensive logging module. We no longer +provide <l n='xml'/> based logging a sparsing is relatively easy anyway.</p> --ldx]]-- logs = logs or { } @@ -39,109 +38,239 @@ webpage : http://www.pragma-ade.nl / http://tex.aanhet.net wiki : http://contextgarden.net ]] -local functions = { - 'report', 'status', 'start', 'stop', 'push', 'pop', 'line', 'direct', - 'start_run', 'stop_run', - 'start_page_number', 'stop_page_number', - 'report_output_pages', 'report_output_log', - 'report_tex_stat', 'report_job_stat', - 'show_open', 'show_close', 'show_load', - 'dummy', -} +-- local functions = { +-- 'report', 'status', 'start', 'stop', 'line', 'direct', +-- 'start_run', 'stop_run', +-- 'start_page_number', 'stop_page_number', +-- 'report_output_pages', 'report_output_log', +-- 'report_tex_stat', 'report_job_stat', +-- 'show_open', 'show_close', 'show_load', +-- 'dummy', +-- } -local method = "nop" +-- basic loggers -function logs.setmethod(newmethod) - method = newmethod - -- a direct copy might be faster but let's try this for a while - setmetatable(logs, { __index = logs[method] }) -end +local function ignore() end -function logs.getmethod() - return method -end +setmetatable(logs, { __index = function(t,k) t[k] = ignore ; return ignore end }) --- installer +-- local separator = (tex and (tex.jobname or tex.formatname)) and ">" or "|" -local data = { } +local report, subreport -function logs.new(category) - local logger = data[category] - if not logger then - logger = function(...) - logs.report(category,...) +if tex and tex.jobname or tex.formatname then + + report = function(a,b,c,...) + if c then + write_nl(format("%-15s > %s\n",a,format(b,c,...))) + elseif b then + write_nl(format("%-15s > %s\n",a,b)) + elseif a then + write_nl(format("%-15s >\n", a)) + else + write_nl("\n") end - data[category] = logger end - return logger -end ---~ local report = logs.new("fonts") - --- nop logging (maybe use __call instead) + subreport = function(a,sub,b,c,...) + if c then + write_nl(format("%-15s > %s > %s\n",a,sub,format(b,c,...))) + elseif b then + write_nl(format("%-15s > %s > %s\n",a,sub,b)) + elseif a then + write_nl(format("%-15s > %s >\n", a,sub)) + else + write_nl("\n") + end + end -local noplog = { } logs.nop = noplog setmetatable(logs, { __index = noplog }) +else -for i=1,#functions do - noplog[functions[i]] = function() end -end + report = function(a,b,c,...) + if c then + write_nl(format("%-15s | %s",a,format(b,c,...))) + elseif b then + write_nl(format("%-15s | %s",a,b)) + elseif a then + write_nl(format("%-15s |", a)) + else + write_nl("") + end + end --- tex logging + subreport = function(a,sub,b,c,...) + if c then + write_nl(format("%-15s | %s | %s",a,sub,format(b,c,...))) + elseif b then + write_nl(format("%-15s | %s | %s",a,sub,b)) + elseif a then + write_nl(format("%-15s | %s |", a,sub)) + else + write_nl("") + end + end -local texlog = { } logs.tex = texlog setmetatable(texlog, { __index = noplog }) +end -function texlog.report(a,b,c,...) ---~ print(a,b,c,...) +function logs.status(a,b,c,...) -- at the tex end if c then - write_nl(format("%-16s> %s\n",a,format(b,c,...))) + write_nl(format("%-15s : %s\n",a,format(b,c,...))) elseif b then - write_nl(format("%-16s> %s\n",a,b)) + write_nl(format("%-15s : %s\n",a,b)) -- b can have %'s + elseif a then + write_nl(format("%-15s :\n", a)) else - write_nl(format("%-16s>\n",a)) + write_nl("\n") end end -function texlog.status(a,b,c,...) - if c then - write_nl(format("%-16s: %s\n",a,format(b,c,...))) - elseif b then - write_nl(format("%-16s: %s\n",a,b)) -- b can have %'s - else - write_nl(format("%-16s:>\n",a)) +logs.report = report +logs.subreport = subreport + +-- installer + +-- todo: renew (un) locks when a new one is added and wildcard + +local data, states = { }, nil + +function logs.reporter(category,subcategory) + local logger = data[category] + if not logger then + local state = false + if states == true then + state = true + elseif type(states) == "table" then + for c, _ in next, states do + if find(category,c) then + state = true + break + end + end + end + logger = { + reporters = { }, + state = state, + } + data[category] = logger + end + local reporter = logger.reporters[subcategory or "default"] + if not reporter then + if subcategory then + reporter = function(...) + if not logger.state then + subreport(category,subcategory,...) + end + end + logger.reporters[subcategory] = reporter + else + local tag = category + reporter = function(...) + if not logger.state then + report(category,...) + end + end + logger.reporters.default = reporter + end end + return reporter end -function texlog.line(fmt,...) -- new - if fmt then - write_nl(format(fmt,...)) +logs.new = logs.reporter + +local function doset(category,value) + if category == true then + -- lock all + category, value = "*", true + elseif category == false then + -- unlock all + category, value = "*", false + elseif value == nil then + -- lock selective + value = true + end + if category == "*" then + states = value + for k, v in next, data do + v.state = value + end else - write_nl("") + states = utilities.parsers.settings_to_hash(category) + for c, _ in next, states do + if data[c] then + v.state = value + else + c = escapedpattern(c,true) + for k, v in next, data do + if find(k,c) then + v.state = value + end + end + end + end end end ---~ local hasscheme = url.hasscheme +function logs.disable(category,value) + doset(category,value == nil and true or value) +end ---~ function texlog.show_open(name) ---~ if hasscheme(name) ~= "virtual" then ---~ write(format("(",name)) -- tex adds a space ---~ end ---~ end +function logs.enable(category) + doset(category,false) +end ---~ function texlog.show_close(name) ---~ if hasscheme(name) ~= "virtual" then ---~ write(")") -- tex adds a space ---~ end ---~ end +function logs.categories() + return table.sortedkeys(data) +end + +function logs.show() + local n, c, s, max = 0, 0, 0, 0 + for category, v in table.sortedpairs(data) do + n = n + 1 + local state = v.state + local reporters = v.reporters + local nc = #category + if nc > c then + c = nc + end + for subcategory, _ in next, reporters do + local ns = #subcategory + if ns > c then + s = ns + end + local m = nc + ns + if m > max then + max = m + end + end + local subcategories = concat(table.sortedkeys(reporters),", ") + if state == true then + state = "disabled" + elseif state == false then + state = "enabled" + else + state = "unknown" + end + -- no new here + report("logging","category: '%s', subcategories: '%s', state: '%s'",category,subcategories,state) + end + report("logging","categories: %s, max category: %s, max subcategory: %s, max combined: %s",n,c,s,max) +end + +directives.register("logs.blocked", function(v) + doset(v,true) +end) + +-- tex specific loggers (might move elsewhere) + +local report_pages = logs.reporter("pages") -- not needed but saves checking when we grep for it local real, user, sub -function texlog.start_page_number() +function logs.start_page_number() real, user, sub = texcount.realpageno, texcount.userpageno, texcount.subpageno end -local report_pages = logs.new("pages") -- not needed but saves checking when we grep for it - -function texlog.stop_page_number() +function logs.stop_page_number() if real > 0 then if user > 0 then if sub > 0 then @@ -158,176 +287,98 @@ function texlog.stop_page_number() io.flush() end -texlog.report_job_stat = statistics and statistics.showjobstat +logs.report_job_stat = statistics and statistics.showjobstat --- xml logging +local report_files = logs.reporter("files") -local xmllog = { } logs.xml = xmllog setmetatable(xmllog, { __index = noplog }) +local nesting = 0 +local verbose = false -function xmllog.report(category,fmt,s,...) -- new - if s then - write_nl(format("<r category='%s'>%s</r>",category,format(fmt,s,...))) - elseif fmt then - write_nl(format("<r category='%s'>%s</r>",category,fmt)) - else - write_nl(format("<r category='%s'/>",category)) +function logs.show_open(name) + if verbose then + nesting = nesting + 1 + report_files("level %s, opening %s",nesting,name) end end -function xmllog.status(category,fmt,s,...) - if s then - write_nl(format("<s category='%s'>%s</r>",category,format(fmt,s,...))) - elseif fmt then - write_nl(format("<s category='%s'>%s</r>",category,fmt)) - else - write_nl(format("<s category='%s'/>",category)) +function logs.show_close(name) + if verbose then + report_files("level %s, closing %s",nesting,name) + nesting = nesting - 1 end end -function xmllog.line(fmt,...) -- new - if fmt then - write_nl(format("<r>%s</r>",format(fmt,...))) - else - write_nl("<r/>") +function logs.show_load(name) + if verbose then + report_files("level %s, loading %s",nesting+1,name) end end -function xmllog.start() write_nl("<%s>" ) end -function xmllog.stop () write_nl("</%s>") end -function xmllog.push () write_nl("<!-- ") end -function xmllog.pop () write_nl(" -->" ) end - -function xmllog.start_run() - write_nl("<?xml version='1.0' standalone='yes'?>") - write_nl("<job>") -- xmlns='www.pragma-ade.com/luatex/schemas/context-job.rng' - write_nl("") -end - -function xmllog.stop_run() - write_nl("</job>") -end - -function xmllog.start_page_number() - write_nl(format("<p real='%s' page='%s' sub='%s'", texcount.realpageno, texcount.userpageno, texcount.subpageno)) -end +-- there may be scripts out there using this: -function xmllog.stop_page_number() - write("/>") - write_nl("") -end +local simple = logs.reporter("comment") -function xmllog.report_output_pages(p,b) - write_nl(format("<v k='pages' v='%s'/>", p)) - write_nl(format("<v k='bytes' v='%s'/>", b)) - write_nl("") -end +logs.simple = simple +logs.simpleline = simple -function xmllog.report_output_log() - -- nothing -end - -function xmllog.report_tex_stat(k,v) - write_nl("log","<v k='"..k.."'>"..tostring(v).."</v>") -end - -local nesting = 0 - -function xmllog.show_open(name) - nesting = nesting + 1 - write_nl(format("<f l='%s' n='%s'>",nesting,name)) -end - -function xmllog.show_close(name) - write("</f> ") - nesting = nesting - 1 -end - -function xmllog.show_load(name) - write_nl(format("<f l='%s' n='%s'/>",nesting+1,name)) -end - --- initialization - -if tex and (tex.jobname or tex.formatname) then - -- todo: this can be set in mtxrun ... or maybe we should just forget about this alternative format - if (os.getenv("mtx.directives.logmethod") or os.getenv("mtx_directives_logmethod")) == "xml" then - logs.setmethod('xml') - else - logs.setmethod('tex') - end -else - logs.setmethod('nop') -end +-- obsolete --- logging in runners -> these are actually the nop loggers +function logs.setprogram () end -- obsolete +function logs.extendbanner() end -- obsolete +function logs.reportlines () end -- obsolete +function logs.reportbanner() end -- obsolete +function logs.reportline () end -- obsolete +function logs.simplelines () end -- obsolete +function logs.help () end -- obsolete -local name, banner = 'report', 'context' +-- applications -function noplog.report(category,fmt,...) -- todo: fmt,s - if fmt then - write_nl(format("%s | %s: %s",name,category,format(fmt,...))) - elseif category then - write_nl(format("%s | %s",name,category)) - else - write_nl(format("%s |",name)) +local function reportlines(t,str) + if str then + for line in gmatch(str,"(.-)[\n\r]") do + t.report(line) + end end end -noplog.status = noplog.report -- just to be sure, never used - -function noplog.simple(fmt,...) -- todo: fmt,s - if fmt then - write_nl(format("%s | %s",name,format(fmt,...))) - else - write_nl(format("%s |",name)) +local function reportbanner(t) + local banner = t.banner + if banner then + t.report(banner) + t.report() end end -if utilities then - utilities.report = function(...) logs.simple(...) end -end - -function logs.setprogram(newname,newbanner) - name, banner = newname, newbanner -end - -function logs.extendbanner(newbanner) - banner = banner .. " | ".. newbanner -end - -function logs.reportlines(str) -- todo: <lines></lines> - for line in gmatch(str,"(.-)[\n\r]") do - logs.report(line) +local function reporthelp(t,...) + local helpinfo = t.helpinfo + if type(helpinfo) == "string" then + reportlines(t,helpinfo) + elseif type(helpinfo) == "table" then + local tags = { ... } + for i=1,#tags do + reportlines(t,t.helpinfo[tags[i]]) + if i < #tags then + t.report() + end + end end end -function logs.reportline() -- for scripts too - logs.report() +local function reportinfo(t) + t.report() + reportlines(t,moreinfo) end -function logs.simpleline() - logs.report() +function logs.application(t) + t.name = t.name or "unknown" + t.banner = t.banner + t.report = logs.reporter(t.name) + t.help = function(...) reportbanner(t) ; reporthelp(t,...) ; reportinfo(t) end + t.identify = function() reportbanner(t) end + return t end -function logs.simplelines(str) -- todo: <lines></lines> - for line in gmatch(str,"(.-)[\n\r]") do - logs.simple(line) - end -end - -function logs.reportbanner() -- for scripts too - logs.report(banner) -end - -function logs.help(message,option) - logs.reportbanner() - logs.reportline() - logs.reportlines(message) - if option ~= "nomoreinfo" then - logs.reportline() - logs.reportlines(moreinfo) - end -end +-- somewhat special -- logging to a file @@ -340,7 +391,7 @@ end function logs.system(whereto,process,jobname,category,...) local message = format("%s %s => %s => %s => %s\r",os.date("%d/%m/%y %H:%m:%S"),process,jobname,category,format(...)) for i=1,10 do - local f = io.open(whereto,"a") + local f = io.open(whereto,"a") -- we can consider keepint the file open if f then f:write(message) f:close() @@ -351,52 +402,24 @@ function logs.system(whereto,process,jobname,category,...) end end --- bonus - -function logs.fatal(where,...) - logs.report(where,"fatal error: %s, aborting now",format(...)) - os.exit() -end - ---~ the traditional tex page number logging ---~ ---~ function logs.tex.start_page_number() ---~ local real, user, sub = texcount.realpageno, texcount.userpageno, texcount.subpageno ---~ if real > 0 then ---~ if user > 0 then ---~ if sub > 0 then ---~ write(format("[%s.%s.%s",real,user,sub)) ---~ else ---~ write(format("[%s.%s",real,user)) ---~ end ---~ else ---~ write(format("[%s",real)) ---~ end ---~ else ---~ write("[-") ---~ end ---~ end ---~ ---~ function logs.tex.stop_page_number() ---~ write("]") ---~ end +local report_system = logs.reporter("system","logs") function logs.obsolete(old,new) local o = loadstring("return " .. new)() if type(o) == "function" then return function(...) - logs.report("system","function %s is obsolete, use %s",old,new) + report_system("function %s is obsolete, use %s",old,new) loadstring(old .. "=" .. new .. " return ".. old)()(...) end elseif type(o) == "table" then local t, m = { }, { } m.__index = function(t,k) - logs.report("system","table %s is obsolete, use %s",old,new) + report_system("table %s is obsolete, use %s",old,new) m.__index, m.__newindex = o, o return o[k] end m.__newindex = function(t,k,v) - logs.report("system","table %s is obsolete, use %s",old,new) + report_system("table %s is obsolete, use %s",old,new) m.__index, m.__newindex = o, o o[k] = v end @@ -408,6 +431,10 @@ function logs.obsolete(old,new) end end +if utilities then + utilities.report = report_system +end + if tex and tex.error then function logs.texerrormessage(...) -- for the moment we put this function here tex.error(format(...), { }) diff --git a/tex/context/base/trac-pro.lua b/tex/context/base/trac-pro.lua index b06d63cfe..596d40897 100644 --- a/tex/context/base/trac-pro.lua +++ b/tex/context/base/trac-pro.lua @@ -17,7 +17,7 @@ local getmetatable, setmetatable, rawset, type = getmetatable, setmetatable, raw local trace_namespaces = false trackers.register("system.namespaces", function(v) trace_namespaces = v end) -local report_system = logs.new("system") +local report_system = logs.new("system","protection") namespaces = namespaces or { } local namespaces = namespaces diff --git a/tex/context/base/trac-set.lua b/tex/context/base/trac-set.lua index df0c4fe5c..3cf14acb2 100644 --- a/tex/context/base/trac-set.lua +++ b/tex/context/base/trac-set.lua @@ -26,14 +26,10 @@ local data = { } -- maybe just local local trace_initialize = false -- only for testing during development -local function report(a,b,...) - texio.write_nl(format("%-16s> %s",a,format(b,...))) -end - function setters.initialize(filename,name,values) -- filename only for diagnostics - local data = data[name] - if data then - data = data.data + local setter = data[name] + if setter then + local data = data.data if data then for key, value in next, values do -- key = gsub(key,"_",".") @@ -42,7 +38,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti if functions then if #functions > 0 and not functions.value then if trace_initialize then - report(name,"executing %s (%s -> %s)",key,filename,tostring(value)) + setter.report("executing %s (%s -> %s)",key,filename,tostring(value)) end for i=1,#functions do functions[i](value) @@ -50,7 +46,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti functions.value = value else if trace_initialize then - report(name,"skipping %s (%s -> %s)",key,filename,tostring(value)) + setter.report("skipping %s (%s -> %s)",key,filename,tostring(value)) end end else @@ -59,7 +55,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti functions = { default = value } data[key] = functions if trace_initialize then - report(name,"storing %s (%s -> %s)",key,filename,tostring(value)) + setter.report("storing %s (%s -> %s)",key,filename,tostring(value)) end end end @@ -86,10 +82,11 @@ local function set(t,what,newvalue) else value = is_boolean(value,value) end + w = escapedpattern(w,true) for name, functions in next, data do if done[name] then -- prevent recursion due to wildcards - elseif find(name,escapedpattern(w,true)) then + elseif find(name,w) then done[name] = true for i=1,#functions do functions[i](value) @@ -131,7 +128,7 @@ function setters.register(t,what,...) functions = { } data[what] = functions if trace_initialize then - report(t.name,"defining %s",what) + t.report("defining %s",what) end end local default = functions.default -- can be set from cnf file @@ -139,7 +136,7 @@ function setters.register(t,what,...) local typ = type(fnc) if typ == "string" then if trace_initialize then - report(t.name,"coupling %s to %s",what,fnc) + t.report("coupling %s to %s",what,fnc) end local s = fnc -- else wrong reference fnc = function(value) set(t,s,value) end @@ -193,9 +190,9 @@ function setters.list(t) -- pattern end function setters.show(t) - commands.writestatus("","") - local list = setters.list(t) local category = t.name + local list = setters.list(t) + t.report() for k=1,#list do local name = list[k] local functions = t.data[name] @@ -203,10 +200,10 @@ function setters.show(t) local value, default, modules = functions.value, functions.default, #functions value = value == nil and "unset" or tostring(value) default = default == nil and "unset" or tostring(default) - commands.writestatus(category,format("%-30s modules: %2i default: %5s value: %5s",name,modules,default,value)) + t.report("%-30s modules: %2i default: %6s value: %6s",name,modules,default,value) end end - commands.writestatus("","") + t.report() end -- we could have used a bit of oo and the trackers:enable syntax but @@ -216,57 +213,62 @@ end local enable, disable, register, list, show = setters.enable, setters.disable, setters.register, setters.list, setters.show +local function report(setter,...) + local report = logs and logs.report + if report then + report(setter.name,...) + else -- fallback, as this module is loaded before the logger + write_nl(format("%-16s: %s\n",setter.name,format(...))) + end +end + function setters.new(name) - local t -- we need to access it in t - t = { + local setter -- we need to access it in setter itself + setter = { data = allocate(), -- indexed, but also default and value fields name = name, - enable = function(...) enable (t,...) end, - disable = function(...) disable (t,...) end, - register = function(...) register(t,...) end, - list = function(...) list (t,...) end, - show = function(...) show (t,...) end, + report = function(...) report (setter,...) end, + enable = function(...) enable (setter,...) end, + disable = function(...) disable (setter,...) end, + register = function(...) register(setter,...) end, + list = function(...) list (setter,...) end, + show = function(...) show (setter,...) end, } - data[name] = t - return t + data[name] = setter + return setter end trackers = setters.new("trackers") directives = setters.new("directives") experiments = setters.new("experiments") -local t_enable, t_disable = trackers .enable, trackers .disable -local d_enable, d_disable = directives .enable, directives .disable -local e_enable, e_disable = experiments.enable, experiments.disable +local t_enable, t_disable, t_report = trackers .enable, trackers .disable, trackers .report +local d_enable, d_disable, d_report = directives .enable, directives .disable, directives .report +local e_enable, e_disable, e_report = experiments.enable, experiments.disable, experiments.report -- nice trick: we overload two of the directives related functions with variants that -- do tracing (itself using a tracker) .. proof of concept -local function report(...) -- messy .. chicken or egg - local p = (commands and commands.writestatus) or (logs and logs.report) - if p then p(...) end -end - local trace_directives = false local trace_directives = false trackers.register("system.directives", function(v) trace_directives = v end) local trace_experiments = false local trace_experiments = false trackers.register("system.experiments", function(v) trace_experiments = v end) function directives.enable(...) - report("directives","enabling: %s",concat({...}," ")) + d_report("enabling: %s",concat({...}," ")) d_enable(...) end function directives.disable(...) - report("directives","disabling: %s",concat({...}," ")) + d_report("disabling: %s",concat({...}," ")) d_disable(...) end function experiments.enable(...) - report("experiments","enabling: %s",concat({...}," ")) + e_report("enabling: %s",concat({...}," ")) e_enable(...) end function experiments.disable(...) - report("experiments","disabling: %s",concat({...}," ")) + e_report("disabling: %s",concat({...}," ")) e_disable(...) end diff --git a/tex/context/base/trac-tim.lua b/tex/context/base/trac-tim.lua index 2917a5686..de7ceca46 100644 --- a/tex/context/base/trac-tim.lua +++ b/tex/context/base/trac-tim.lua @@ -10,6 +10,7 @@ local format, gsub = string.format, string.gsub local concat, sort = table.concat, table.sort local next, tonumber = next, tonumber +moduledata = moduledata or { } moduledata.progress = moduledata.progress or { } local progress = moduledata.progress diff --git a/tex/context/base/type-ini.mkiv b/tex/context/base/type-ini.mkiv index 5c716abbe..f4b2b13d9 100644 --- a/tex/context/base/type-ini.mkiv +++ b/tex/context/base/type-ini.mkiv @@ -153,15 +153,6 @@ \def\doprocesstypescriptfile {\ctxcommand{doprocesstypescriptfile("\currenttypefile")}} -% \def\doprocesstypescriptfile -% {\startreadingfile -% \pushendofline -% \unprotect -% \readfile{\currenttypefile.\mksuffix}\donothing{\readfile\currenttypefile\donothing\donothing}% -% \protect -% \popendofline -% \stopreadingfile} - \def\usetypescriptonce {\dotripleempty\dousetypescriptonce} diff --git a/tex/context/base/type-otf.mkiv b/tex/context/base/type-otf.mkiv index 097141f5d..8d6cb1aad 100644 --- a/tex/context/base/type-otf.mkiv +++ b/tex/context/base/type-otf.mkiv @@ -1459,6 +1459,7 @@ \stoptypescript \starttypescript [math] [asana] [name] + \loadfontgoodies[asana-math] \definefontsynonym [MathRoman] [AsanaMath] [\s!features=\s!math\mathsizesuffix] \stoptypescript @@ -1494,12 +1495,15 @@ \stoptypescript \starttypescript [math] [cambria,cambria-m,cambria-a] [name] + \loadfontgoodies[cambria-math] \definefontsynonym [MathRoman] [CambriaMath] [\s!features=\s!math\mathsizesuffix] \stoptypescript \starttypescript [math] [cambria-x] [name] + \loadfontgoodies[cambria-math] \definefontsynonym [MathRoman] [CambriaMath] [\s!features=\s!math] \stoptypescript \starttypescript [math] [cambria-y] [name] + \loadfontgoodies[cambria-math] \definefontsynonym [MathRoman] [CambriaMath] [\s!features=\s!math-nostack\mathsizesuffix] \stoptypescript diff --git a/tex/context/base/typo-brk.lua b/tex/context/base/typo-brk.lua index 87645e05a..7111497fc 100644 --- a/tex/context/base/typo-brk.lua +++ b/tex/context/base/typo-brk.lua @@ -15,7 +15,7 @@ local format = string.format local trace_breakpoints = false trackers.register("typesetters.breakpoints", function(v) trace_breakpoints = v end) -local report_breakpoints = logs.new("breakpoints") +local report_breakpoints = logs.new("typesetting","breakpoints") local nodes, node = nodes, node diff --git a/tex/context/base/typo-cap.lua b/tex/context/base/typo-cap.lua index eee5208a4..f157ce875 100644 --- a/tex/context/base/typo-cap.lua +++ b/tex/context/base/typo-cap.lua @@ -12,7 +12,7 @@ local div = math.div local trace_casing = false trackers.register("typesetters.casing", function(v) trace_casing = v end) -local report_casing = logs.new("casing") +local report_casing = logs.new("typesetting","casing") local nodes, node = nodes, node diff --git a/tex/context/base/typo-dig.lua b/tex/context/base/typo-dig.lua index 840ef54d8..3ef8e162b 100644 --- a/tex/context/base/typo-dig.lua +++ b/tex/context/base/typo-dig.lua @@ -15,7 +15,7 @@ local round, div = math.round, math.div local trace_digits = false trackers.register("typesetters.digits", function(v) trace_digits = v end) -local report_digits = logs.new("digits") +local report_digits = logs.new("typesetting","digits") local nodes, node = nodes, node diff --git a/tex/context/base/typo-dir.lua b/tex/context/base/typo-dir.lua index 006c184c6..5a427ef55 100644 --- a/tex/context/base/typo-dir.lua +++ b/tex/context/base/typo-dir.lua @@ -14,11 +14,11 @@ local utfchar = utf.char -- vertical space handler -local trace_directions = false trackers.register("typesetters.directions", function(v) trace_directions = v end) +local nodes, node = nodes, node -local report_directions = logs.new("directions") +local trace_directions = false trackers.register("typesetters.directions", function(v) trace_directions = v end) -local nodes, node = nodes, node +local report_directions = logs.new("typesetting","directions") local has_attribute = node.has_attribute local unset_attribute = node.unset_attribute diff --git a/tex/context/base/typo-rep.lua b/tex/context/base/typo-rep.lua index 5519207e2..f90ce16ef 100644 --- a/tex/context/base/typo-rep.lua +++ b/tex/context/base/typo-rep.lua @@ -13,7 +13,7 @@ if not modules then modules = { } end modules ['typo-rep'] = { local trace_stripping = false trackers.register("nodes.stripping", function(v) trace_stripping = v end) trackers.register("fonts.stripping", function(v) trace_stripping = v end) -local report_fonts = logs.new("fonts") +local report_stripping = logs.new("fonts","stripping") local nodes, node = nodes, node @@ -50,20 +50,20 @@ end local function process(what,head,current,char) if what == true then if trace_stripping then - report_fonts("deleting 0x%05X from text",char) + report_stripping("deleting 0x%05X from text",char) end head, current = delete_node(head,current) elseif type(what) == "function" then head, current = what(head,current) current = current.next if trace_stripping then - report_fonts("processing 0x%05X in text",char) + report_stripping("processing 0x%05X in text",char) end elseif what then -- assume node head, current = replace_node(head,current,copy_node(what)) current = current.next if trace_stripping then - report_fonts("replacing 0x%05X in text",char) + report_stripping("replacing 0x%05X in text",char) end end return head, current diff --git a/tex/context/base/typo-spa.lua b/tex/context/base/typo-spa.lua index e351cc9f7..2b89df515 100644 --- a/tex/context/base/typo-spa.lua +++ b/tex/context/base/typo-spa.lua @@ -15,7 +15,7 @@ local utfchar = utf.char local trace_spacing = false trackers.register("typesetters.spacing", function(v) trace_spacing = v end) -local report_spacing = logs.new("spacing") +local report_spacing = logs.new("typesetting","spacing") local nodes, fonts, node = nodes, fonts, node diff --git a/tex/context/base/util-lua.lua b/tex/context/base/util-lua.lua index 6ad325fcf..93ae16f47 100644 --- a/tex/context/base/util-lua.lua +++ b/tex/context/base/util-lua.lua @@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['util-lua'] = { utilities = utilities or {} utilities.lua = utilities.lua or { } -utilities.report = utilities.report or print +utilities.report = logs and logs.new("system") or print function utilities.lua.compile(luafile,lucfile,cleanup,strip) -- defaults: cleanup=false strip=true utilities.report("lua: compiling %s into %s",luafile,lucfile) diff --git a/tex/context/base/util-mrg.lua b/tex/context/base/util-mrg.lua index 8b09d4ee6..6eba76d99 100644 --- a/tex/context/base/util-mrg.lua +++ b/tex/context/base/util-mrg.lua @@ -14,7 +14,7 @@ local type, next = type, next utilities = utilities or {} utilities.merger = utilities.merger or { } -- maybe mergers -utilities.report = utilities.report or print +utilities.report = logs and logs.new("system") or print local merger = utilities.merger diff --git a/tex/context/base/x-asciimath.lua b/tex/context/base/x-asciimath.lua index 925911a8d..affb24ef9 100644 --- a/tex/context/base/x-asciimath.lua +++ b/tex/context/base/x-asciimath.lua @@ -16,7 +16,7 @@ local asciimath = { } local moduledata = moduledata or { } moduledata.asciimath = asciimath -local report_asciimath = logs.new("asciimath") +local report_asciimath = logs.new("mathematics","asciimath") local format = string.format local texsprint, ctxcatcodes = tex.sprint, tex.ctxcatcodes @@ -170,22 +170,22 @@ local parser local function converted(original,totex) local ok, result if trace_mapping then - report_asciimath("original : %s",original) + report_asciimath("original : %s",original) end local premapped = lpegmatch(premapper,original) if premapped then if trace_mapping then - report_asciimath("prepared : %s",premapped) + report_asciimath("prepared : %s",premapped) end local parsed = lpegmatch(parser,premapped) if parsed then if trace_mapping then - report_asciimath("parsed : %s",parsed) + report_asciimath("parsed : %s",parsed) end local postmapped = lpegmatch(postmapper,parsed) if postmapped then if trace_mapping then - report_asciimath("finalized : %s",postmapped) + report_asciimath("finalized: %s",postmapped) end result, ok = postmapped, true else diff --git a/tex/context/fonts/asana-math.lfg b/tex/context/fonts/asana-math.lfg new file mode 100644 index 000000000..160b310f5 --- /dev/null +++ b/tex/context/fonts/asana-math.lfg @@ -0,0 +1,25 @@ +-- This patch code is moved from font-pat.lua to this goodies +-- files as it does not belomg in the core code. + +local patches = fonts.otf.enhancers.patches + +local function patch(data,filename,threshold) + local m = data.metadata.math + if m then + local d = m.DisplayOperatorMinHeight or 0 + if d < threshold then + patches.report("DisplayOperatorMinHeight(%s -> %s)",d,threshold) + m.DisplayOperatorMinHeight = threshold + end + end +end + +patches.register("after","check math parameters","asana",function(data,filename) patch(data,filename,1350) end) + +return { + name = "lm-asana", + version = "1.00", + comment = "Goodies that complement asana.", + author = "Hans Hagen", + copyright = "ConTeXt development team", +} diff --git a/tex/context/fonts/cambria-math.lfg b/tex/context/fonts/cambria-math.lfg new file mode 100644 index 000000000..26972c9e4 --- /dev/null +++ b/tex/context/fonts/cambria-math.lfg @@ -0,0 +1,26 @@ +-- This patch code is moved from font-pat.lua to this goodies +-- files as it does not belomg in the core code. + +local patches = fonts.otf.enhancers.patches + +local function patch(data,filename,threshold) + local m = data.metadata.math + if m then + local d = m.DisplayOperatorMinHeight or 0 + if d < threshold then + patches.report("DisplayOperatorMinHeight(%s -> %s)",d,threshold) + m.DisplayOperatorMinHeight = threshold + end + end +end + +patches.register("after","check math parameters","cambria", function(data,filename) patch(data,filename,2800) end) +patches.register("after","check math parameters","cambmath",function(data,filename) patch(data,filename,2800) end) + +return { + name = "lm-cambria", + version = "1.00", + comment = "Goodies that complement cambria.", + author = "Hans Hagen", + copyright = "ConTeXt development team", +} diff --git a/tex/context/fonts/lm-math.lfg b/tex/context/fonts/lm-math.lfg index 9b2fe0f2d..042f3026e 100644 --- a/tex/context/fonts/lm-math.lfg +++ b/tex/context/fonts/lm-math.lfg @@ -1,3 +1,34 @@ +-- This patch code is moved from font-pat.lua to this goodies +-- files as it does not belomg in the core code. + +local patches = fonts.otf.enhancers.patches + +local function patch(data,filename) + local uni_to_ind = data.map.map + if not uni_to_ind[0x391] then + -- beware, this is a hack, features for latin often don't apply to greek + -- but lm has not much features anyway (and only greek for math) + patches.report("adding 13 greek capitals") + uni_to_ind[0x391] = uni_to_ind[0x41] + uni_to_ind[0x392] = uni_to_ind[0x42] + uni_to_ind[0x395] = uni_to_ind[0x45] + uni_to_ind[0x397] = uni_to_ind[0x48] + uni_to_ind[0x399] = uni_to_ind[0x49] + uni_to_ind[0x39A] = uni_to_ind[0x4B] + uni_to_ind[0x39C] = uni_to_ind[0x4D] + uni_to_ind[0x39D] = uni_to_ind[0x4E] + uni_to_ind[0x39F] = uni_to_ind[0x4F] + uni_to_ind[0x3A1] = uni_to_ind[0x52] + uni_to_ind[0x3A4] = uni_to_ind[0x54] + uni_to_ind[0x3A7] = uni_to_ind[0x58] + uni_to_ind[0x396] = uni_to_ind[0x5A] + end +end + +patches.register("after","prepare glyphs","^lmroman", patch) +patches.register("after","prepare glyphs","^lmsans", patch) +patches.register("after","prepare glyphs","^lmtypewriter",patch) + -- rm-lmr5 : LMMathRoman5-Regular -- rm-lmbx5 : LMMathRoman5-Bold ] -- lmbsy5 : LMMathSymbols5-BoldItalic diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua index 3310c642c..4312d66ab 100644 --- a/tex/generic/context/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 02/04/11 19:31:45 +-- merge date : 02/08/11 10:06:31 do -- begin closure to overcome local limits and interference @@ -99,11 +99,7 @@ local simple_escapes = { } function string.escapedpattern(str,simple) - if simple then - return (gsub(str,".",simple_escapes)) - else - return (gsub(str,".",patterns_escapes)) - end + return (gsub(str,".",simple and simple_escapes or patterns_escapes)) end function string.topattern(str,lowercase,strict) @@ -556,11 +552,7 @@ local p = Cs((S("-.+*%()[]") / patterns_escapes + anything)^0) local s = Cs((S("-.+*%()[]") / simple_escapes + anything)^0) function string.escapedpattern(str,simple) - if simple then - return match(s,str) - else - return match(p,str) - end + return match(simple and s or p,str) end -- utf extensies @@ -2606,11 +2598,11 @@ containers = containers or { } local containers = containers containers.usecache = true -local report_cache = logs.new("cache") +local report_containers = logs.new("resolvers","containers") local function report(container,tag,name) if trace_cache or trace_containers then - report_cache("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') + report_containers("container: %s, tag: %s, name: %s",container.subcategory,tag,name or 'invalid') end end @@ -2879,7 +2871,7 @@ local next = next local trace_injections = false trackers.register("nodes.injections", function(v) trace_injections = v end) -local report_injections = logs.new("injections") +local report_injections = logs.new("nodes","injections") local attributes, nodes, node = attributes, nodes, node @@ -3332,7 +3324,7 @@ local write_nl = texio.write_nl local lower = string.lower local allocate, mark = utilities.storage.allocate, utilities.storage.mark -local report_define = logs.new("define fonts") +local report_defining = logs.new("fonts","defining") fontloader.totable = fontloader.to_table @@ -3421,7 +3413,7 @@ function fonts.fontformat(filename,default) if format then return format else - report_define("unable to determine font format for '%s'",filename) + report_defining("unable to determine font format for '%s'",filename) return default end end @@ -3448,7 +3440,7 @@ local allocate = utilities.storage.allocate local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end) local trace_scaling = false trackers.register("fonts.scaling" , function(v) trace_scaling = v end) -local report_define = logs.new("define fonts") +local report_defining = logs.new("fonts","defining") -- tfmdata has also fast access to indices and unicodes -- to be checked: otf -> tfm -> tfmscaled @@ -3494,7 +3486,7 @@ function tfm.read_from_tfm(specification) local fname, tfmdata = specification.filename or "", nil if fname ~= "" then if trace_defining then - report_define("loading tfm file %s at size %s",fname,specification.size) + report_defining("loading tfm file %s at size %s",fname,specification.size) end tfmdata = font.read_tfm(fname,specification.size) -- not cached, fast enough if tfmdata then @@ -3517,7 +3509,7 @@ function tfm.read_from_tfm(specification) tfm.enhance(tfmdata,specification) end elseif trace_defining then - report_define("loading tfm with name %s fails",specification.name) + report_defining("loading tfm with name %s fails",specification.name) end return tfmdata end @@ -3853,7 +3845,7 @@ function tfm.scale(tfmtable, scaledpoints, relativeid) end end -- if trace_scaling then - -- report_define("t=%s, u=%s, i=%s, n=%s c=%s",k,chr.tounicode or "",index or 0,description.name or '-',description.class or '-') + -- report_defining("t=%s, u=%s, i=%s, n=%s c=%s",k,chr.tounicode or "",index or 0,description.name or '-',description.class or '-') -- end if tounicode then local tu = tounicode[index] -- nb: index! @@ -3890,7 +3882,7 @@ function tfm.scale(tfmtable, scaledpoints, relativeid) if vn then chr.next = vn --~ if v.vert_variants or v.horiz_variants then - --~ report_define("glyph 0x%05X has combination of next, vert_variants and horiz_variants",index) + --~ report_defining("glyph 0x%05X has combination of next, vert_variants and horiz_variants",index) --~ end else local vv = v.vert_variants @@ -4062,11 +4054,11 @@ function tfm.scale(tfmtable, scaledpoints, relativeid) -- can have multiple subfonts if hasmath then if trace_defining then - report_define("math enabled for: name '%s', fullname: '%s', filename: '%s'",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename") + report_defining("math enabled for: name '%s', fullname: '%s', filename: '%s'",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename") end else if trace_defining then - report_define("math disabled for: name '%s', fullname: '%s', filename: '%s'",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename") + report_defining("math disabled for: name '%s', fullname: '%s', filename: '%s'",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename") end t.nomath, t.MathConstants = true, nil end @@ -4075,8 +4067,8 @@ function tfm.scale(tfmtable, scaledpoints, relativeid) t.psname = t.fontname or (t.fullname and fonts.names.cleanname(t.fullname)) end if trace_defining then - report_define("used for accessing (sub)font: '%s'",t.psname or "nopsname") - report_define("used for subsetting: '%s'",t.fontname or "nofontname") + report_defining("used for accessing (sub)font: '%s'",t.psname or "nopsname") + report_defining("used for subsetting: '%s'",t.fontname or "nofontname") end -- this will move up (side effect of merging split call) t.factor = delta @@ -4179,18 +4171,18 @@ function tfm.checkedfilename(metadata,whatever) askedfilename = resolvers.resolve(askedfilename) -- no shortcut foundfilename = resolvers.findbinfile(askedfilename,"") or "" if foundfilename == "" then - report_define("source file '%s' is not found",askedfilename) + report_defining("source file '%s' is not found",askedfilename) foundfilename = resolvers.findbinfile(file.basename(askedfilename),"") or "" if foundfilename ~= "" then - report_define("using source file '%s' (cache mismatch)",foundfilename) + report_defining("using source file '%s' (cache mismatch)",foundfilename) end end elseif whatever then - report_define("no source file for '%s'",whatever) + report_defining("no source file for '%s'",whatever) foundfilename = "" end metadata.foundfilename = foundfilename - -- report_define("using source file '%s'",foundfilename) + -- report_defining("using source file '%s'",foundfilename) end return foundfilename end @@ -4219,7 +4211,7 @@ local lpegmatch = lpeg.match local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") local fonts = fonts @@ -5341,7 +5333,7 @@ local utfbyte = utf.byte local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end) local trace_unimapping = false trackers.register("otf.unimapping", function(v) trace_unimapping = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") --[[ldx-- <p>Eventually this code will disappear because map files are kind @@ -5638,7 +5630,7 @@ local trace_sequences = false trackers.register("otf.sequences", function(v) local trace_math = false trackers.register("otf.math", function(v) trace_math = v end) local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") local starttiming, stoptiming, elapsedtime = statistics.starttiming, statistics.stoptiming, statistics.elapsedtime @@ -5658,6 +5650,7 @@ otf.features.default = otf.features.default or { } otf.enhancers = allocate() local enhancers = otf.enhancers enhancers.patches = { } +local patches = enhancers.patches local definers = fonts.definers @@ -5870,11 +5863,11 @@ local ordered_enhancers = { local actions = { } -enhancers.patches.before = allocate() -enhancers.patches.after = allocate() +patches.before = allocate() +patches.after = allocate() -local before = enhancers.patches.before -local after = enhancers.patches.after +local before = patches.before +local after = patches.after local function enhance(name,data,filename,raw,verbose) local enhancer = actions[name] @@ -5918,9 +5911,9 @@ function enhancers.apply(data,filename,raw,verbose) ioflush() -- we want instant messages end --- enhancers.patches.register("before","migrate metadata","cambria",function() end) +-- patches.register("before","migrate metadata","cambria",function() end) -function enhancers.patches.register(what,where,pattern,action) +function patches.register(what,where,pattern,action) local ww = what[where] if ww then ww[pattern] = action @@ -5929,6 +5922,12 @@ function enhancers.patches.register(what,where,pattern,action) end end +function patches.report(fmt,...) + if trace_loading then + report_otf("patching: " ..fmt,...) + end +end + function enhancers.register(what,action) -- only already registered can be overloaded actions[what] = action end @@ -7531,7 +7530,7 @@ if not modules then modules = { } end modules ['font-otd'] = { local trace_dynamics = false trackers.register("otf.dynamics", function(v) trace_dynamics = v end) -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") local fonts = fonts local otf = fonts.otf @@ -7705,7 +7704,7 @@ local trace_ligatures = false trackers.register("otf.ligatures", function local trace_kerns = false trackers.register("otf.kerns", function(v) trace_kerns = v end) local trace_preparing = false trackers.register("otf.preparing", function(v) trace_preparing = v end) -local report_prepare = logs.new("otf prepare") +local report_prepare = logs.new("fonts","otf prepare") local wildcard = "*" local default = "dflt" @@ -8223,11 +8222,11 @@ local trace_steps = false trackers.register("otf.steps", function local trace_skips = false trackers.register("otf.skips", function(v) trace_skips = v end) local trace_directions = false trackers.register("otf.directions", function(v) trace_directions = v end) -local report_direct = logs.new("otf direct") -local report_subchain = logs.new("otf subchain") -local report_chain = logs.new("otf chain") -local report_process = logs.new("otf process") -local report_prepare = logs.new("otf prepare") +local report_direct = logs.new("fonts","otf direct") +local report_subchain = logs.new("fonts","otf subchain") +local report_chain = logs.new("fonts","otf chain") +local report_process = logs.new("fonts","otf process") +local report_prepare = logs.new("fonts","otf prepare") trackers.register("otf.verbose_chain", function(v) otf.setcontextchain(v and "verbose") end) trackers.register("otf.normal_chain", function(v) otf.setcontextchain(v and "normal") end) @@ -11096,7 +11095,7 @@ local trace_loading = false trackers.register("otf.loading", function(v) trace_ local fonts = fonts local otf = fonts.otf -local report_otf = logs.new("load otf") +local report_otf = logs.new("fonts","otf loading") -- instead of "script = "DFLT", langs = { 'dflt' }" we now use wildcards (we used to -- have always); some day we can write a "force always when true" trick for other @@ -15303,8 +15302,8 @@ local directive_embedall = false directives.register("fonts.embedall", function trackers.register("fonts.loading", "fonts.defining", "otf.loading", "afm.loading", "tfm.loading") trackers.register("fonts.all", "fonts.*", "otf.*", "afm.*", "tfm.*") -local report_define = logs.new("define fonts") -local report_afm = logs.new("load afm") +local report_defining = logs.new("fonts","defining") +local report_afm = logs.new("fonts","afm loading") --[[ldx-- <p>Here we deal with defining fonts. We do so by intercepting the @@ -15419,7 +15418,7 @@ end function definers.makespecification(specification, lookup, name, sub, method, detail, size) size = size or 655360 if trace_defining then - report_define("%s -> lookup: %s, name: %s, sub: %s, method: %s, detail: %s", + report_defining("%s -> lookup: %s, name: %s, sub: %s, method: %s, detail: %s", specification, (lookup ~= "" and lookup) or "[file]", (name ~= "" and name) or "-", (sub ~= "" and sub) or "-", (method ~= "" and method) or "-", (detail ~= "" and detail) or "-") end @@ -15627,14 +15626,14 @@ function tfm.read(specification) local reader = readers[lower(forced)] tfmtable = reader and reader(specification) if not tfmtable then - report_define("forced type %s of %s not found",forced,specification.name) + report_defining("forced type %s of %s not found",forced,specification.name) end else for s=1,#sequence do -- reader sequence local reader = sequence[s] if readers[reader] then -- not really needed if trace_defining then - report_define("trying (reader sequence driven) type %s for %s with file %s",reader,specification.name,specification.filename or "unknown") + report_defining("trying (reader sequence driven) type %s for %s with file %s",reader,specification.name,specification.filename or "unknown") end tfmtable = readers[reader](specification) if tfmtable then @@ -15659,7 +15658,7 @@ function tfm.read(specification) end end if not tfmtable then - report_define("font with asked name '%s' is not found using lookup '%s'",specification.name,specification.lookup) + report_defining("font with asked name '%s' is not found using lookup '%s'",specification.name,specification.lookup) end return tfmtable end @@ -15877,7 +15876,7 @@ function definers.register(tfmdata,id) -- will be overloaded local hash = tfmdata.hash if not internalized[hash] then if trace_defining then - report_define("registering font, id: %s, hash: %s",id or "?",hash or "?") + report_defining("registering font, id: %s, hash: %s",id or "?",hash or "?") end fonts.identifiers[id] = tfmdata internalized[hash] = id @@ -15945,9 +15944,9 @@ function definers.read(specification,size,id) -- id can be optional, name can al end lastdefined = tfmdata or id -- todo ! ! ! ! ! if not tfmdata then -- or id? - report_define( "unknown font %s, loading aborted",specification.name) + report_defining( "unknown font %s, loading aborted",specification.name) elseif trace_defining and type(tfmdata) == "table" then - report_define("using %s font with id %s, name:%s size:%s bytes:%s encoding:%s fullname:%s filename:%s", + report_defining("using %s font with id %s, name:%s size:%s bytes:%s encoding:%s fullname:%s filename:%s", tfmdata.type or "unknown", id or "?", tfmdata.name or "?", @@ -15967,18 +15966,18 @@ function vf.find(name) local format = fonts.logger.format(name) if format == 'tfm' or format == 'ofm' then if trace_defining then - report_define("locating vf for %s",name) + report_defining("locating vf for %s",name) end return findbinfile(name,"ovf") else if trace_defining then - report_define("vf for %s is already taken care of",name) + report_defining("vf for %s is already taken care of",name) end return nil -- "" end else if trace_defining then - report_define("locating vf for %s",name) + report_defining("locating vf for %s",name) end return findbinfile(name,"ovf") end |