]> code.delx.au - gnu-emacs/blobdiff - lisp/help-macro.el
Update copyright year to 2016
[gnu-emacs] / lisp / help-macro.el
index 8efb99d42d8d1c579e2f3c1b375ff84cf745bdd7..eb2f6249ce13bc252ba5656b8feb44c971880275 100644 (file)
@@ -1,9 +1,9 @@
 ;;; help-macro.el --- makes command line help such as help-for-help
 
-;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
 
 ;; Author: Lynn Slater <lrs@indetech.com>
-;; Maintainer: FSF
+;; Maintainer: emacs-devel@gnu.org
 ;; Created: Mon Oct  1 11:42:39 1990
 ;; Adapted-By: ESR
 ;; Package: emacs
 
 (require 'backquote)
 
+;; This needs to be autoloaded because it is used in the
+;; make-help-screen macro.  Using (bound-and-true-p three-step-help)
+;; is not an acceptable alternative, because nothing loads help-macro
+;; in a normal session, so any user customization would never be applied.
 ;;;###autoload
 (defcustom three-step-help nil
   "Non-nil means give more info about Help command in three steps.
@@ -130,11 +134,11 @@ and then returns."
                   (when (or (eq char ??) (eq char help-char)
                             (memq char help-event-list))
                     (setq config (current-window-configuration))
-                    (switch-to-buffer-other-window "*Help*")
+                    (pop-to-buffer " *Metahelp*" nil t)
                     (and (fboundp 'make-frame)
-                         (not (eq (window-frame (selected-window))
+                         (not (eq (window-frame)
                                   prev-frame))
-                         (setq new-frame (window-frame (selected-window))
+                         (setq new-frame (window-frame)
                                config nil))
                     (setq buffer-read-only nil)
                     (let ((inhibit-read-only t))
@@ -184,9 +188,12 @@ and then returns."
                             (when config
                               (set-window-configuration config)
                               (setq config nil))
-                            ;; `defn' must make sure that its frame is
-                            ;; selected, so we won't iconify it below.
-                            (call-interactively defn)
+                            ;; Temporarily rebind `minor-mode-map-alist'
+                            ;; to `new-minor-mode-map-alist' (Bug#10454).
+                            (let ((minor-mode-map-alist new-minor-mode-map-alist))
+                              ;; `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))