Function: help--binding-locus
help--binding-locus is a byte-compiled function defined in help.el.gz.
Signature
(help--binding-locus KEY POSITION)
Documentation
Describe in which keymap KEY is defined.
Return a symbol pointing to that keymap if one exists ; otherwise
return nil. The argument POSITION is as documented in the
function key-binding.
Source Code
;; Defined in /usr/src/emacs/lisp/help.el.gz
(defun help--binding-locus (key position)
"Describe in which keymap KEY is defined.
Return a symbol pointing to that keymap if one exists ; otherwise
return nil. The argument POSITION is as documented in the
function `key-binding'."
(let ((map (help--key-binding-keymap key t nil position)))
(when map
(catch 'found
(let ((advertised-syms (nconc
(list 'overriding-terminal-local-map
'overriding-local-map)
(delq nil
(mapcar
(lambda (mode-and-map)
(let ((mode (car mode-and-map)))
(when (symbol-value mode)
(intern-soft
(format "%s-map" mode)))))
minor-mode-map-alist))
(list 'global-map
(intern-soft (format "%s-map" major-mode))))))
;; Look into these advertised symbols first.
(dolist (sym advertised-syms)
(when (and
(boundp sym)
(eq map (symbol-value sym)))
(throw 'found sym)))
;; Only look in other symbols otherwise.
(mapatoms
(lambda (x)
(when (and (boundp x)
;; Avoid let-bound symbols.
(special-variable-p x)
(eq (symbol-value x) map))
(throw 'found x))))
nil)))))