From 000a8c62f8ab88f17964644ce3dd3fc2720fb345 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Wed, 16 Jan 2008 13:49:00 +0100 Subject: stable 2008.01.16 13:49 --- scripts/context/lua/mtx-context.lua | 8 ++++---- scripts/context/lua/mtxrun.lua | 32 ++++++++++++++++---------------- scripts/context/lua/x-ldx.lua | 10 +++++----- scripts/context/ruby/base/ctx.rb | 7 ++++++- 4 files changed, 31 insertions(+), 26 deletions(-) (limited to 'scripts') diff --git a/scripts/context/lua/mtx-context.lua b/scripts/context/lua/mtx-context.lua index 6d01938ef..fbcad1111 100644 --- a/scripts/context/lua/mtx-context.lua +++ b/scripts/context/lua/mtx-context.lua @@ -74,7 +74,7 @@ do local attributes = e.at if str and attributes then if attributes['method'] then - str = ctsrunner.filtered(str,attributes['method']) + str = ctxrunner.filtered(str,attributes['method']) end if str == "" and attributes['default'] then str = attributes['default'] @@ -199,7 +199,7 @@ do local found = io.exists(usedname) if not found then - for _, path in (ctsrunner.locations) do + for _, path in pairs(ctxdata.locations) do local fullname = file.join(path,ctxdata.ctxname) if io.exists(fullname) then usedname, found = fullname, true @@ -429,7 +429,7 @@ function scripts.context.multipass.makeoptionfile(jobname,ctxdata) else local a = someflag(flag) if a and a ~= "" then - for _, v in a:gmatch("%s*([^,]+)") do + for v in a:gmatch("%s*([^,]+)") do f:write(format:format(v),"\n") end end @@ -539,7 +539,7 @@ function scripts.context.run(ctxdata) for _, filename in ipairs(files) do local basename, pathname = file.basename(filename), file.dirname(filename) local jobname = file.removesuffix(basename) - if pathname ~= "" and pathname ~= "." then + if pathname == "" then filename = "./" .. filename end -- also other stubs diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 96077d4f8..a52d3e882 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -7366,7 +7366,7 @@ function input.runners.launch_file(instance,filename) end end -function input.runners.execute_ctx_script(instance,filename) +function input.runners.execute_ctx_script(instance,filename,arguments) local function found(name) local path = file.dirname(name) if path and path ~= "" then @@ -7376,7 +7376,6 @@ function input.runners.execute_ctx_script(instance,filename) return io.exists(fullname) and fullname end end - local before, after = environment.split_arguments(filename) local suffix = "" if not filename:find("%.lua$") then suffix = ".lua" end local fullname = filename @@ -7406,25 +7405,26 @@ function input.runners.execute_ctx_script(instance,filename) elseif state == 'skip' then return true elseif state == "run" then - arg = { } for _,v in pairs(after) do arg[#arg+1] = v end + -- load and save ... kind of undocumented + arg = { } for _,v in pairs(arguments) do arg[#arg+1] = v end environment.initialize_arguments(arg) -local loadname = environment.arguments['load'] -if loadname then - if type(loadname) ~= "string" then loadname = file.basename(fullname) end - loadname = file.replacesuffix(loadname,"cfg") - input.runners.load_script_session(loadname) -end + local loadname = environment.arguments['load'] + if loadname then + if type(loadname) ~= "string" then loadname = file.basename(fullname) end + loadname = file.replacesuffix(loadname,"cfg") + input.runners.load_script_session(loadname) + end filename = environment.files[1] if input.verbose then input.report("using script: " .. fullname) end dofile(fullname) -local savename = environment.arguments['save'] -if savename and input.runners.save_list and not table.is_empty(input.runners.save_list or { }) then - if type(savename) ~= "string" then savename = file.basename(fullname) end - savename = file.replacesuffix(savename,"cfg") - input.runners.save_script_session(savename, input.runners.save_list) -end + local savename = environment.arguments['save'] + if savename and input.runners.save_list and not table.is_empty(input.runners.save_list or { }) then + if type(savename) ~= "string" then savename = file.basename(fullname) end + savename = file.replacesuffix(savename,"cfg") + input.runners.save_script_session(savename, input.runners.save_list) + end return true end else @@ -7473,7 +7473,7 @@ elseif environment.argument("ctxlua") or environment.argument("internal") then ok = input.runners.execute_script(instance,filename,true) elseif environment.argument("script") then -- run a script by loading it (using libs), pass args - ok = input.runners.execute_ctx_script(instance,filename) + ok = input.runners.execute_ctx_script(instance,filename,after) elseif environment.argument("execute") then -- execute script ok = input.runners.execute_script(instance,filename) diff --git a/scripts/context/lua/x-ldx.lua b/scripts/context/lua/x-ldx.lua index 780022e9a..d9d4e6a72 100644 --- a/scripts/context/lua/x-ldx.lua +++ b/scripts/context/lua/x-ldx.lua @@ -129,8 +129,8 @@ function ldx.enhance(data) -- i need to use lpeg and then we can properly autoin for _,v in pairs(data) do if v.code then local dqs, sqs, com, cmt, cod = { }, { }, { }, { }, e(v.code) -cod = cod:gsub('\\"', "##d##") -cod = cod:gsub("\\'", "##s##") + cod = cod:gsub('\\"', "##d##") + cod = cod:gsub("\\'", "##s##") cod = cod:gsub("%-%-%[%[.-%]%]%-%-", function(s) cmt[#cmt+1] = s return "[[[[".. #cmt .."]]]]" @@ -167,8 +167,8 @@ cod = cod:gsub("\\'", "##s##") cod = cod:gsub("%[%[(%d+)%]%]", function(s) return "" .. com[tonumber(s)] .. "" end) -cod = cod:gsub("##d##", "\\\"") -cod = cod:gsub("##s##", "\\\'") + cod = cod:gsub("##d##", "\\\"") + cod = cod:gsub("##s##", "\\\'") if ldx.make_index then local lines = cod:split("\n") local f = "(function)%s+([%w%.]+)%s*%(" @@ -279,7 +279,7 @@ it possible to change the indentation afterwards. function ldx.as_xml(data) local t, cmode = { }, false t[#t+1] = "\n" - t[#t+1] = "\n\n" + t[#t+1] = "\n\n" for _,v in pairs(data) do if v.code and not v.code:is_empty() then t[#t+1] = "\n\n" diff --git a/scripts/context/ruby/base/ctx.rb b/scripts/context/ruby/base/ctx.rb index 2da60d0c7..a077297f2 100644 --- a/scripts/context/ruby/base/ctx.rb +++ b/scripts/context/ruby/base/ctx.rb @@ -110,7 +110,12 @@ class CtxRunner end end - @xmldata = IO.read(@ctxname) + if FileTest.file?(@ctxname) then + @xmldata = IO.read(@ctxname) + else + report('no ctx file found') + return false + end unless @xmldata =~ /^.*<\?xml.*?\?>/moi then report("ctx file #{@ctxname} is no xml file, skipping") -- cgit v1.2.3