if (!NILP (val))
break;
args = XCDR (args);
+ QUIT;
@}
@end group
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