From: Katsumi Yamaoka <yamaoka@jpl.org>
Date: Thu, 26 Jan 2017 22:43:31 +0000 (+0000)
Subject: Make `C-h b' work correctly in Gnus article buffer (bug#18257)
X-Git-Tag: emacs-26.0.90~870^2~27
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f15bbbec0b11be7bbcde83cf905875b61f24e8bb;p=emacs.git

Make `C-h b' work correctly in Gnus article buffer (bug#18257)

* lisp/gnus/gnus-art.el (gnus-article-describe-bindings):
Ignore summary commands that aren't bound to
gnus-article-read-summary-keys keys (bug#18257).
---

diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index a0f14402fbf..43e1231914c 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -6846,17 +6846,21 @@ then we display only bindings that start with that prefix."
   (let ((keymap (copy-keymap gnus-article-mode-map))
 	(map (copy-keymap gnus-article-send-map))
 	(sumkeys (where-is-internal 'gnus-article-read-summary-keys))
+	(summap (make-sparse-keymap))
 	parent agent draft)
     (define-key keymap "S" map)
     (define-key map [t] nil)
+    (define-key summap [t] 'undefined)
     (with-current-buffer gnus-article-current-summary
+      (dolist (key sumkeys)
+	(define-key summap key (key-binding key (current-local-map))))
       (set-keymap-parent
        keymap
        (if (setq parent (keymap-parent gnus-article-mode-map))
 	   (prog1
 	       (setq parent (copy-keymap parent))
-	     (set-keymap-parent parent (current-local-map)))
-	 (current-local-map)))
+	     (set-keymap-parent parent summap))
+	 summap))
       (set-keymap-parent map (key-binding "S"))
       (let (key def gnus-pick-mode)
 	(while sumkeys