Subject: Re: bug#10454: 23.3; Different result from `C-h k' and `C-h ? k'

From: martin rudalics <[email-masked]>
Date: Mon, 09 Jan 2012 19:19:01 +0100

> If I have ido-mode enabled, the output of `C-h k C-x C-f' is:
 >
 >> C-x C-f runs the command ido-find-file, which is an interactive
 >> compiled Lisp function in `ido.el'.
 >
 >
 > But if I'm just learning Emacs and I do `C-h ? k C-x C-f', the output is for (non-ido) find-file:
 >
 >> C-x C-f runs the command find-file, which is an interactive compiled
 >> Lisp function in `files.el'.

FWIW this is due to `make-help-screen' binding `minor-mode-map-alist' to
nil.  Applying the patch below seems to fix it, but maybe someone more
knowledgeable has a better solution.  (If you want to try the patch,
make sure to recompile help.el after compiling help-macro.el).

martin

*** lisp/help-macro.el	2011-01-25 04:08:28 +0000
--- lisp/help-macro.el	2012-01-09 18:05:39 +0000
***************
*** 186,192 ****
   			       (setq config nil))
   			     ;; `defn' must make sure that its frame is
   			     ;; selected, so we won't iconify it below.
! 			     (call-interactively defn)
   			     (when new-frame
   			       ;; Do not iconify the selected frame.
   			       (unless (eq new-frame (selected-frame))
--- 186,193 ----
   			       (setq config nil))
   			     ;; `defn' must make sure that its frame is
   			     ;; selected, so we won't iconify it below.
! 			     (let ((minor-mode-map-alist new-minor-mode-map-alist))
! 			       (call-interactively defn))
   			     (when new-frame
   			       ;; Do not iconify the selected frame.
   			       (unless (eq new-frame (selected-frame))