Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Capturing completion stderr

On Jul 21,  9:18am, Sven Wischnowsky wrote:
} Subject: Re: PATCH: Re: cvs completion messy on dangling slink
} Bart Schaefer wrote:
} > In the very general case, though, I still lament that there's no good way
} > to capture this kind of error output and present it via _message or some
} > other completion-friendly mechanism.
} Yes. Any ideas for how to do that?

We'd have to use C code in ZLE to redirect stderr somewhere, at the same
places where it currently closes and restores stdin.  Further, we'd have
to figure out some kind of special handling for xtrace output in order
for _complete_debug to continue to be useful.

As to where stderr is redirected: The only sensible place is a temp file,
which is then checked for nonzero size at the end of the completion, and
displayed if so.  The shell can't try to capture the output directly, as
that could lead to deadlock.  As I said before, though, I dislike adding
the overhead of creating and then either truncating or unlinking a file
on every completion, when in most cases it won't be useful.

So probably the right thing is just to continue to be careful about the
stderr of commands within the individual functions, and perhaps document
somewhere that this is necessary.

Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   

Messages sorted by: Reverse Date, Date, Thread, Author