# HG changeset patch # User Richard M. Stallman # Date 774734472 0 # Node ID 4e5626d0b96294886d65ed11e1a69543e17961dd # Parent c01188c50e70042e15f4021d1e841186416be657 (Vdeferred_action_list, Vdeferred_action_function): New variables. (command_loop_1): Handle them. (syms_of_keyboard): Set up Lisp variables. diff -r c01188c50e70 -r 4e5626d0b962 src/keyboard.c --- a/src/keyboard.c Wed Jul 20 19:35:41 1994 +0000 +++ b/src/keyboard.c Wed Jul 20 20:01:12 1994 +0000 @@ -297,6 +297,13 @@ Lisp_Object Vpre_command_hook, Vpost_command_hook; Lisp_Object Qcommand_hook_internal, Vcommand_hook_internal; +/* List of deferred actions to be performed at a later time. + The precise format isn't relevant here; we just check whether it is nil. */ +Lisp_Object Vdeferred_action_list; + +/* Function to call to handle deferred actions, when there are any. */ +Lisp_Object Vdeferred_action_function; + /* File in which we write all commands we read. */ FILE *dribble; @@ -957,6 +964,9 @@ if (!NILP (XSYMBOL (Qpost_command_hook)->value) && !NILP (Vrun_hooks)) safe_run_hooks (Qpost_command_hook); + if (!NILP (Vdeferred_action_list)) + call0 (Vdeferred_action_function); + /* Do this after running Vpost_command_hook, for consistency. */ last_command = this_command; @@ -1227,6 +1237,9 @@ if (!NILP (XSYMBOL (Qpost_command_hook)->value) && !NILP (Vrun_hooks)) safe_run_hooks (Qpost_command_hook); + if (!NILP (Vdeferred_action_list)) + call0 (Vdeferred_action_function); + /* If there is a prefix argument, 1) We don't want last_command to be ``universal-argument'' (that would be dumb), so don't set last_command, @@ -6231,6 +6244,17 @@ numeric keysym code (sans the \"system-specific\" bit 1<<28)\n\ and SYMBOL is its name."); Vsystem_key_alist = Qnil; + + DEFVAR_LISP ("deferred-action-list", &Vdeferred_action_list, + "List of deferred actions to be performed at a later time.\n\ +The precise format isn't relevant here; we just check whether it is nil."); + Vdeferred_action_list = Qnil; + + DEFVAR_LISP ("deferred-action-function", &Vdeferred_action_function, + "Function to call to handle deferred actions, after each command.\n\ +This function is called with no arguments after each command\n\ +whenever `deferred-action-list' is non-nil."); + Vdeferred_action_function = Qnil; } keys_of_keyboard ()