• Philipp Stephani's avatar
    Ignore pending_signals when checking for quits. · 72ec233f
    Philipp Stephani authored
    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.
    72ec233f
eval.c 127 KB