diff options
| author | Richard M. Stallman | 1997-03-30 19:58:28 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1997-03-30 19:58:28 +0000 |
| commit | 97ae4b89479b9eec8f7b020404c6435e7a752f5b (patch) | |
| tree | 0ce0667fffcdcc916f4b73ed4da82ac99f23440c /src | |
| parent | 654116295d459f99aed27346d95612a687602ae1 (diff) | |
| download | emacs-97ae4b89479b9eec8f7b020404c6435e7a752f5b.tar.gz emacs-97ae4b89479b9eec8f7b020404c6435e7a752f5b.zip | |
(Faccessible_keymaps): When metizing, convert a
string to a vector. But don't metize a character that is part of PREFIX.
Diffstat (limited to 'src')
| -rw-r--r-- | src/keymap.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/keymap.c b/src/keymap.c index 2cecfcd3762..536b27dae7e 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -1327,6 +1327,8 @@ then the value includes only maps for prefixes that start with PREFIX.") | |||
| 1327 | thismap = Fcdr (Fcar (tail)); | 1327 | thismap = Fcdr (Fcar (tail)); |
| 1328 | last = make_number (XINT (Flength (thisseq)) - 1); | 1328 | last = make_number (XINT (Flength (thisseq)) - 1); |
| 1329 | is_metized = (XINT (last) >= 0 | 1329 | is_metized = (XINT (last) >= 0 |
| 1330 | /* Don't metize the last char of PREFIX. */ | ||
| 1331 | && XINT (last) >= prefixlen | ||
| 1330 | && EQ (Faref (thisseq, last), meta_prefix_char)); | 1332 | && EQ (Faref (thisseq, last), meta_prefix_char)); |
| 1331 | 1333 | ||
| 1332 | for (; CONSP (thismap); thismap = XCONS (thismap)->cdr) | 1334 | for (; CONSP (thismap); thismap = XCONS (thismap)->cdr) |
| @@ -1406,9 +1408,12 @@ then the value includes only maps for prefixes that start with PREFIX.") | |||
| 1406 | turn it into a meta-ized keystroke. */ | 1408 | turn it into a meta-ized keystroke. */ |
| 1407 | if (is_metized && INTEGERP (elt)) | 1409 | if (is_metized && INTEGERP (elt)) |
| 1408 | { | 1410 | { |
| 1409 | tem = Fcopy_sequence (thisseq); | 1411 | Lisp_Object element; |
| 1410 | Faset (tem, last, | 1412 | |
| 1411 | make_number (XINT (elt) | meta_modifier)); | 1413 | element = thisseq; |
| 1414 | tem = Fvconcat (1, &element); | ||
| 1415 | XVECTOR (tem)->contents[XINT (last)] | ||
| 1416 | = XINT (elt) | meta_modifier; | ||
| 1412 | 1417 | ||
| 1413 | /* This new sequence is the same length as | 1418 | /* This new sequence is the same length as |
| 1414 | thisseq, so stick it in the list right | 1419 | thisseq, so stick it in the list right |