[PATCH] Fix notmuch-describe-key
Matt Armstrong
marmstrong at google.com
Mon Mar 4 18:27:17 PST 2019
Matt Armstrong <marmstrong at google.com> writes:
> Yang Sheng <yangsheng6810 at 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
More information about the notmuch
mailing list