Commit 7b31de4d authored by Phillip Lord's avatar Phillip Lord
Browse files

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
parent fd943124
Pipeline #594 failed with stage
in 40 minutes and 34 seconds
......@@ -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");
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment