aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1994-11-16 20:35:34 +0000
committerRichard M. Stallman1994-11-16 20:35:34 +0000
commit350b75679b4745e016f60d06fdced67cd385159f (patch)
tree0b94587217784a7f5adf8de29f206471ff04bef1
parent79e50e4f3268125359fd14120aff0ed1fcfb20f7 (diff)
downloademacs-350b75679b4745e016f60d06fdced67cd385159f.tar.gz
emacs-350b75679b4745e016f60d06fdced67cd385159f.zip
(substitute-key-definition): Don't recursively scan
where OLDMAP has a submap but KEYMAP does not.
-rw-r--r--lisp/subr.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index b0c718a7601..959be2580c4 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -178,8 +178,11 @@ in KEYMAP as NEWDEF those chars which are defined as OLDDEF in OLDMAP."
178 (setq inner-def (symbol-function inner-def))) 178 (setq inner-def (symbol-function inner-def)))
179 (if (eq defn olddef) 179 (if (eq defn olddef)
180 (define-key keymap prefix1 (nconc (nreverse skipped) newdef)) 180 (define-key keymap prefix1 (nconc (nreverse skipped) newdef))
181 ;; Avoid recursively rescanning a keymap being scanned.
182 (if (and (keymapp defn) 181 (if (and (keymapp defn)
182 ;; Avoid recursively scanning
183 ;; where KEYMAP does not have a submap.
184 (keymapp (lookup-key keymap prefix1))
185 ;; Avoid recursively rescanning keymap being scanned.
183 (not (memq inner-def 186 (not (memq inner-def
184 key-substitution-in-progress))) 187 key-substitution-in-progress)))
185 ;; If this one isn't being scanned already, 188 ;; If this one isn't being scanned already,
@@ -212,6 +215,7 @@ in KEYMAP as NEWDEF those chars which are defined as OLDDEF in OLDMAP."
212 (define-key keymap prefix1 215 (define-key keymap prefix1
213 (nconc (nreverse skipped) newdef)) 216 (nconc (nreverse skipped) newdef))
214 (if (and (keymapp defn) 217 (if (and (keymapp defn)
218 (keymapp (lookup-key keymap prefix1))
215 (not (memq inner-def 219 (not (memq inner-def
216 key-substitution-in-progress))) 220 key-substitution-in-progress)))
217 (substitute-key-definition olddef newdef keymap 221 (substitute-key-definition olddef newdef keymap