aboutsummaryrefslogtreecommitdiffstats
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorMiles Bader2007-10-19 00:00:21 +0000
committerMiles Bader2007-10-19 00:00:21 +0000
commit9c8020a8df03dc67a56d7df15664dcf7ace54bf0 (patch)
tree09b0646addff3c39f9e96ba89c04bdcc038a87a7 /src/keyboard.c
parentdfc3268dfa133a2e0a677f1af7c1ee548eae065d (diff)
parentbd3164743080f3eb5fc316aca7cc5322ca58fe33 (diff)
downloademacs-9c8020a8df03dc67a56d7df15664dcf7ace54bf0.tar.gz
emacs-9c8020a8df03dc67a56d7df15664dcf7ace54bf0.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 890-898) - Update from CVS - Merge from emacs--rel--22 * emacs--rel--22 (patch 122-128) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 257-258) - Merge from emacs--rel--22 - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-270
Diffstat (limited to 'src/keyboard.c')
-rw-r--r--src/keyboard.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 6d6ba6e0cc0..2002aded95d 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -8538,7 +8538,7 @@ read_char_x_menu_prompt (nmaps, maps, prev_event, used_mouse_menu)
8538 to indicate that they came from a mouse menu, 8538 to indicate that they came from a mouse menu,
8539 so that when present in last_nonmenu_event 8539 so that when present in last_nonmenu_event
8540 they won't confuse things. */ 8540 they won't confuse things. */
8541 for (tem = XCDR (value); !NILP (tem); tem = XCDR (tem)) 8541 for (tem = XCDR (value); CONSP (tem); tem = XCDR (tem))
8542 { 8542 {
8543 record_menu_key (XCAR (tem)); 8543 record_menu_key (XCAR (tem));
8544 if (SYMBOLP (XCAR (tem)) 8544 if (SYMBOLP (XCAR (tem))
@@ -9185,13 +9185,16 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
9185 orig_keymap = get_local_map (PT, current_buffer, Qkeymap); 9185 orig_keymap = get_local_map (PT, current_buffer, Qkeymap);
9186 from_string = Qnil; 9186 from_string = Qnil;
9187 9187
9188 /* We jump here when the key sequence has been thoroughly changed, and 9188 /* The multi-tty merge moved the code below to right after
9189 we need to rescan it starting from the beginning. When we jump here, 9189 `replay_sequence' which caused alll these translation maps to be applied
9190 keybuf[0..mock_input] holds the sequence we should reread. */ 9190 repeatedly, even tho their doc says very clearly they are not applied to
9191 replay_sequence: 9191 their own output.
9192 9192 The reason for this move was: "We may switch keyboards between rescans,
9193 /* We may switch keyboards between rescans, so we need to 9193 so we need to reinitialize fkey and keytran before each replay".
9194 reinitialize fkey and keytran before each replay. */ 9194 This move was wrong (even if we switch keyboards, keybuf still holds the
9195 keys we've read already from the original keyboard and some of those keys
9196 may have already been translated). So there may still be a bug out there
9197 lurking. */
9195 indec.map = indec.parent = current_kboard->Vinput_decode_map; 9198 indec.map = indec.parent = current_kboard->Vinput_decode_map;
9196 fkey.map = fkey.parent = current_kboard->Vlocal_function_key_map; 9199 fkey.map = fkey.parent = current_kboard->Vlocal_function_key_map;
9197 keytran.map = keytran.parent = Vkey_translation_map; 9200 keytran.map = keytran.parent = Vkey_translation_map;
@@ -9199,6 +9202,11 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
9199 fkey.start = fkey.end = 0; 9202 fkey.start = fkey.end = 0;
9200 keytran.start = keytran.end = 0; 9203 keytran.start = keytran.end = 0;
9201 9204
9205 /* We jump here when the key sequence has been thoroughly changed, and
9206 we need to rescan it starting from the beginning. When we jump here,
9207 keybuf[0..mock_input] holds the sequence we should reread. */
9208 replay_sequence:
9209
9202 starting_buffer = current_buffer; 9210 starting_buffer = current_buffer;
9203 first_unbound = bufsize + 1; 9211 first_unbound = bufsize + 1;
9204 9212