aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorPhilipp Stephani2019-01-02 22:04:56 +0100
committerPhilipp Stephani2019-02-24 22:43:07 +0100
commit72ec233f2a1b8a6a9574e61588d0467caf41755c (patch)
tree725add4413feb9cb7789576294099096e63d3044 /src/eval.c
parent5653b76d0bacf1edfc3d962c0bb991344cd80f6f (diff)
downloademacs-72ec233f2a1b8a6a9574e61588d0467caf41755c.tar.gz
emacs-72ec233f2a1b8a6a9574e61588d0467caf41755c.zip
Ignore pending_signals when checking for quits.
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. As a better alternative, add a new process_input environment function for Emacs 27. That function processes signals (like maybe_quit). * configure.ac: Add module snippet for Emacs 27. * src/module-env-27.h: New file. * src/emacs-module.h.in: Add process_input function to environment interface. * src/emacs-module.c (module_should_quit): Use QUITP macro to check whether the caller should quit. (module_process_input): New function. (initialize_environment): Use it. * src/eval.c: Remove obsolete comment. * test/data/emacs-module/mod-test.c (signal_wrong_type_argument) (signal_errno): New helper functions. (Fmod_test_sleep_until): New test module function. * test/src/emacs-module-tests.el (mod-test-sleep-until): New unit test. * doc/lispref/internals.texi (Module Misc): Document process_input.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c
index b094fc2e663..b6cdfc911d0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1575,10 +1575,7 @@ process_quit_flag (void)
1575 If quit-flag is set to `kill-emacs' the SIGINT handler has received 1575 If quit-flag is set to `kill-emacs' the SIGINT handler has received
1576 a request to exit Emacs when it is safe to do. 1576 a request to exit Emacs when it is safe to do.
1577 1577
1578 When not quitting, process any pending signals. 1578 When not quitting, process any pending signals. */
1579
1580 If you change this function, also adapt module_should_quit in
1581 emacs-module.c. */
1582 1579
1583void 1580void
1584maybe_quit (void) 1581maybe_quit (void)