]> git.eshelyaron.com Git - emacs.git/commitdiff
Ignore pending_signals when checking for quits.
authorPhilipp Stephani <p.stephani2@gmail.com>
Wed, 2 Jan 2019 21:22:18 +0000 (22:22 +0100)
committerPhilipp Stephani <phst@google.com>
Wed, 7 Aug 2019 16:16:36 +0000 (18:16 +0200)
pending_signals is often set if no quit is pending.  This results in
bugs in module code if the module returns but no quit is actually
pending.

* src/emacs-module.c (module_should_quit): Use QUITP macro to check
whether the caller should quit.

* src/eval.c: Remove obsolete comment.

src/emacs-module.c
src/eval.c

index 0abfd3f6f16a53070f31c0fb8f0557935420145b..282012770eb078adcc757fb76c3ea664b2910d26 100644 (file)
@@ -665,13 +665,13 @@ module_vec_size (emacs_env *env, emacs_value vec)
   return ASIZE (lvec);
 }
 
-/* This function should return true if and only if maybe_quit would do
-   anything.  */
+/* This function should return true if and only if maybe_quit would
+   quit.  */
 static bool
 module_should_quit (emacs_env *env)
 {
   MODULE_FUNCTION_BEGIN_NO_CATCH (false);
-  return (! NILP (Vquit_flag) && NILP (Vinhibit_quit)) || pending_signals;
+  return QUITP;
 }
 
 \f
index 0dc8639a8d461b08731e9a625861d7ec3a02a3d8..2409d3d2c4b59aace4af04ca8fc694442edcf3b4 100644 (file)
@@ -1484,10 +1484,7 @@ process_quit_flag (void)
    If quit-flag is set to `kill-emacs' the SIGINT handler has received
    a request to exit Emacs when it is safe to do.
 
-   When not quitting, process any pending signals.
-
-   If you change this function, also adapt module_should_quit in
-   emacs-module.c.  */
+   When not quitting, process any pending signals.  */
 
 void
 maybe_quit (void)