diff options
| author | Philipp Stephani | 2019-01-02 22:04:56 +0100 |
|---|---|---|
| committer | Philipp Stephani | 2019-02-24 22:43:07 +0100 |
| commit | 72ec233f2a1b8a6a9574e61588d0467caf41755c (patch) | |
| tree | 725add4413feb9cb7789576294099096e63d3044 /src/module-env-27.h | |
| parent | 5653b76d0bacf1edfc3d962c0bb991344cd80f6f (diff) | |
| download | emacs-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/module-env-27.h')
| -rw-r--r-- | src/module-env-27.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/module-env-27.h b/src/module-env-27.h new file mode 100644 index 00000000000..b491b60fbbc --- /dev/null +++ b/src/module-env-27.h | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | /* Processes pending input events and returns whether the module | ||
| 2 | function should quit. */ | ||
| 3 | enum emacs_process_input_result (*process_input) (emacs_env *env) | ||
| 4 | EMACS_ATTRIBUTE_NONNULL (1); | ||