From 57ea7dad48fbf2541c04e434c31bde655ada3ac4 Mon Sep 17 00:00:00 2001 From: Taco Hoekwater Date: Mon, 24 May 2010 14:05:02 +0000 Subject: here is context 2010.05.24 13:05 git-svn-id: svn://tug.org/texlive/trunk@18445 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/context/base/luat-exe.lua | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'Master/texmf-dist/tex/context/base/luat-exe.lua') diff --git a/Master/texmf-dist/tex/context/base/luat-exe.lua b/Master/texmf-dist/tex/context/base/luat-exe.lua index fd93ad3829b..ca3b751623b 100644 --- a/Master/texmf-dist/tex/context/base/luat-exe.lua +++ b/Master/texmf-dist/tex/context/base/luat-exe.lua @@ -1,11 +1,14 @@ if not modules then modules = { } end modules ['luat-exe'] = { version = 1.001, - comment = "companion to luat-lib.tex", + comment = "companion to luat-lib.mkiv", author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", copyright = "PRAGMA ADE / ConTeXt Development Team", license = "see context related readme files" } +local match, find = string.match, string.find +local concat = table.concat + if not executer then executer = { } end executer.permitted = { } @@ -13,7 +16,9 @@ executer.execute = os.execute function executer.register(...) local ep = executer.permitted - for k,v in pairs({...}) do + local t = { ... } + for k=1,#t do + local v = t[k] ep[#ep+1] = (v == "*" and ".*") or v end end @@ -24,18 +29,20 @@ function executer.finalize() -- todo: os.exec, todo: report ipv print local t, name, arguments = {...}, "", "" if #t == 1 then if type(t[1]) == 'table' then - name, arguments = t[1], table.concat(t," ",2,#t) + name, arguments = t[1], concat(t," ",2,#t) else - name, arguments = t[1]:match("^(.-)%s+(.+)$") + name, arguments = match(t[1],"^(.-)%s+(.+)$") if not (name and arguments) then name, arguments = t[1], "" end end else - name, arguments = t[1], table.concat(t," ",2,#t) + name, arguments = t[1], concat(t," ",2,#t) end - for _,v in pairs(executer.permitted) do - if name:find(v) then + local permitted = executer.permitted + for k=1,#permitted do + local v = permitted[k] + if find(name,v) then execute(name .. " " .. arguments) -- print("executed: " .. name .. " " .. arguments) else -- cgit v1.2.3