1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-11-02 06:40:55 +01:00

20330: rationalise zle return statuses

This commit is contained in:
Peter Stephenson 2004-09-08 15:23:47 +00:00
parent 70857d0d75
commit 65bbf722d9
3 changed files with 26 additions and 15 deletions

View file

@ -1,3 +1,9 @@
2004-09-08 Peter Stephenson <pws@csr.com>
* 20330: Src/Zle/zle_thingy.c, Doc/Zsh/zle.yo: rationalise status
from zle -I and improve documentation of status from zle, zle -I,
zle -R.
2004-09-08 Bart Schaefer <schaefer@zanshin.com>
* 20325: Src/exec.c, Test/E01options.ztst: fix crash when using

View file

@ -312,6 +312,7 @@ cindex(widgets, calling)
cindex(calling widgets)
cindex(widgets, defining)
cindex(defining widgets)
xitem(tt(zle))
xitem(tt(zle) tt(-l) [ tt(-L) | tt(-a) ] [ var(string) ... ])
xitem(tt(zle) tt(-D) var(widget) ...)
xitem(tt(zle) tt(-A) var(old-widget) var(new-widget))
@ -323,10 +324,18 @@ xitem(tt(zle) tt(-U) var(string))
xitem(tt(zle) tt(-K) var(keymap))
xitem(tt(zle) tt(-F) [ tt(-L) ] [ var(fd) [ var(handler) ] ])
xitem(tt(zle) tt(-I))
xitem(tt(zle) var(widget) tt([ -n) var(num) tt(]) tt([ -N ]) var(args) ...)
item(tt(zle))(
item(tt(zle) var(widget) tt([ -n) var(num) tt(]) tt([ -N ]) var(args) ...)(
The tt(zle) builtin performs a number of different actions concerning
ZLE. Which operation it performs depends on its options:
ZLE.
With no options and no arguments, only the return status will be
set. It is zero if ZLE is currently active and widgets could be
invoked using this builtin command and non-zero otherwise.
Note that even if non-zero status is returned, zle may still be active as
part of the completion system; this does not allow direct calls to ZLE
widgets.
Otherwise, which operation it performs depends on its options:
startitem()
item(tt(-l) [ tt(-L) | tt(-a) ])(
@ -392,7 +401,9 @@ immediately after return from the widget.
This command can safely be called outside user defined widgets; if zle is
active, the display will be refreshed, while if zle is not active, the
command has no effect. In this case there will usually be no other
arguments. The status is zero if zle was active, else one.
arguments.
The status is zero if zle was active, else one.
)
item(tt(-M) var(string))(
As with the tt(-R) option, the var(string) will be displayed below the
@ -505,12 +516,10 @@ to minimise disruption.
Note that there are normally better ways of manipulating the display from
within zle widgets; see, for example, `tt(zle -R)' above.
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)'.
The returned status is zero if zle was invalidated, even though
this may have been by a previous call to `tt(zle -I)' or by a system
notification. To test if a zle widget may be called at this point, execute
tt(zle) with no arguments and examine the return status.
)
item(var(widget) tt([ -n) var(num) tt(]) tt([ -N ]) var(args) ...)(
Invoke the specified widget. This can only be done when ZLE is
@ -540,10 +549,6 @@ tt(zle) command. Thus if a user defined widget requires an immediate beep,
it should call the tt(beep) widget directly.
)
enditem()
With no options and no arguments, only the return status will be
set. It is zero if ZLE is currently active and widgets could be
invoked using this builtin command and non-zero if ZLE is not active.
)
enditem()

View file

@ -709,7 +709,7 @@ bin_zle_invalidate(UNUSED(char *name), UNUSED(char **args), UNUSED(Options ops),
if (zleactive) {
if (!trashedzle)
trashzle();
return !zle_usable();
return 0;
} else
return 1;
}