Mercurial > emacs
comparison lisp/subr.el @ 13039:04ffbdd37d2d
(substitute-key-definition): Do recursively scan
where KEYMAP has nothing at all.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 18 Sep 1995 14:45:44 +0000 |
parents | 2f4bbd557180 |
children | 6d3d7b32c519 |
comparison
equal
deleted
inserted
replaced
13038:d07703594662 | 13039:04ffbdd37d2d |
---|---|
127 (if (eq defn olddef) | 127 (if (eq defn olddef) |
128 (define-key keymap prefix1 (nconc (nreverse skipped) newdef)) | 128 (define-key keymap prefix1 (nconc (nreverse skipped) newdef)) |
129 (if (and (keymapp defn) | 129 (if (and (keymapp defn) |
130 ;; Avoid recursively scanning | 130 ;; Avoid recursively scanning |
131 ;; where KEYMAP does not have a submap. | 131 ;; where KEYMAP does not have a submap. |
132 (keymapp (lookup-key keymap prefix1)) | 132 (let ((elt (lookup-key keymap prefix1))) |
133 (or (null elt) | |
134 (keymapp elt))) | |
133 ;; Avoid recursively rescanning keymap being scanned. | 135 ;; Avoid recursively rescanning keymap being scanned. |
134 (not (memq inner-def | 136 (not (memq inner-def |
135 key-substitution-in-progress))) | 137 key-substitution-in-progress))) |
136 ;; If this one isn't being scanned already, | 138 ;; If this one isn't being scanned already, |
137 ;; scan it now. | 139 ;; scan it now. |
161 (setq inner-def (symbol-function inner-def))) | 163 (setq inner-def (symbol-function inner-def))) |
162 (if (eq defn olddef) | 164 (if (eq defn olddef) |
163 (define-key keymap prefix1 | 165 (define-key keymap prefix1 |
164 (nconc (nreverse skipped) newdef)) | 166 (nconc (nreverse skipped) newdef)) |
165 (if (and (keymapp defn) | 167 (if (and (keymapp defn) |
166 (keymapp (lookup-key keymap prefix1)) | 168 (let ((elt (lookup-key keymap prefix1))) |
169 (or (null elt) | |
170 (keymapp elt))) | |
167 (not (memq inner-def | 171 (not (memq inner-def |
168 key-substitution-in-progress))) | 172 key-substitution-in-progress))) |
169 (substitute-key-definition olddef newdef keymap | 173 (substitute-key-definition olddef newdef keymap |
170 inner-def | 174 inner-def |
171 prefix1))))) | 175 prefix1))))) |