]> code.delx.au - gnu-emacs/blobdiff - doc/lispref/internals.texi
Minor improvement in documentation of internals
[gnu-emacs] / doc / lispref / internals.texi
index 20681c07d9a7abd764612d511bc85302cf31d650..e620da0b4ff8b0add9885b46e6e536c07c691b71 100644 (file)
@@ -660,6 +660,7 @@ usage: (or CONDITIONS...)  */)
       if (!NILP (val))
         break;
       args = XCDR (args);
+      QUIT;
     @}
 @end group
 
@@ -779,6 +780,14 @@ their addresses after performing Lisp evaluation.  Lisp evaluation can
 occur via calls to @code{eval_sub} or @code{Feval}, either directly or
 indirectly.
 
+@cindex @code{QUIT}, use in Lisp primitives
+  Note the call to the @code{QUIT} macro inside the loop: this macro
+checks whether the user pressed @kbd{C-g}, and if so, aborts the
+processing.  You should do that in any loop that can potentially
+require a large number of iterations; in this case, the list of
+arguments could be very long.  This increases Emacs responsiveness and
+improves user experience.
+
   You must not use C initializers for static or global variables unless
 the variables are never written once Emacs is dumped.  These variables
 with initializers are allocated in an area of memory that becomes