# HG changeset patch # User Richard M. Stallman # Date 774154206 0 # Node ID 824eeccd8203ee874756fdfc782ead1fd0408d04 # Parent a16dfe068972478dc33441120c835e7f95dd7807 (make-help-screen): Bind overriding-local-map just for short sections of code. diff -r a16dfe068972 -r 824eeccd8203 lisp/help-macro.el --- a/lisp/help-macro.el Wed Jul 13 19:10:27 1994 +0000 +++ b/lisp/help-macro.el Thu Jul 14 02:50:06 1994 +0000 @@ -94,15 +94,19 @@ (if three-step-help (message line-prompt)) (let* ((help-screen (documentation (quote (, fname)))) - (overriding-local-map (make-sparse-keymap)) + ;; We bind overriding-local-map for very small + ;; sections, *excluding* where we switch buffers + ;; and where we execute the chosen help command. + (local-map (make-sparse-keymap)) (minor-mode-map-alist nil) config key char) (unwind-protect (progn - (setcdr overriding-local-map (, helped-map)) - (define-key overriding-local-map [t] 'undefined) + (setcdr local-map (, helped-map)) + (define-key local-map [t] 'undefined) (if three-step-help - (setq key (read-key-sequence nil) + (setq key (let ((overriding-local-map local-map)) + (read-key-sequence nil)) char (aref key 0)) (setq char ??)) (if (or (eq char ??) (eq char help-char)) @@ -122,7 +126,8 @@ (equal key "\M-v")) (scroll-down))) (error nil)) - (let ((cursor-in-echo-area t)) + (let ((cursor-in-echo-area t) + (overriding-local-map local-map)) (setq key (read-key-sequence (format "Type one of the options listed%s: " (if (pos-visible-in-window-p @@ -135,7 +140,9 @@ (setq unread-command-events (cons char unread-command-events) config nil) - (let ((defn (key-binding key))) + (let ((defn + (let ((overriding-local-map local-map)) + (key-binding key)))) (if defn (progn (if config