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

Re: zsh exits after delete-char-or-list and two ^Cs



(Oliver says the In-reply-to and References format should work better
like this.  Tell me if it doesn't.)

Bart Schaefer wrote:
> On Thu, 2 Sep 2004, Peter Stephenson wrote:
> 
> > It looks like it would be more sensible to have the test for whether a
> > zle widget is callable separate from the return status for zle -I.
> 
> What about zle -R ?
> 
> I think (but haven't applied it yet) that with this patch we have
> 
>   zle && echo "widgets callable"	# I'm least certain of this
>   zle -I && echo "Display invalidated and widgets callable"
>   zle -R && echo "Display refreshed and zle active"
> 
> Is that right?

Yes, noting that testing for `display invalidated' and `display
refreshed' doesn't form part of the return status (I think that's what
you mean but it's not clear from the output).

> This covers all bases, assuming it's harmless to call zle -R even when you 
> don't really care whether the display is refreshed.  Unless one might need
> to know that the display has been invalidated even when widgets are not
> callable?  I'm having a hard time coming up with that.

I agree, it's just a question of how much of a stickler you are for
having the return status reflecting `command did what I expected' rather
than `command did something and tested for something else'.  Unless
someone is using ERR_RETURN inside widgets (yuk!) I don't suppose this
is a problem.

> Sorry to nit-pick, but:
> 
> > Index: Doc/Zsh/zle.yo
> > ===================================================================
> > +The returned status is zero if a zle widget can be called immediately.
> > +Note this is independent of whether the display has been invalidated.
> > +For example, if a completion widget is active a zle widget cannot be used
> > +and the status is one even if the display was invalidated; on the other
> > +hand, the status may be zero if the display was invalidated by a previous
> > +call to `tt(zle -I)'.
> 
> Isn't it more accurate to say "the status may be nonzero even if the 
> display was invalidated by a previous call"?  With the rest of the patch 
> as it stands, the status is never zero when completion widgets are active, 
> even when the display was previously invalidated -- but the above seems to 
> imply that the status might be zero in that event.

Ah, I think I see: you're reading the two cases around the semicolon in
conjunction, while I meant them to be independent.  However, your
emendation doesn't get across quite the point I wanted, which is "if you
call zle -I and it returns zero, it may be that the display was
invalidated by a previous call rather than the current one".  Maybe
reversing the sense of the second case is better.  You might well say
"who cares", but I want to emphasis calling zle -I multiple times has no
bad effect.  Maybe the English for that is "calling zle -I multiple
times has no bad effects".

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK                          Tel: +44 (0)1223 692070


**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

www.mimesweeper.com
**********************************************************************



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