diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/subr.el | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/subr.el b/lisp/subr.el index 866a6f6fd7c..5302558d834 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -629,7 +629,11 @@ The normal global definition of the character C-x indirects to this keymap.") (defsubst eventp (obj) "True if the argument is an event object." - (or (integerp obj) + (or (and (integerp obj) + ;; Filter out integers too large to be events. + ;; M is the biggest modifier. + (zerop (logand obj (lognot (1- (lsh ?\M-\^@ 1))))) + (char-valid-p (event-basic-type obj))) (and (symbolp obj) (get obj 'event-symbol-elements)) (and (consp obj) |