# HG changeset patch # User Richard M. Stallman # Date 759076071 0 # Node ID f0f285e628d06d1540c22d28bdb73e2e39e158ba # Parent 360a711e7e06ea2aeb29f5dc7fbda28fbe3eb76a (make-help-screen): Use overriding-local-map. Recognize C-v and M-v properly. Compute help-screen after changing the map. diff -r 360a711e7e06 -r f0f285e628d0 lisp/help-macro.el --- a/lisp/help-macro.el Thu Jan 20 13:16:53 1994 +0000 +++ b/lisp/help-macro.el Thu Jan 20 14:27:51 1994 +0000 @@ -82,17 +82,16 @@ (, help-text) (interactive) (let ((line-prompt - (substitute-command-keys (, help-line))) - (help-screen (documentation (quote (, fname))))) + (substitute-command-keys (, help-line)))) (message line-prompt) - (let ((old-local-map (current-local-map)) - (old-global-map (current-global-map)) - (minor-mode-map-alist nil) - config key char) + (let* ((overriding-local-map (make-sparse-keymap)) + (minor-mode-map-alist nil) + config key char help-screen) (unwind-protect (progn - (use-global-map (, helped-map)) - (use-local-map nil) + (setcdr overriding-local-map (, helped-map)) + (define-key overriding-local-map [t] 'undefined) + (setq help-screen (documentation (quote (, fname)))) (setq key (read-key-sequence nil)) (setq char (aref key 0)) (if (or (eq char ??) (eq char help-char)) @@ -102,12 +101,15 @@ (erase-buffer) (insert help-screen) (goto-char (point-min)) - (while (memq char (cons help-char '(?? ?\C-v ?\ ?\177 ?\M-v))) + (while (or (memq char (cons help-char '(?? ?\C-v ?\ ?\177 ?\M-v))) + (equal key "\M-v")) + (setq list (cons key list)) (condition-case nil (progn (if (memq char '(?\C-v ?\ )) (scroll-up)) - (if (memq char '(?\177 ?\M-v)) + (if (or (memq char '(?\177 ?\M-v)) + (equal key "\M-v")) (scroll-down))) (error nil)) (message "%s%s: " @@ -116,7 +118,8 @@ "" " or Space to scroll")) (let ((cursor-in-echo-area t)) (setq key (read-key-sequence nil) - char (aref key 0)))))) + char (aref key 0)))) + (setq list (cons key list)))) ;; Mouse clicks are not part of the help feature, ;; so reexecute them in the standard environment. (if (listp char) @@ -130,12 +133,9 @@ (progn (set-window-configuration config) (setq config nil))) - (use-local-map old-local-map) - (use-global-map old-global-map) + (setq overriding-local-map nil) (call-interactively defn)) (ding))))) - (use-local-map old-local-map) - (use-global-map old-global-map) (if config (set-window-configuration config)))))) ))