Add hook for all events
* lisp/subr.el (input-event-functions): Add input-event-functions * src/keyboard.c (read_char): Call input-event-functions on all hooks
This commit is contained in:
parent
fd94312443
commit
7b31de4d10
3 changed files with 13 additions and 1 deletions
4
etc/NEWS
4
etc/NEWS
|
@ -1189,11 +1189,13 @@ removed.
|
|||
|
||||
* Lisp Changes in Emacs 27.1
|
||||
|
||||
+++
|
||||
|
||||
** 'self-insert-command' takes the char to insert as (optional) argument.
|
||||
|
||||
** 'lookup-key' can take a list of keymaps as argument.
|
||||
|
||||
** New hook `input-event-functions` run whenever a user-input is read.
|
||||
|
||||
+++
|
||||
** 'condition-case' now accepts 't' to match any error symbol.
|
||||
|
||||
|
|
|
@ -1289,6 +1289,12 @@ See `event-start' for a description of the value returned."
|
|||
The return value is a positive integer."
|
||||
(if (and (consp event) (integerp (nth 2 event))) (nth 2 event) 1))
|
||||
|
||||
(defvar input-event-functions nil
|
||||
;; BEWARE: If it looks like this is not run anywhere, it's normal:
|
||||
;; this is run in keyboard.c.
|
||||
"Special hook run each time a user-input event is read.
|
||||
Each function is called with one argument: the event.")
|
||||
|
||||
(defsubst event-line-count (event)
|
||||
"Return the line count of EVENT, a mousewheel event.
|
||||
The return value is a positive integer."
|
||||
|
|
|
@ -2919,6 +2919,8 @@ read_char (int commandflag, Lisp_Object map,
|
|||
if (! NILP (also_record))
|
||||
record_char (also_record);
|
||||
|
||||
Frun_hook_with_args (2, ((Lisp_Object []) {Qinput_event_functions, c}));
|
||||
|
||||
/* Wipe the echo area.
|
||||
But first, if we are about to use an input method,
|
||||
save the echo area contents for it to refer to. */
|
||||
|
@ -11022,6 +11024,8 @@ syms_of_keyboard (void)
|
|||
|
||||
DEFSYM (Qundefined, "undefined");
|
||||
|
||||
DEFSYM (Qinput_event_functions, "input-event-functions");
|
||||
|
||||
/* Hooks to run before and after each command. */
|
||||
DEFSYM (Qpre_command_hook, "pre-command-hook");
|
||||
DEFSYM (Qpost_command_hook, "post-command-hook");
|
||||
|
|
Loading…
Add table
Reference in a new issue