diff options
author | Hans Hagen <pragma@wxs.nl> | 2008-04-15 22:29:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2008-04-15 22:29:00 +0200 |
commit | fda067d65d105a9c168c6d1428ac2f2ae053ed21 (patch) | |
tree | b86097a41bb2dd9d96787eccc61ce49faba05bef /tex/context/base/mlib-run.lua | |
parent | 84c5ae8992fff7184ebc669a1eb654a92d55951c (diff) | |
download | context-fda067d65d105a9c168c6d1428ac2f2ae053ed21.tar.gz |
stable 2008.04.15 22:29
Diffstat (limited to 'tex/context/base/mlib-run.lua')
-rw-r--r-- | tex/context/base/mlib-run.lua | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/tex/context/base/mlib-run.lua b/tex/context/base/mlib-run.lua index aac7e030e..0e60c9639 100644 --- a/tex/context/base/mlib-run.lua +++ b/tex/context/base/mlib-run.lua @@ -74,7 +74,7 @@ function metapost.make(name, target, version) ) ) if mpx then input.starttiming(metapost.exectime) - local result = mpx:execute(format('\\ ; boolean mplib ; mplib := true ; string mp_parent_version ; mp_parent_version := "%s" ; show mp_parent_version ; input %s ;', version or "unknown", name)) + local result = mpx:execute(format('\\ ; boolean mplib ; mplib := true ; string mp_parent_version ; mp_parent_version := "%s" ; show mp_parent_version ; input %s ; dump ;', version or "unknown", name)) input.stoptiming(metapost.exectime) if mpx then mpx:finish() @@ -162,7 +162,28 @@ function metapost.format(name) return mpx end -function metapost.process(mpx, data, trialrun, showlog) +function metapost.reset(mpx) + if not mpx then + -- nothing + elseif type(mpx) == "string" then + if mpxformats[mpx] then + mpxformats[mpx]:finish() + mpxformats[mpx] = nil + end + else + for name=1,#mpxformats do + if mpxformats[name] == mpx then + mpxformats[name] = nil + break + end + end + mpx:finish() + end +end + +metapost.showlog = false + +function metapost.process(mpx, data, trialrun, flusher) local result if type(mpx) == "string" then mpx = metapost.format(mpx) -- goody @@ -175,16 +196,15 @@ function metapost.process(mpx, data, trialrun, showlog) if d then input.starttiming(metapost.exectime) result = mpx:execute(d) ---~ print(">>>",d) input.stoptiming(metapost.exectime) if not result then metapost.report("error", "no result object returned") elseif result.status > 0 then - metapost.report("error",result.error or result.term or result.log or "unknown") - elseif showlog then - metapost.report("info",result.term or "unknown") + metapost.report("error",(result.term or "no-term") .. "\n" .. (result.error or "no-error")) + elseif metapost.showlog then + metapost.report("info",result.term or "no-term") elseif result.fig then - metapost.convert(result, trialrun) + metapost.convert(result, trialrun, flusher) end else metapost.report("error", "invalid graphic component " .. i) @@ -194,15 +214,14 @@ function metapost.process(mpx, data, trialrun, showlog) input.starttiming(metapost.exectime) result = mpx:execute(data) input.stoptiming(metapost.exectime) ---~ print(">>>",data) if not result then metapost.report("error", "no result object returned") elseif result.status > 0 then - metapost.report("error",result.error or result.term or result.log or "unknown") - elseif showlog then - metapost.report("info",result.term or "unknown") + metapost.report("error",(result.term or "no-term") .. "\n" .. (result.error or "no-error")) + elseif metapost.showlog then + metapost.report("info",result.term or "no-term") elseif result.fig then - metapost.convert(result, trialrun) + metapost.convert(result, trialrun, flusher) end end input.stoptiming(metapost) |