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

Re: Using zle outside zsh

On Tue, 24 Aug 2004, DervishD wrote:

> >  So pick the last line out of $response and
> > pass that to vared as the prompt, like so:
> > pmpt=${response##$'*\n'}
>     I must use "${response##*$'\n'}" or it doesn't work because the
> '*' is quoted

Oh, yes.  Typo on my part.  Sorry.

> but otherwise it works perfectly. Is there a way of
> making 'vared' not to print a carriage return?

Not really.  'setopt nopromptcr' works initially, but the first time ZLE 
decides to redraw the whole line or minimize the number of characters used 
for a backwards motion, it emits a \r and then things get pretty garbled.  
(Maybe Wayne will see this and fix something.)

>     OTOH, I think that, for a program like 'ftp' that not only prints
> its own set of prompts but uses some server responses as prompts, it
> would be better to read line by line until no more lines are present

Unfortunately there's no way to know *when* "no more lines are present". 
It's a TTY, after all; you don't get an EOF.

>     Seems that the only possible solutions is to know in advance all
> possible prompts and use 'zpty -r COMMAND NAME PATTERN', or using
> zselect, or even using a proxy program that translates and normalizes
> all received prompts including a '\n', or something like that...

zselect might help, because you could look for input from the keyboard
and from the pty at the same time -- but then you can't use vared.

Or you could try something with "zle -F" but I don't know if that works
inside vared (I'd presume it does, but I've never tried).

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