[notmuch] [PATCH 2/2] notmuch.el: convert sparse keymap to a list in notmuch-substitute-one-command-key-with-prefix

Subject: [notmuch] [PATCH 2/2] notmuch.el: convert sparse keymap to a list in notmuch-substitute-one-command-key-with-prefix

Date: Sat, 26 Dec 2009 23:51:17 -0400

To: notmuch@notmuchmail.org

Cc: David Bremner

From: david@tethera.net


From: David Bremner <bremner@unb.ca>

The previous version would crash when a key was bound to a sparse
keymap, since apparently these are not straightforward lists.  The
usage of map-keymap is a bit obscure: it only has side-effects, no
return value.
---
 notmuch.el |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/notmuch.el b/notmuch.el
index 8df0778..7b058de 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -846,8 +846,12 @@ For a mouse binding, return nil."
     (if (mouse-event-p key)
 	nil
       (if (keymapp action)
-	  (let ((substitute (apply-partially 'notmuch-substitute-one-command-key-with-prefix (notmuch-prefix-key-description key))))
-	    (mapconcat substitute (cdr action) "\n"))
+	  (let ((substitute (apply-partially 'notmuch-substitute-one-command-key-with-prefix (notmuch-prefix-key-description key)))
+		(as-list))
+	    (map-keymap (lambda (a b)
+			  (push (cons a b) as-list))
+			action)
+	    (mapconcat substitute as-list "\n"))
 	(concat prefix (format-kbd-macro (vector key))
 		"\t"
 		(notmuch-documentation-first-line action))))))
-- 
1.6.5


Thread: