Matt Armstrong <marmstrong@google.com> writes: > Yang Sheng <yangsheng6810@gmail.com> writes: > >> 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. > > Can you describe case 2 in more detail? I am wondering what "crash the > whole process means" -- Emacs itself crashes? If so, is there an Emacs > bug filed for it? Also, perhaps the bug should be worked around with in > notmuch-documentation-first-line itself, rather than its caller? For example, this kind of fix makes it clearer that the problem is with the `documentation' function. modified emacs/notmuch-lib.el @@ -273,7 +273,7 @@ it, in which case it is killed." (defun notmuch-documentation-first-line (symbol) "Return the first line of the documentation string for SYMBOL." - (let ((doc (documentation symbol))) + (let ((doc (and (functionp symbol) (documentation symbol)))) (if doc (with-temp-buffer (insert (documentation symbol t)) >> --- >> emacs/notmuch-lib.el | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el >> index 8cf7261e..546ab6fd 100644 >> --- a/emacs/notmuch-lib.el >> +++ b/emacs/notmuch-lib.el >> @@ -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 >> >> 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 >> ;; over-ridden. Note, over-riding a binding automatically hides the >> ;; prefixed version too. >> @@ -313,7 +313,7 @@ It does not prepend if ACTUAL-KEY is already listed in TAIL." >> ;; Documentation for command >> (push (cons key-string >> (or (and (symbolp binding) (get binding 'notmuch-doc)) >> - (notmuch-documentation-first-line binding))) >> + (and (functionp binding) (notmuch-documentation-first-line binding)))) >> tail))) >> tail) >> >> -- >> 2.20.1 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch