diff options
author | Hans Hagen <pragma@wxs.nl> | 2017-02-17 10:31:56 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2017-02-17 10:31:56 +0100 |
commit | b14f992ef5f4e868c9959b174278c86516d60dbc (patch) | |
tree | 28587bb46c025ea7b0d27ba93f09c93dcf53c73a /tex/context/base/mkiv/bibl-tra.lua | |
parent | 95a1799032dc61dbca4a11e495be34b4397c8fec (diff) | |
download | context-b14f992ef5f4e868c9959b174278c86516d60dbc.tar.gz |
2017-02-17 10:23:00
Diffstat (limited to 'tex/context/base/mkiv/bibl-tra.lua')
-rw-r--r-- | tex/context/base/mkiv/bibl-tra.lua | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/tex/context/base/mkiv/bibl-tra.lua b/tex/context/base/mkiv/bibl-tra.lua index 223554b4d..76171cb7f 100644 --- a/tex/context/base/mkiv/bibl-tra.lua +++ b/tex/context/base/mkiv/bibl-tra.lua @@ -21,7 +21,9 @@ end -- end of hack -local match, gmatch, format, concat, sort = string.match, string.gmatch, string.format, table.concat, table.sort +local gmatch, format = string.gmatch, string.format +local sort = table.sort +local savedata = io.savedata bibtex = bibtex or { } local bibtex = bibtex @@ -61,10 +63,31 @@ local template = [[ \bibdata{%s} ]] -local bibtexbin = environment.arguments.mlbibtex and "mlbibcontext" or "bibtex" +local runners = { + bibtex = sandbox.registerrunner { + name = "bibtex", + method = "execute", + program = "bibtex", + template = [["%filename%"]], + checkers = { + filename = "readable", + } + }, + mlbibtex = sandbox.registerrunner { + name = "mlbibtex", + method = "execute", + program = "mlbibcontext", + template = [["%filename%"]], + checkers = { + filename = "readable", + } + } +} + +local runner = environment.arguments.mlbibtex and runners.mlbibtex or runners.bibtex directives.register("publications.usemlbibtex", function(v) - bibtexbin = v and "mlbibcontext" or "bibtex" + runner = v and runners.mlbibtex or runners.bibtex end) function hacks.process(settings) @@ -74,11 +97,11 @@ function hacks.process(settings) if database ~= "" then local targetfile = file.addsuffix(jobname,"aux") interfaces.showmessage("publications",3,targetfile) - io.savedata(targetfile,format(template,style,database)) + savedata(targetfile,format(template,style,database)) if trace_bibtex then report_tex("processing bibtex file %a using %a",jobname,bibtexbin) end - os.execute(format("%s %q",bibtexbin,jobname)) + runner { filename = jobname } -- purge 'm end end |