]> code.delx.au - gnu-emacs/blobdiff - lisp/help-macro.el
* server.el (server-buffer-done): Avoid changing the buffer when
[gnu-emacs] / lisp / help-macro.el
index 66a249795d7f49bb8dc4037ec39b29154844c494..cbe725e3274765f7d76112be5f3510bfa5c7098c 100644 (file)
@@ -1,7 +1,7 @@
 ;;; help-macro.el --- makes command line help such as help-for-help
 
-;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
-;;   2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
+;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Lynn Slater <lrs@indetech.com>
 ;; Maintainer: FSF
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,9 +21,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -105,7 +103,7 @@ and then returns."
                    ;; sections, *excluding* where we switch buffers
                    ;; and where we execute the chosen help command.
                    (local-map (make-sparse-keymap))
-                   (minor-mode-map-alist nil)
+                   (new-minor-mode-map-alist minor-mode-map-alist)
                    (prev-frame (selected-frame))
                    config new-frame key char)
               (if (string-match "%THIS-KEY%" help-screen)
@@ -113,7 +111,7 @@ and then returns."
                         (replace-match (key-description (substring (this-command-keys) 0 -1))
                                        t t help-screen)))
               (unwind-protect
-                  (progn
+                  (let ((minor-mode-map-alist nil))
                     (setcdr local-map ,helped-map)
                     (define-key local-map [t] 'undefined)
                     ;; Make the scroll bar keep working normally.
@@ -142,7 +140,9 @@ and then returns."
                           (let ((inhibit-read-only t))
                             (erase-buffer)
                             (insert help-screen))
-                          (help-mode)
+                          (let ((minor-mode-map-alist new-minor-mode-map-alist))
+                            (help-mode)
+                            (setq new-minor-mode-map-alist minor-mode-map-alist))
                           (goto-char (point-min))
                           (while (or (memq char (append help-event-list
                                                         (cons help-char '(?? ?\C-v ?\s ?\177 delete backspace vertical-scroll-bar ?\M-v))))
@@ -193,10 +193,10 @@ and then returns."
                           (ding)))))
                 (if new-frame (iconify-frame new-frame))
                 (if config
-                    (set-window-configuration config))))))
-     )))
+                    (set-window-configuration config))
+                (setq minor-mode-map-alist new-minor-mode-map-alist))))))))
 
 (provide 'help-macro)
 
-;;; arch-tag: 59fee949-1686-485a-8a05-83418073e257
+;; arch-tag: 59fee949-1686-485a-8a05-83418073e257
 ;;; help-macro.el ends here