Mercurial > emacs
changeset 64840:41b10113bde8
(Event Input Misc): Update while-no-input.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 09 Aug 2005 12:00:09 +0000 |
parents | a489093cf10b |
children | c171f553d289 |
files | lispref/commands.texi |
diffstat | 1 files changed, 16 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lispref/commands.texi Tue Aug 09 11:59:22 2005 +0000 +++ b/lispref/commands.texi Tue Aug 09 12:00:09 2005 +0000 @@ -2435,15 +2435,26 @@ @end defvar @defmac while-no-input body... -This construct runs the @var{body} forms and returns the value -of the last one---but only if no input arrives. If any input -arrives during the execution of the @var{body} forms, it aborts -them (working much like a quit), and the @code{while-no-input} -form returns @code{nil}. +This construct runs the @var{body} forms and returns the value of the +last one---but only if no input arrives. If any input arrives during +the execution of the @var{body} forms, it aborts them (working much +like a quit). The @code{while-no-input} form returns @code{nil} if +aborted by a real quit, and returns @code{t} if aborted by arrival of +other input. If a part of @var{body} binds @code{inhibit-quit} to non-@code{nil}, arrival of input during those parts won't cause an abort until the end of that part. + +If you want to be able to distingish all possible values computed +by @var{body} from both kinds of abort conditions, write the code +like this: + +@example +(while-no-input + (list + (progn . @var{body}))) +@end example @end defmac @defun discard-input