• Philipp Stephani's avatar
    Add facility to make module functions interactive (Bug#23486). · da0e75e7
    Philipp Stephani authored
    * src/module-env-28.h: Add field for 'make_interactive' function.
    
    * src/emacs-module.c (Lisp_Module_Function): Add new field holding the
    interactive form.
    (allocate_module_function): Adapt to structure layout change.
    (module_make_interactive, module_function_interactive_form): New
    functions.
    (initialize_environment): Use them.
    
    * src/eval.c (Fcommandp):
    * src/data.c (Finteractive_form): Also handle interactive module
    functions.
    
    * test/data/emacs-module/mod-test.c (Fmod_test_identity): New test
    function.
    (emacs_module_init): Create two interactive module test functions.
    
    * test/src/emacs-module-tests.el (module/interactive/return-t)
    (module/interactive/return-t-int, module/interactive/identity):
    New unit tests.
    
    * doc/lispref/internals.texi (Module Functions): Document new
    function.  Rework paragraph about wrapping module functions, as the
    example no longer applies.
    
    * etc/NEWS: Document new facility.
    da0e75e7
emacs-module-tests.el 20.4 KB