mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
* 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.
18 lines
769 B
C
18 lines
769 B
C
/* Add module environment functions newly added in Emacs 28 here.
|
|
Before Emacs 28 is released, remove this comment and start
|
|
module-env-29.h on the master branch. */
|
|
|
|
void (*(*EMACS_ATTRIBUTE_NONNULL (1)
|
|
get_function_finalizer) (emacs_env *env,
|
|
emacs_value arg)) (void *) EMACS_NOEXCEPT;
|
|
|
|
void (*set_function_finalizer) (emacs_env *env, emacs_value arg,
|
|
void (*fin) (void *) EMACS_NOEXCEPT)
|
|
EMACS_ATTRIBUTE_NONNULL (1);
|
|
|
|
int (*open_channel) (emacs_env *env, emacs_value pipe_process)
|
|
EMACS_ATTRIBUTE_NONNULL (1);
|
|
|
|
void (*make_interactive) (emacs_env *env, emacs_value function,
|
|
emacs_value spec)
|
|
EMACS_ATTRIBUTE_NONNULL (1);
|