diff options
| author | Juri Linkov | 2005-11-09 07:48:38 +0000 |
|---|---|---|
| committer | Juri Linkov | 2005-11-09 07:48:38 +0000 |
| commit | d35f78c989efa1cac28d6aa75f65f1990d0669c6 (patch) | |
| tree | 59ba07dc3745af72adb5eb037f15fdbfc0bbabc0 | |
| parent | 8b363e6f08ce2f37fa84522b3ceb44440b9fe124 (diff) | |
| download | emacs-d35f78c989efa1cac28d6aa75f65f1990d0669c6.tar.gz emacs-d35f78c989efa1cac28d6aa75f65f1990d0669c6.zip | |
(shadow_lookup): If Flookup_key returns a number,
call it again with a sub-key-sequence, and if its return value
is non-nil (sub-key is bound), return nil.
| -rw-r--r-- | src/keymap.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/keymap.c b/src/keymap.c index f74ee61a08c..f2370225ab8 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -2377,7 +2377,13 @@ shadow_lookup (shadow, key, flag) | |||
| 2377 | for (tail = shadow; CONSP (tail); tail = XCDR (tail)) | 2377 | for (tail = shadow; CONSP (tail); tail = XCDR (tail)) |
| 2378 | { | 2378 | { |
| 2379 | value = Flookup_key (XCAR (tail), key, flag); | 2379 | value = Flookup_key (XCAR (tail), key, flag); |
| 2380 | if (!NILP (value) && !NATNUMP (value)) | 2380 | if (NATNUMP (value)) |
| 2381 | { | ||
| 2382 | value = Flookup_key (XCAR (tail), Fsubstring (key, 0, value), flag); | ||
| 2383 | if (!NILP (value)) | ||
| 2384 | return Qnil; | ||
| 2385 | } | ||
| 2386 | else if (!NILP (value)) | ||
| 2381 | return value; | 2387 | return value; |
| 2382 | } | 2388 | } |
| 2383 | return Qnil; | 2389 | return Qnil; |