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