summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/context/lua/context.lua41
-rw-r--r--scripts/context/lua/mtx-install.lua413
-rw-r--r--scripts/context/lua/mtxrun.lua13
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua13
-rw-r--r--scripts/context/stubs/unix/mtxrun13
-rw-r--r--scripts/context/stubs/win64/mtxrun.lua13
6 files changed, 490 insertions, 16 deletions
diff --git a/scripts/context/lua/context.lua b/scripts/context/lua/context.lua
new file mode 100644
index 000000000..b44312cfa
--- /dev/null
+++ b/scripts/context/lua/context.lua
@@ -0,0 +1,41 @@
+-- This file is a companion to "context(.exe)" and is effectively the same
+-- as:
+--
+-- mtxrun -script context ...
+--
+-- which will locate "mtx-context.lua" and load that one. The binary is a
+-- copy of "luametatex(.exe)" aka luatex 2.0 for context lmtx. In a similar
+-- fashion "mtxrun(.exe)" will load the "mtrun.lua" script.
+--
+-- The installation of context should do this on Windows:
+--
+-- luametatex.exe -> tex/texmf-win64/bin/luatex.exe
+-- luametatex.exe -> tex/texmf-win64/bin/mtxrun.exe
+-- luametatex.exe -> tex/texmf-win64/bin/context.exe
+-- mtxrun.lua -> tex/texmf-win64/bin/mtxrun.lua
+-- context.lua -> tex/texmf-win64/bin/context.lua
+--
+-- and this on Unix:
+--
+-- luametatex -> tex/texmf-linux-64/bin/luatex
+-- luametatex -> tex/texmf-linux-64/bin/mtxrun
+-- luametatex -> tex/texmf-linux-64/bin/context
+-- mtxrun.lua -> tex/texmf-linux-64/bin/mtxrun.lua
+-- context.lua -> tex/texmf-linux-64/bin/context.lua
+--
+-- The static binary is smaller than 3MB so the few copies provide no real
+-- overhead.
+
+local selfpath = os.selfpath
+
+if not arg or not selfpath then
+ print("invalid stub")
+ os.exit()
+end
+
+arg[0] = "mtxrun"
+
+table.insert(arg,1,"mtx-context")
+table.insert(arg,1,"--script")
+
+dofile(selfpath .. "/" .. "mtxrun.lua")
diff --git a/scripts/context/lua/mtx-install.lua b/scripts/context/lua/mtx-install.lua
new file mode 100644
index 000000000..46580bb20
--- /dev/null
+++ b/scripts/context/lua/mtx-install.lua
@@ -0,0 +1,413 @@
+if not modules then modules = { } end modules ['mtx-install'] = {
+ version = 1.002,
+ comment = "companion to mtxrun.lua",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- todo: initial install from zip
+
+local helpinfo = [[
+<?xml version="1.0"?>
+<application>
+ <metadata>
+ <entry name="name">mtx-install</entry>
+ <entry name="detail">ConTeXt Installer</entry>
+ <entry name="version">2.00</entry>
+ </metadata>
+ <flags>
+ <category name="basic">
+ <subcategory>
+ <flag name="platform" value="string"><short>platform (windows, linux, linux-64, osx-intel, osx-ppc, linux-ppc)</short></flag>
+ <flag name="server" value="string"><short>repository url (rsync://contextgarden.net)</short></flag>
+ <flag name="modules" value="string"><short>extra modules (can be list or 'all')</short></flag>
+ <flag name="fonts" value="string"><short>additional fonts (can be list or 'all')</short></flag>
+ <flag name="goodies" value="string"><short>extra binaries (like scite and texworks)</short></flag>
+ <flag name="install"><short>install context</short></flag>
+ <flag name="update"><short>update context</short></flag>
+ <flag name="identify"><short>create list of files</short></flag>
+ </subcategory>
+ </category>
+ </flags>
+</application>
+]]
+
+local gsub, find, escapedpattern = string.gsub, string.find, string.escapedpattern
+local round = math.round
+local savetable, loadtable, sortedhash = table.save, table.load, table.sortedhash
+local joinfile, filesize, dirname, addsuffix = file.join, file.size, file.dirname, file.addsuffix
+local isdir, isfile, walkdir = lfs.isdir, lfs.isfile, lfs.dir
+local mkdirs, globdir = dir.mkdirs, dir.glob
+local osremove, osexecute, ostype = os.remove, os.execute, os.type
+local savedata = io.savedata
+local formatters = string.formatters
+
+local fetch = socket.http.request
+
+local application = logs.application {
+ name = "mtx-install",
+ banner = "ConTeXt Installer 2.00",
+ helpinfo = helpinfo,
+}
+
+local report = application.report
+
+scripts = scripts or { }
+scripts.install = scripts.install or { }
+local install = scripts.install
+
+local texformats = {
+ "cont-en",
+ "cont-nl",
+ "cont-cz",
+ "cont-de",
+ "cont-fa",
+ "cont-it",
+ "cont-ro",
+ "cont-uk",
+ "cont-pe",
+}
+
+local platforms = {
+ ["mswin"] = "mswin",
+ ["windows"] = "mswin",
+ ["win32"] = "mswin",
+ ["win"] = "mswin",
+ --
+ ["mswin-64"] = "win64",
+ ["windows-64"] = "win64",
+ ["win64"] = "win64",
+ --
+ ["linux"] = "linux",
+ ["linux-32"] = "linux",
+ ["linux32"] = "linux",
+ --
+ ["linux-64"] = "linux-64",
+ ["linux64"] = "linux-64",
+ --
+ ["linuxmusl-64"] = "linuxmusl-64",
+ --
+ ["linux-armhf"] = "linux-armhf",
+ --
+ ["freebsd"] = "freebsd",
+ --
+ ["freebsd-amd64"] = "freebsd-amd64",
+ --
+ ["kfreebsd"] = "kfreebsd-i386",
+ ["kfreebsd-i386"] = "kfreebsd-i386",
+ --
+ ["kfreebsd-amd64"] = "kfreebsd-amd64",
+ --
+ ["linux-ppc"] = "linux-ppc",
+ ["ppc"] = "linux-ppc",
+ --
+ ["osx"] = "osx-intel",
+ ["macosx"] = "osx-intel",
+ ["osx-intel"] = "osx-intel",
+ ["osxintel"] = "osx-intel",
+ --
+ ["osx-ppc"] = "osx-ppc",
+ ["osx-powerpc"] = "osx-ppc",
+ ["osxppc"] = "osx-ppc",
+ ["osxpowerpc"] = "osx-ppc",
+ --
+ ["osx-64"] = "osx-64",
+ --
+ ["solaris-intel"] = "solaris-intel",
+ --
+ ["solaris-sparc"] = "solaris-sparc",
+ ["solaris"] = "solaris-sparc",
+ --
+ ["unknown"] = "unknown",
+}
+
+function install.identify()
+
+ -- We have to be in "...../tex" where subdirectories are prefixed with
+ -- "texmf". We strip the "tex/texm*/" from the name in the list.
+
+ local function collect(root,tree)
+
+ local path = root .. "/" .. tree
+
+ if isdir(path) then
+
+ local prefix = path .. "/"
+ local files = globdir(prefix .. "**")
+ local pattern = escapedpattern("^" .. prefix)
+
+ local details = { }
+ local total = 0
+
+ for i=1,#files do
+ local name = files[i]
+ local size = filesize(name)
+ local base = gsub(name,pattern,"")
+ local stamp = md5.hex(io.loaddata(name))
+ details[i] = { base, size, stamp }
+ total = total + size
+ end
+ report("%-20s : %4i files, %3.0f MB",tree,#files,total/(1000*1000))
+
+ savetable(path .. ".tma",details)
+
+ end
+
+ end
+
+ local sourceroot = file.join(dir.current(),"tex")
+
+ for d in walkdir("./tex") do
+ if find(d,"%texmf") then
+ collect(sourceroot,d)
+ end
+ end
+
+end
+
+function install.update()
+
+ local function validdir(d)
+ local ok = isdir(d)
+ if not ok then
+ mkdirs(d)
+ ok = isdir(d)
+ end
+ return ok
+ end
+
+ local function download(what,url,target,total,done)
+ local data = fetch(url .. "/" .. target)
+ if data then
+ if total and done then
+ report("%-8s : %3i %% : %8i : %s",what,round(100*done/total),#data,target)
+ else
+ report("%-8s : %8i : %s",what,#data,target)
+ end
+ if validdir(dirname(target)) then
+ savedata(target,data)
+ else
+ -- message
+ end
+ end
+ end
+
+ local function remove(what,target)
+ report("%-8s : %8i : %s",what,filesize(target),target)
+ osremove(target)
+ end
+
+ local function ispresent(target)
+ return isfile(target)
+ end
+
+ local function hashed(list)
+ local hash = { }
+ for i=1,#list do
+ local l = list[i]
+ hash[l[1]] = l
+ end
+ return hash
+ end
+
+ local function run(fmt,...)
+ local command = formatters[fmt](...)
+ -- command = gsub(command,"/","\\")
+ report("running: %s",command)
+ osexecute(command)
+ end
+
+ local function prepare(tree)
+ tree = joinfile("tex",tree)
+ mkdirs(tree)
+ end
+
+ local function update(url,tree)
+
+ tree = joinfile("tex",tree)
+
+ local ok = validdir(tree)
+ if not validdir(tree) then
+ report("invalid directory %a",tree)
+ return
+ end
+
+ local lua = tree .. ".tma"
+ local all = url .. "/" .. lua
+ local old = loadtable(lua)
+ local new = fetch(all)
+
+ if new then
+ new = loadstring(new)
+ if new then
+ new = new()
+ end
+ end
+
+ if not new then
+ report("invalid database %a",all)
+ return
+ end
+
+ local total = 0
+ local done = 0
+
+ if not old then
+
+ report("installing %s, %i files",tree,#new)
+
+ for i=1,#new do
+ total = total + new[i][2]
+ end
+
+ for i=1,#new do
+ local entry = new[i]
+ local name = entry[1]
+ local size = entry[2]
+ local target = joinfile(tree,name)
+ done = done + size
+ download("new",url,target,total,done)
+ end
+
+ else
+
+ report("updating %s, %i files",tree,#new)
+
+ local hold = hashed(old)
+ local hnew = hashed(new)
+ local todo = { }
+
+ for newname, newhash in sortedhash(hnew) do
+ local target = joinfile(tree,newname)
+ local oldhash = hold[newname]
+ local action = nil
+ if not oldhash then
+ action = "added"
+ elseif oldhash[3] ~= newhash[3] then
+ action = "changed"
+ elseif not ispresent(joinfile(tree,newname)) then
+ action = "missing"
+ end
+ if action then
+ local size = newhash[2]
+ total = total + size
+ todo[#todo+1] = { action, target, size }
+ end
+ end
+
+ for i=1,#todo do
+ local entry = todo[i]
+ download(entry[1],url,entry[2],total,done)
+ done = done + entry[3]
+ end
+
+ for oldname, oldhash in sortedhash(hold) do
+ local newhash = hnew[oldname]
+ local target = joinfile(tree,oldname)
+ if not newhash and ispresent(target) then
+ remove("removed",target)
+ end
+ end
+
+ end
+
+ savetable(lua,new)
+
+ end
+
+ local targetroot = dir.current()
+
+ local server = environment.arguments.server or ""
+ local port = environment.arguments.port or ""
+ local instance = environment.arguments.instance or ""
+
+ if server == "" then
+ report("provide server")
+ return
+ end
+
+ local url = "http://" .. server
+
+ if port ~= "" then
+ url = url .. ":" .. port
+ end
+
+ url = url .. "/"
+
+ if instance ~= "" then
+ url = url .. instance .. "/"
+ end
+
+ local osplatform = os.platform
+ local platform = platforms[osplatform]
+
+ if not platform then
+ report("unknown platform")
+ return
+ end
+
+ local texmfplatform = "texmf-" .. platform
+
+ report("server : %s",server)
+ report("port : %s",port == "" and 80 or "80")
+ report("instance : %s",instance)
+ report("platform : %s",osplatform)
+ report("system : %s",ostype)
+
+ update(url,"texmf")
+ update(url,"texmf-context")
+ update(url,texmfplatform)
+
+ prepare("texmf-cache")
+ prepare("texmf-project")
+ prepare("texmf-fonts")
+ prepare("texmf-local")
+ prepare("texmf-modules")
+
+ local binpath = joinfile(targetroot,"tex",texmfplatform,"bin")
+
+ if ostype == "unix" then
+ osexecute(formatters["chmod +x %s/*"](binpath))
+ end
+
+ local mtxrun = joinfile(binpath,"mtxrun")
+ local context = joinfile(binpath,"context")
+
+ if ostype == "windows" then
+ addsuffix(mtxrun,"exe")
+ addsuffix(context,"exe")
+ end
+
+ run("%s --generate",mtxrun)
+ run("%s --make en", context)
+ run("%s --make nl", context)
+
+ -- local mtxrun = joinfile(binpath,"mtxrunjit")
+ -- local context = joinfile(binpath,"contextjit")
+ --
+ -- if ostype == "windows" then
+ -- addsuffix(mtxrun,"exe")
+ -- addsuffix(context,"exe")
+ -- end
+ --
+ -- run("%s --generate",mtxrun)
+ -- run("%s --make en", context)
+ -- run("%s --make nl", context)
+
+ -- in calling script: update mtxrun.exe and mtxrun.lua
+
+ report("update, done")
+end
+
+if environment.argument("identify") then
+ install.identify()
+elseif environment.argument("install") then
+ install.update()
+elseif environment.argument("update") then
+ install.update()
+elseif environment.argument("exporthelp") then
+ application.export(environment.argument("exporthelp"),environment.files[1])
+else
+ application.help()
+end
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 143c480e5..15606e1e1 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -8857,7 +8857,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-prs"] = package.loaded["util-prs"] or true
--- original size: 23718, stripped down to: 16067
+-- original size: 24132, stripped down to: 16210
if not modules then modules={} end modules ['util-prs']={
version=1.001,
@@ -9423,7 +9423,12 @@ function parsers.splitmethod(str,default)
return default or false,""
end
end
-local pattern=Cf(Ct("")*Cg(Cc("year")*cardinal)*P("-")*Cg(Cc("month")*cardinal)*P("-")*Cg(Cc("day")*cardinal)*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("minute")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1
+local p_year=lpegpatterns.digit^4/tonumber
+local pattern=Cf(Ct("")*(
+ (Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("day")*cardinal)
+ )+(Cg(Cc("day")*cardinal)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year)
+ )
+ )*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1
,rawset)
lpegpatterns.splittime=pattern
function parsers.totime(str)
@@ -24968,8 +24973,8 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.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-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.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 util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 995087
--- stripped bytes : 395047
+-- original bytes : 995501
+-- stripped bytes : 395318
-- end library merge
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 143c480e5..15606e1e1 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -8857,7 +8857,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-prs"] = package.loaded["util-prs"] or true
--- original size: 23718, stripped down to: 16067
+-- original size: 24132, stripped down to: 16210
if not modules then modules={} end modules ['util-prs']={
version=1.001,
@@ -9423,7 +9423,12 @@ function parsers.splitmethod(str,default)
return default or false,""
end
end
-local pattern=Cf(Ct("")*Cg(Cc("year")*cardinal)*P("-")*Cg(Cc("month")*cardinal)*P("-")*Cg(Cc("day")*cardinal)*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("minute")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1
+local p_year=lpegpatterns.digit^4/tonumber
+local pattern=Cf(Ct("")*(
+ (Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("day")*cardinal)
+ )+(Cg(Cc("day")*cardinal)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year)
+ )
+ )*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1
,rawset)
lpegpatterns.splittime=pattern
function parsers.totime(str)
@@ -24968,8 +24973,8 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.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-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.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 util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 995087
--- stripped bytes : 395047
+-- original bytes : 995501
+-- stripped bytes : 395318
-- end library merge
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 143c480e5..15606e1e1 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -8857,7 +8857,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-prs"] = package.loaded["util-prs"] or true
--- original size: 23718, stripped down to: 16067
+-- original size: 24132, stripped down to: 16210
if not modules then modules={} end modules ['util-prs']={
version=1.001,
@@ -9423,7 +9423,12 @@ function parsers.splitmethod(str,default)
return default or false,""
end
end
-local pattern=Cf(Ct("")*Cg(Cc("year")*cardinal)*P("-")*Cg(Cc("month")*cardinal)*P("-")*Cg(Cc("day")*cardinal)*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("minute")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1
+local p_year=lpegpatterns.digit^4/tonumber
+local pattern=Cf(Ct("")*(
+ (Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("day")*cardinal)
+ )+(Cg(Cc("day")*cardinal)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year)
+ )
+ )*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1
,rawset)
lpegpatterns.splittime=pattern
function parsers.totime(str)
@@ -24968,8 +24973,8 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.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-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.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 util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 995087
--- stripped bytes : 395047
+-- original bytes : 995501
+-- stripped bytes : 395318
-- end library merge
diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua
index 143c480e5..15606e1e1 100644
--- a/scripts/context/stubs/win64/mtxrun.lua
+++ b/scripts/context/stubs/win64/mtxrun.lua
@@ -8857,7 +8857,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-prs"] = package.loaded["util-prs"] or true
--- original size: 23718, stripped down to: 16067
+-- original size: 24132, stripped down to: 16210
if not modules then modules={} end modules ['util-prs']={
version=1.001,
@@ -9423,7 +9423,12 @@ function parsers.splitmethod(str,default)
return default or false,""
end
end
-local pattern=Cf(Ct("")*Cg(Cc("year")*cardinal)*P("-")*Cg(Cc("month")*cardinal)*P("-")*Cg(Cc("day")*cardinal)*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("minute")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1
+local p_year=lpegpatterns.digit^4/tonumber
+local pattern=Cf(Ct("")*(
+ (Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("day")*cardinal)
+ )+(Cg(Cc("day")*cardinal)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year)
+ )
+ )*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1
,rawset)
lpegpatterns.splittime=pattern
function parsers.totime(str)
@@ -24968,8 +24973,8 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.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-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.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 util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 995087
--- stripped bytes : 395047
+-- original bytes : 995501
+-- stripped bytes : 395318
-- end library merge