Add a new recursively bound `current-minibuffer-command' variable
* doc/lispref/commands.texi (Command Loop Info): Document it (bug#45177). * src/callint.c (Fcall_interactively): Bind it. * src/keyboard.c (syms_of_keyboard): Define current-minibuffer-command.
This commit is contained in:
parent
f6454ad6cd
commit
252366866b
4 changed files with 25 additions and 0 deletions
|
@ -928,6 +928,13 @@ remapping), and @code{this-original-command} gives the command that
|
|||
was specified to run but remapped into another command.
|
||||
@end defvar
|
||||
|
||||
@defvar current-minibuffer-command
|
||||
This has the same value as @code{this-command}, but is bound
|
||||
recursively when entering a minibuffer. This variable can be used
|
||||
from minibuffer hooks and the like to determine what command opened
|
||||
the current minibuffer session.
|
||||
@end defvar
|
||||
|
||||
@defun this-command-keys
|
||||
This function returns a string or vector containing the key sequence
|
||||
that invoked the present command. Any events read by the command
|
||||
|
|
6
etc/NEWS
6
etc/NEWS
|
@ -1437,6 +1437,12 @@ that makes it a valid button.
|
|||
|
||||
** Miscellaneous
|
||||
|
||||
+++
|
||||
|
||||
*** New variable 'current-minibuffer-command'.
|
||||
This is like 'this-command', but is bound recursively when entering
|
||||
the minibuffer.
|
||||
|
||||
+++
|
||||
*** New function 'object-intervals'.
|
||||
This function returns a copy of the list of intervals (i.e., text
|
||||
|
|
|
@ -283,6 +283,11 @@ invoke it (via an `interactive' spec that contains, for instance, an
|
|||
Lisp_Object save_real_this_command = Vreal_this_command;
|
||||
Lisp_Object save_last_command = KVAR (current_kboard, Vlast_command);
|
||||
|
||||
/* Bound recursively so that code can check the current command from
|
||||
code running from minibuffer hooks (and the like), without being
|
||||
overwritten by subsequent minibuffer calls. */
|
||||
specbind (Qcurrent_minibuffer_command, Vreal_this_command);
|
||||
|
||||
if (NILP (keys))
|
||||
keys = this_command_keys, key_count = this_command_key_count;
|
||||
else
|
||||
|
|
|
@ -11830,6 +11830,13 @@ will be in `last-command' during the following command. */);
|
|||
doc: /* This is like `this-command', except that commands should never modify it. */);
|
||||
Vreal_this_command = Qnil;
|
||||
|
||||
DEFSYM (Qcurrent_minibuffer_command, "current-minibuffer-command");
|
||||
DEFVAR_LISP ("current-minibuffer-command", Vcurrent_minibuffer_command,
|
||||
doc: /* This is like `this-command', but bound recursively.
|
||||
Code running from (for instance) a minibuffer hook can check this variable
|
||||
to see what command invoked the current minibuffer. */);
|
||||
Vcurrent_minibuffer_command = Qnil;
|
||||
|
||||
DEFVAR_LISP ("this-command-keys-shift-translated",
|
||||
Vthis_command_keys_shift_translated,
|
||||
doc: /* Non-nil if the key sequence activating this command was shift-translated.
|
||||
|
|
Loading…
Add table
Reference in a new issue