diff options
Diffstat (limited to 'tex/context/base/trac-xml.lua')
| -rw-r--r-- | tex/context/base/trac-xml.lua | 41 | 
1 files changed, 25 insertions, 16 deletions
| diff --git a/tex/context/base/trac-xml.lua b/tex/context/base/trac-xml.lua index 3301b4137..cd8b8c0a5 100644 --- a/tex/context/base/trac-xml.lua +++ b/tex/context/base/trac-xml.lua @@ -132,25 +132,27 @@ function reporters.help(t,...)      end  end -function reporters.export(t,method,filename) +function reporters.export(t,methods,filename)      if not xmlfound(t) then          return exporthelp(t)      end -    if not method or method == "" then -        method = environment.arguments["exporthelp"] +    if not methods or methods == "" then +        methods = environment.arguments["exporthelp"]      end      if not filename or filename == "" then          filename = environment.files[1]      end      dofile(resolvers.findfile("trac-exp.lua","tex"))      local exporters = logs.exporters -    if not exporters or not method then +    if not exporters or not methods then          return exporthelp(t)      end -    if method == "all" then -        method = table.keys(exporters) +    if methods == "all" then +        methods = table.keys(exporters) +    elseif type(methods) == "string" then +        methods = utilities.parsers.settings_to_array(methods)      else -        method = { method } +        return exporthelp(t)      end      if type(filename) ~= "string" or filename == "" then          filename = false @@ -158,17 +160,24 @@ function reporters.export(t,method,filename)          t.report("export file %a will not be saved on the current path (safeguard)",filename)          return      end -    for i=1,#method do -        local m = method[i] -        local result = exporters[m](t,m) -        if result and result ~= "" then -            if filename then -                local fullname = file.replacesuffix(filename,m) -                t.report("saving export in %a",fullname) -                io.savedata(fullname,result) +    for i=1,#methods do +        local method = methods[i] +        local exporter = exporters[method] +        if exporter then +            local result = exporter(t,method) +            if result and result ~= "" then +                if filename then +                    local fullname = file.replacesuffix(filename,method) +                    t.report("saving export in %a",fullname) +                    io.savedata(fullname,result) +                else +                    reporters.lines(t,result) +                end              else -                reporters.lines(t,result) +                t.report("no output from exporter %a",method)              end +        else +            t.report("unknown exporter %a",method)          end      end  end | 
