From afd9831b8da5745a247670158486003b9c7eac6d Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 18 Sep 1995 14:45:44 +0000 Subject: (substitute-key-definition): Do recursively scan where KEYMAP has nothing at all. --- lisp/subr.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lisp/subr.el') diff --git a/lisp/subr.el b/lisp/subr.el index 970ba2ee4f..fdf189c685 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -129,7 +129,9 @@ in KEYMAP as NEWDEF those chars which are defined as OLDDEF in OLDMAP." (if (and (keymapp defn) ;; Avoid recursively scanning ;; where KEYMAP does not have a submap. - (keymapp (lookup-key keymap prefix1)) + (let ((elt (lookup-key keymap prefix1))) + (or (null elt) + (keymapp elt))) ;; Avoid recursively rescanning keymap being scanned. (not (memq inner-def key-substitution-in-progress))) @@ -163,7 +165,9 @@ in KEYMAP as NEWDEF those chars which are defined as OLDDEF in OLDMAP." (define-key keymap prefix1 (nconc (nreverse skipped) newdef)) (if (and (keymapp defn) - (keymapp (lookup-key keymap prefix1)) + (let ((elt (lookup-key keymap prefix1))) + (or (null elt) + (keymapp elt))) (not (memq inner-def key-substitution-in-progress))) (substitute-key-definition olddef newdef keymap -- cgit v1.2.3