aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1997-03-30 19:58:28 +0000
committerRichard M. Stallman1997-03-30 19:58:28 +0000
commit97ae4b89479b9eec8f7b020404c6435e7a752f5b (patch)
tree0ce0667fffcdcc916f4b73ed4da82ac99f23440c /src
parent654116295d459f99aed27346d95612a687602ae1 (diff)
downloademacs-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.c11
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