Zsh Mailing List Archive
Messages sorted by:
Re: ZSpeak! Only Zsh can do this!
- X-seq: zsh-workers 13699
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: Mario Lang <mlang@xxxxxxxxxxxxxxxx>
- Subject: Re: ZSpeak! Only Zsh can do this!
- Date: Thu, 22 Mar 2001 06:52:23 +0000
- Cc: zsh-workers@xxxxxxxxxx
- In-reply-to: <87zoefdor5.fsf@xxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <200103191007.LAA01992@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <87zoefdor5.fsf@xxxxxxxxxxxxxxxx>
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
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
Messages sorted by: