summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/context
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-08 22:44:34 +0000
committerKarl Berry <karl@freefriends.org>2016-05-08 22:44:34 +0000
commitfa5d18c2f98ae3bca364f3c19804bd42f8305512 (patch)
tree46de646df6b2cff7ab3793e4806f0e5b5a5aa741 /Master/texmf-dist/scripts/context
parent43354cc71f70a0e237312e593234b6a4efab3eb2 (diff)
context
git-svn-id: svn://tug.org/texlive/trunk@40962 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/context')
-rw-r--r--Master/texmf-dist/scripts/context/lua/mtx-context.lua101
-rw-r--r--Master/texmf-dist/scripts/context/lua/mtx-context.xml5
-rw-r--r--Master/texmf-dist/scripts/context/lua/mtx-modules.lua2
-rw-r--r--Master/texmf-dist/scripts/context/lua/mtx-patterns.lua14
-rw-r--r--Master/texmf-dist/scripts/context/lua/mtx-plain.lua20
5 files changed, 85 insertions, 57 deletions
diff --git a/Master/texmf-dist/scripts/context/lua/mtx-context.lua b/Master/texmf-dist/scripts/context/lua/mtx-context.lua
index dce9170ccbc..a5f01cebc1f 100644
--- a/Master/texmf-dist/scripts/context/lua/mtx-context.lua
+++ b/Master/texmf-dist/scripts/context/lua/mtx-context.lua
@@ -572,29 +572,30 @@ function scripts.context.run(ctxdata,filename)
return
end
--
- local a_mkii = getargument("mkii") or getargument("pdftex") or getargument("xetex")
- local a_purge = getargument("purge")
- local a_purgeall = getargument("purgeall")
- local a_purgeresult = getargument("purgeresult")
- local a_global = getargument("global")
- local a_timing = getargument("timing")
- local a_profile = getargument("profile")
- local a_batchmode = getargument("batchmode")
- local a_nonstopmode = getargument("nonstopmode")
- local a_scollmode = getargument("scrollmode")
- local a_once = getargument("once")
- local a_synctex = getargument("synctex")
- local a_backend = getargument("backend")
- local a_arrange = getargument("arrange")
- local a_noarrange = getargument("noarrange")
- local a_jiton = getargument("jiton")
- local a_jithash = getargument("jithash")
- local a_texformat = getargument("texformat")
- local a_keeptuc = getargument("keeptuc")
- local a_keeplog = getargument("keeplog")
- local a_export = getargument("export")
- local a_nodates = getargument("nodates")
- local a_trailerid = getargument("trailerid")
+ local a_mkii = getargument("mkii") or getargument("pdftex") or getargument("xetex")
+ local a_purge = getargument("purge")
+ local a_purgeall = getargument("purgeall")
+ local a_purgeresult = getargument("purgeresult")
+ local a_global = getargument("global")
+ local a_timing = getargument("timing")
+ local a_profile = getargument("profile")
+ local a_batchmode = getargument("batchmode")
+ local a_nonstopmode = getargument("nonstopmode")
+ local a_scollmode = getargument("scrollmode")
+ local a_once = getargument("once")
+ local a_synctex = getargument("synctex")
+ local a_backend = getargument("backend")
+ local a_arrange = getargument("arrange")
+ local a_noarrange = getargument("noarrange")
+ local a_jiton = getargument("jiton")
+ local a_jithash = getargument("jithash")
+ local a_texformat = getargument("texformat")
+ local a_keeptuc = getargument("keeptuc")
+ local a_keeplog = getargument("keeplog")
+ local a_export = getargument("export")
+ local a_nodates = getargument("nodates")
+ local a_trailerid = getargument("trailerid")
+ local a_nocompression = getargument("nocompression")
-- the following flag is not officially supported because i cannot forsee
-- side effects (so no bug reports please) .. we provide --sandbox that
@@ -707,21 +708,23 @@ function scripts.context.run(ctxdata,filename)
scripts.context.make(formatname)
end
--
- local oldhash = multipass_hashfiles(jobname)
- local newhash = { }
- local maxnofruns = once and 1 or multipass_nofruns
+ local oldhash = multipass_hashfiles(jobname)
+ local newhash = { }
+ local maxnofruns = once and 1 or multipass_nofruns
+ local fulljobname = validstring(filename)
--
local c_flags = {
- directives = directives, -- gets passed via mtxrun
- trackers = trackers, -- gets passed via mtxrun
- experiments = experiments, -- gets passed via mtxrun
+ directives = directives, -- gets passed via mtxrun
+ trackers = trackers, -- gets passed via mtxrun
+ experiments = experiments, -- gets passed via mtxrun
--
- result = validstring(resultname),
- input = validstring(getargument("input") or filename), -- alternative input
- fulljobname = validstring(filename),
- files = concat(files,","),
- ctx = validstring(ctxname),
- export = a_export and true or nil,
+ result = validstring(resultname),
+ input = validstring(getargument("input") or filename), -- alternative input
+ fulljobname = fulljobname,
+ files = concat(files,","),
+ ctx = validstring(ctxname),
+ export = a_export and true or nil,
+ nocompression = a_nocompression and true or nil,
}
--
for k, v in next, environment.arguments do
@@ -758,7 +761,7 @@ function scripts.context.run(ctxdata,filename)
local directives = { }
--
if a_nodates then
- directives[#directives+1] = "backend.nodates"
+ directives[#directives+1] = format("backend.date=%s",type(a_nodates) == "string" and a_nodates or " no")
end
--
if a_trailerid then
@@ -848,9 +851,9 @@ function scripts.context.run(ctxdata,filename)
end
--
if a_purge then
- scripts.context.purge_job(jobname)
+ scripts.context.purge_job(jobname,false,false,fulljobname)
elseif a_purgeall then
- scripts.context.purge_job(jobname,true)
+ scripts.context.purge_job(jobname,true,false,fulljobname)
end
--
if resultname then
@@ -864,11 +867,13 @@ function scripts.context.run(ctxdata,filename)
report("result renamed to: %s",newbase)
end
--
- if purge then
- scripts.context.purge_job(resultname)
- elseif purgeall then
- scripts.context.purge_job(resultname,true)
- end
+ -- -- needs checking
+ --
+ -- if a_purge then
+ -- scripts.context.purge_job(resultname)
+ -- elseif a_purgeall then
+ -- scripts.context.purge_job(resultname,true)
+ -- end
--
local pdfview = getargument("autopdf")
if pdfview then
@@ -1243,6 +1248,9 @@ local temporary_runfiles = {
"aux", "blg", -- bibtex
}
+local temporary_suffixes = {
+ "prep", -- context preprocessed
+}
local synctex_runfiles = {
"synctex", "synctex.gz", -- synctex
}
@@ -1271,7 +1279,7 @@ local function purge_file(dfile,cfile)
end
end
-function scripts.context.purge_job(jobname,all,mkiitoo)
+function scripts.context.purge_job(jobname,all,mkiitoo,fulljobname)
if jobname and jobname ~= "" then
jobname = filebasename(jobname)
local filebase = removesuffix(jobname)
@@ -1285,6 +1293,11 @@ function scripts.context.purge_job(jobname,all,mkiitoo)
for i=1,#temporary_runfiles do
deleted[#deleted+1] = purge_file(fileaddsuffix(filebase,temporary_runfiles[i]))
end
+ if fulljobname and fulljobname ~= jobname then
+ for i=1,#temporary_suffixes do
+ deleted[#deleted+1] = purge_file(fileaddsuffix(fulljobname,temporary_suffixes[i],true))
+ end
+ end
if not environment.argument("synctex") then
-- special case: not deleted when --synctex is given, but what if given in preamble
for i=1,#synctex_runfiles do
diff --git a/Master/texmf-dist/scripts/context/lua/mtx-context.xml b/Master/texmf-dist/scripts/context/lua/mtx-context.xml
index f5a67424165..2ba7ee59e07 100644
--- a/Master/texmf-dist/scripts/context/lua/mtx-context.xml
+++ b/Master/texmf-dist/scripts/context/lua/mtx-context.xml
@@ -129,7 +129,10 @@
<short>run with synctex enabled (optional value: zipped, unzipped, 1, -1)</short>
</flag>
<flag name="nodates">
- <short>omit runtime dates in pdf file</short>
+ <short>omit runtime dates in pdf file (optional value: a number (this 1970 offset time) or string "YYYY-MM-DD HH:MM")</short>
+ </flag>
+ <flag name="nocompression">
+ <short>forcefully turns off compression in the backend</short>
</flag>
<flag name="trailerid">
<short>alternative trailer id (or constant one)</short>
diff --git a/Master/texmf-dist/scripts/context/lua/mtx-modules.lua b/Master/texmf-dist/scripts/context/lua/mtx-modules.lua
index f4003c1db12..572e6a304ce 100644
--- a/Master/texmf-dist/scripts/context/lua/mtx-modules.lua
+++ b/Master/texmf-dist/scripts/context/lua/mtx-modules.lua
@@ -58,7 +58,7 @@ local report = application.report
-- \stoptypen
--
-- Macro definitions specific to the documentation are not surrounded by
--- start-stop commands. The suffix specificaction can be overruled at runtime,
+-- start-stop commands. The suffix specification can be overruled at runtime,
-- but defaults to the file extension. This specification can be used for language
-- depended verbatim typesetting.
--
diff --git a/Master/texmf-dist/scripts/context/lua/mtx-patterns.lua b/Master/texmf-dist/scripts/context/lua/mtx-patterns.lua
index 716fed281bc..b3f5f5bb144 100644
--- a/Master/texmf-dist/scripts/context/lua/mtx-patterns.lua
+++ b/Master/texmf-dist/scripts/context/lua/mtx-patterns.lua
@@ -441,13 +441,13 @@ function scripts.patterns.save(destination,mnemonic,name,patternsnew,hyphenation
if nofpatternsnew > 0 then
local data = concat(patternsnew," ")
patterndata = {
- n = nofpatternsnew,
- compression = compression,
- length = #data,
- data = compression and zlib.compress(data,9) or data,
- characters = concat(table.sortedkeys(pusednew),""),
- minhyphenmin = 1, -- determined by pattern author
- minhyphenmax = 1, -- determined by pattern author
+ n = nofpatternsnew,
+ compression = compression,
+ length = #data,
+ data = compression and zlib.compress(data,9) or data,
+ characters = concat(table.sortedkeys(pusednew),""),
+ lefthyphenmin = 1, -- determined by pattern author
+ righthyphenmax = 1, -- determined by pattern author
}
else
patterndata = {
diff --git a/Master/texmf-dist/scripts/context/lua/mtx-plain.lua b/Master/texmf-dist/scripts/context/lua/mtx-plain.lua
index 949b57952f5..347f63f1d0a 100644
--- a/Master/texmf-dist/scripts/context/lua/mtx-plain.lua
+++ b/Master/texmf-dist/scripts/context/lua/mtx-plain.lua
@@ -12,6 +12,8 @@ if not modules then modules = { } end modules ['mtx-plain'] = {
-- instead of kpse here, just like with the font database code (as that
-- one also works with kpse runtime)
+local format = string.format
+
local helpinfo = [[
<?xml version="1.0"?>
<application>
@@ -46,14 +48,18 @@ local report = application.report
scripts = scripts or { }
scripts.plain = scripts.plain or { }
+local passed_options = table.tohash {
+ "utc"
+}
+
local function execute(...)
- local command = string.format(...)
+ local command = format(...)
report("running command %a\n",command)
return os.execute(command)
end
local function resultof(...)
- local command = string.format(...)
+ local command = format(...)
report("running command %a",command)
local result = os.resultof(command) or ""
result = string.gsub(result,"[\n\r]+","")
@@ -72,7 +78,7 @@ function scripts.plain.make(texengine,texformat)
report("using path expansion %a",fmtpathspec)
else
report("no valid path reported, trying alternative")
--- fmtpathspec = resultof("kpsewhich --show-path=fmt --engine=%s",texengine)
+ -- fmtpathspec = resultof("kpsewhich --show-path=fmt --engine=%s",texengine)
if fmtpathspec ~= "" then
report("using path expansion %a",fmtpathspec)
else
@@ -108,7 +114,13 @@ end
function scripts.plain.run(texengine,texformat,filename)
local t = { }
for k, v in next, environment.arguments do
- t[#t+1] = string.format("--mtx:%s=%s",k,v)
+ local m = passed_options[k] and "" or "mtx:"
+ if type(v) == "string" and v ~= "" then
+ v = format("--%s%s=%s",m,k,v)
+ elseif v then
+ v = format("--%s%s",m,k)
+ end
+ t[#t+1] = v
end
execute('%s --fmt=%s %s "%s"',texengine,file.removesuffix(texformat),table.concat(t," "),filename)
end