Function: compat--define-key
compat--define-key is a byte-compiled function defined in
compat-29.el.
Signature
(compat--define-key KEYMAP KEY DEF &optional REMOVE)
Documentation
[Compatibility function for define-key, defined in Emacs 29.1. See (compat)
Emacs 29.1' for more details.]
Handle optional argument REMOVE.
Source Code
;; Defined in ~/.emacs.d/elpa/compat-30.1.0.1/compat-29.el
;;;; Defined in keymap.c
(compat-defun define-key (keymap key def &optional remove) ;; <compat-tests:define-key>
"Handle optional argument REMOVE."
:extended t
(if (not remove)
(define-key keymap key def)
;; Canonicalize key
(setq key (key-parse (key-description key)))
(define-key keymap key nil)
;; Split M-key in ESC key
(setq key (mapcan (lambda (k)
(if (and (integerp k) (/= (logand k ?\M-\0) 0))
(list ?\e (logxor k ?\M-\0))
(list k)))
key))
;; Delete single keys directly
(if (length= key 1)
(delete key keymap)
;; Lookup submap and delete key from there
(let ((submap (lookup-key keymap (vconcat (butlast key)))))
(unless (keymapp submap)
(error "Not a keymap for %s" key))
(when (symbolp submap)
(setq submap (symbol-function submap)))
(delete (last key) submap)))
def))