Fix notmuch-describe-key

Fix notmuch-describe-key crashing for the following two cases
1. format-kbd-macro cannot deal with keys like [(32 . 126)], switch to
use key-description instead.
2. if a function in the current keymap is not bounded, it will crash
the whole process. We check if it is bounded and silently skip it to
avoid crashing.
This commit is contained in:
Yang Sheng 2019-03-02 23:35:33 -05:00 committed by David Bremner
parent b22386f353
commit 0ae8cab4d3

View file

@ -298,7 +298,7 @@ This is basically just `format-kbd-macro' but we also convert ESC to M-."
"Prepend cons cells describing prefix-arg ACTUAL-KEY and ACTUAL-KEY to TAIL "Prepend cons cells describing prefix-arg ACTUAL-KEY and ACTUAL-KEY to TAIL
It does not prepend if ACTUAL-KEY is already listed in TAIL." It does not prepend if ACTUAL-KEY is already listed in TAIL."
(let ((key-string (concat prefix (format-kbd-macro actual-key)))) (let ((key-string (concat prefix (key-description actual-key))))
;; We don't include documentation if the key-binding is ;; We don't include documentation if the key-binding is
;; over-ridden. Note, over-riding a binding automatically hides the ;; over-ridden. Note, over-riding a binding automatically hides the
;; prefixed version too. ;; prefixed version too.
@ -313,7 +313,7 @@ It does not prepend if ACTUAL-KEY is already listed in TAIL."
;; Documentation for command ;; Documentation for command
(push (cons key-string (push (cons key-string
(or (and (symbolp binding) (get binding 'notmuch-doc)) (or (and (symbolp binding) (get binding 'notmuch-doc))
(notmuch-documentation-first-line binding))) (and (functionp binding) (notmuch-documentation-first-line binding))))
tail))) tail)))
tail) tail)