On 07/04/2010 07:39 PM, Marco wrote:
Hi,
when there's a mistake in the context code then the context call
returns »1«. When there's a mistake in the metapost code then the
context call returns »0«.
This is annoying for me, since I use the return value as indicator for
my pdf reader to refresh. This seems like a bug to me. Is there a
workaround?
Like this maybe, this converts metapost errors into a series of tex
errors:
\startluacode
function report_mplib_error (...)
local v = string.format(...)
tex.sprint(tex.ctxcatcodes,"\\errmessage{")
tex.sprint(tex.vrbcatcodes,v)
tex.print(tex.ctxcatcodes,"}")
end
function metapost.reporterror(result)
if not result then
report_mplib_error("mp error: no result object returned")
elseif result.status > 0 then
local t, e, l = result.term, result.error, result.log
if t and t ~= "" then
report_mplib_error("mp terminal: %s",t)
end
if e then
report_mplib_error("mp error: %s",(e=="" and "?") or e)
end
if not t and not e and l then
metapost.lastlog = metapost.lastlog .. "\n" .. l
report_mplib_error("mp log: %s",l)
else
report_mplib_error("mp error: unknown, no error, terminal
or log messages")
end
else
return false
end
return true
end
\stopluacode
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________