# HG changeset patch # User Richard M. Stallman # Date 1123588809 0 # Node ID 41b10113bde8690b5418bc26ed56e07c87bd9d7b # Parent a489093cf10b6b9fc7e82e269028b4aacac54857 (Event Input Misc): Update while-no-input. diff -r a489093cf10b -r 41b10113bde8 lispref/commands.texi --- 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