From: Eli Zaretskii Date: Fri, 16 Oct 2015 10:01:53 +0000 (+0300) Subject: Minor improvement in documentation of internals X-Git-Tag: emacs-25.0.90~1110 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b0d190fbe2cd4a092fa186b3d674ec89ff000776;p=emacs.git Minor improvement in documentation of internals * doc/lispref/internals.texi (Writing Emacs Primitives): Document QUIT. --- diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi index 20681c07d9a..e620da0b4ff 100644 --- a/doc/lispref/internals.texi +++ b/doc/lispref/internals.texi @@ -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