Hi,
A lot of times the most useful information when an external program returns an error is the stderr output. However, I can't figure out any way to get this without setting :ignore-error-status to T.
In particular I feel things would be strictly better if every invocation of the form:
(run-program ... :error-output t)
Acted more like:
(let ((result (multiple-value-list (run-program :error-output t :ignore-error-status t)))) (when (not (zerop (caddr result))) (cerror ...)) (values-list result))
The former prints no output to *error-output* in the event of non-zero return, but the latter prints all the output.
There may be a better way of doing this (including the error file or output in the condition object perhaps?), so I'm open to alternatives. Any thoughts?
-Jason