summaryrefslogtreecommitdiff
path: root/scripts/context/lua/mtxrun.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/context/lua/mtxrun.lua')
-rw-r--r--scripts/context/lua/mtxrun.lua58
1 files changed, 52 insertions, 6 deletions
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index e8de4ee70..0207724dd 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -11168,7 +11168,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-xml"] = package.loaded["trac-xml"] or true
--- original size: 4104, stripped down to: 3380
+-- original size: 5959, stripped down to: 4592
if not modules then modules={} end modules ['trac-xml']={
version=1.001,
@@ -11241,9 +11241,41 @@ local function showhelp(specification,...)
end
local reporthelp=reporters.help
local exporthelp=reporters.export
-function reporters.help(t,...)
+local function xmlfound(t)
local helpinfo=t.helpinfo
- if type(helpinfo)=="string" and string.find(helpinfo,"^<%?xml") then
+ if type(helpinfo)=="table" then
+ return false
+ end
+ if type(helpinfo)~="string" then
+ helpinfo="Warning: no helpinfo found."
+ t.helpinfo=helpinfo
+ return false
+ end
+ if string.find(helpinfo,".xml$") then
+ local ownscript=environment.ownscript
+ local helpdata=false
+ if ownscript then
+ local helpfile=file.join(file.pathpart(ownscript),helpinfo)
+ helpdata=io.loaddata(helpfile)
+ if helpdata=="" then
+ helpdata=false
+ end
+ end
+ if not helpdata then
+ local helpfile=resolvers.findfile(helpinfo,"tex")
+ helpdata=helpfile and io.loaddata(helpfile)
+ end
+ if helpdata and helpdata~="" then
+ helpinfo=helpdata
+ else
+ helpinfo=formatters["Warning: help file %a is not found."](helpinfo)
+ end
+ end
+ t.helpinfo=helpinfo
+ return string.find(t.helpinfo,"^<%?xml") and true or false
+end
+function reporters.help(t,...)
+ if xmlfound(t) then
showhelp(t,...)
else
reporthelp(t,...)
@@ -11251,16 +11283,30 @@ function reporters.help(t,...)
end
local exporters=logs.exporters
function reporters.export(t,method,filename)
+ if not xmlfound(t) then
+ return exporthelp(t)
+ end
dofile(resolvers.findfile("trac-exp.lua","tex"))
if not exporters or not method then
return exporthelp(t)
end
+ if not method or method=="" then
+ method=environment.argument["exporthelp"]
+ end
+ if not filename or filename=="" then
+ filename=environment.files[1]
+ end
if method=="all" then
method=table.keys(exporters)
else
method={ method }
end
- filename=type(filename)=="string" and filename~="" and filename or false
+ if type(filename)~="string" or filename=="" then
+ filename=false
+ elseif file.pathpart(filename)=="" then
+ t.report("export file %a will not be saved on the current path (safeguard)")
+ filename=false
+ end
for i=1,#method do
local m=method[i]
local result=exporters[m](t,m)
@@ -15525,8 +15571,8 @@ end -- of closure
-- used libraries : l-lua.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 642686
--- stripped bytes : 233038
+-- original bytes : 644541
+-- stripped bytes : 233681
-- end library merge