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

Re: ZSpeak! Only Zsh can do this!

On Mar 21,  6:18pm, Mario Lang wrote:
} Subject: Re: ZSpeak! Only Zsh can do this!
} Another really nice to have(tm) feature would be stdout buffering.
} What I mean is that the shell should have an array (much like history)
} which contains the outputs (stdout and stderr separated)
} from the last commands.

This amounts, approximately, to implementing the "less" pager in the
zsh C code.  (The old, original "less" before it grew several million
bells and whistles, when it was mainly just a clever way of buffering
output so you could scroll backwards and forwards through it.)

The difficulty with doing this is that a surprisingly large number of
commands do pay attention to whether their standard output is a pipe
or a file or a terminal.  For the shell to capture the outputs means
that the output of every command is _always_ a pipe.  It simply does
not work (see my remarks on the problems of using multios with `exec').

However ... it might be possible to construct something based on the
zpty module, where stdout and stderr would (unless redirected) each go
to a separate pty, and both ptys would be managed by a front-end that
slurped up the output from each as it appeared.  That such a thing is
possible is evidenced by the `screen' tty windowing program, which
actually might be a better starting point than zsh for such a project.

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