aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2014-06-05 22:22:40 -0400
committerStefan Monnier2014-06-05 22:22:40 -0400
commit79b0d21638cce19216607a89b6470b1e72a028b8 (patch)
tree3bdf9d7c36592177d0e73318b28d610840113e9f /src
parentb77205c029520f123ed1d41cba12262d4fcca09e (diff)
downloademacs-79b0d21638cce19216607a89b6470b1e72a028b8.tar.gz
emacs-79b0d21638cce19216607a89b6470b1e72a028b8.zip
* src/keyboard.c (read_char): Handle (t . <event>) in the second use of
Vunread_command_events. Fixes: debbugs:17650
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog40
-rw-r--r--src/keyboard.c27
2 files changed, 35 insertions, 32 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 38feb804cd4..a56a0a27d92 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,7 +1,12 @@
12014-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * keyboard.c (read_char): Handle (t . <event>) in the second use of
4 Vunread_command_events (bug#17650).
5
12014-06-06 Dmitry Antipov <dmantipov@yandex.ru> 62014-06-06 Dmitry Antipov <dmantipov@yandex.ru>
2 7
3 * xterm.c (x_setup_pointer_blanking): Conditionally 8 * xterm.c (x_setup_pointer_blanking):
4 probe Xfixes until this stuff is stabilized (Bug#17609). 9 Conditionally probe Xfixes until this stuff is stabilized (Bug#17609).
5 10
62014-06-05 Dmitry Antipov <dmantipov@yandex.ru> 112014-06-05 Dmitry Antipov <dmantipov@yandex.ru>
7 12
@@ -19,14 +24,13 @@
19 * nsterm.h (ns_popup_dialog): Adjust prototype. 24 * nsterm.h (ns_popup_dialog): Adjust prototype.
20 * nsterm.m (ns_create_terminal): 25 * nsterm.m (ns_create_terminal):
21 * w32term.c (w32_create_terminal): 26 * w32term.c (w32_create_terminal):
22 * xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]: Setup 27 * xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]:
23 popup_dialog_hook. 28 Setup popup_dialog_hook.
24 29
252014-06-04 Eli Zaretskii <eliz@gnu.org> 302014-06-04 Eli Zaretskii <eliz@gnu.org>
26 31
27 * w32heap.c (report_temacs_memory_usage): Improve the report by 32 * w32heap.c (report_temacs_memory_usage): Improve the report by
28 reporting the large blocks that are actually occupied at dump 33 reporting the large blocks that are actually occupied at dump time.
29 time.
30 34
31 * w32console.c (initialize_w32_display): Set the console 35 * w32console.c (initialize_w32_display): Set the console
32 menu_show_hook, otherwise TTY menus are broken on w32. 36 menu_show_hook, otherwise TTY menus are broken on w32.
@@ -86,8 +90,7 @@
862014-06-03 Eli Zaretskii <eliz@gnu.org> 902014-06-03 Eli Zaretskii <eliz@gnu.org>
87 91
88 * w32heap.c (DUMPED_HEAP_SIZE): Move from w32heap.h. Don't use 92 * w32heap.c (DUMPED_HEAP_SIZE): Move from w32heap.h. Don't use
89 HEAPSIZE; instead, define separate values for the 32- and 64-bit 93 HEAPSIZE; instead, define separate values for the 32- and 64-bit builds.
90 builds.
91 (calloc): Don't undef, it is never defined. 94 (calloc): Don't undef, it is never defined.
92 (HEAP_ENTRY_SHIFT): Remove unused macro. 95 (HEAP_ENTRY_SHIFT): Remove unused macro.
93 96
@@ -103,16 +106,15 @@
103 106
1042014-06-03 Paul Eggert <eggert@cs.ucla.edu> 1072014-06-03 Paul Eggert <eggert@cs.ucla.edu>
105 108
106 * process.c (wait_reading_process_output): Omit incorrect test 109 * process.c (wait_reading_process_output): Omit incorrect test of
107 of p->infd against zero. Add easserts for infd having a plausible 110 p->infd against zero. Add easserts for infd having a plausible value.
108 value.
109 111
1102014-06-02 Dmitry Antipov <dmantipov@yandex.ru> 1122014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
111 113
112 Adjust to match recent lwlib changes. 114 Adjust to match recent lwlib changes.
113 * menu.h (xmalloc_widget_value): Replaced by ... 115 * menu.h (xmalloc_widget_value): Replace by ...
114 (make_widget_value): ... new prototype. 116 (make_widget_value): ... new prototype.
115 * menu.c (xmalloc_widget_value): Replaced by ... 117 * menu.c (xmalloc_widget_value): Replace by ...
116 (make_widget_value): ... new function. 118 (make_widget_value): ... new function.
117 (free_menubar_widget_value_tree, digest_single_submenu): Adjust users. 119 (free_menubar_widget_value_tree, digest_single_submenu): Adjust users.
118 * gtkutil.c (malloc_widget_value, free_widget_value): 120 * gtkutil.c (malloc_widget_value, free_widget_value):
@@ -272,8 +274,8 @@
272 274
273 * w32heap.c (report_temacs_memory_usage): New function. 275 * w32heap.c (report_temacs_memory_usage): New function.
274 276
275 * unexw32.c (unexec) [ENABLE_CHECKING]: Call 277 * unexw32.c (unexec) [ENABLE_CHECKING]:
276 report_temacs_memory_usage. 278 Call report_temacs_memory_usage.
277 279
278 * w32heap.h (report_temacs_memory_usage): Add prototype. 280 * w32heap.h (report_temacs_memory_usage): Add prototype.
279 281
@@ -372,8 +374,7 @@
372 * image.c (free_image): Undef free for Windows because it is 374 * image.c (free_image): Undef free for Windows because it is
373 redirected to our private version. 375 redirected to our private version.
374 376
375 * unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits 377 * unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits compatibility.
376 compatibility.
377 (copy_executable_and_dump_data): Remove dumping the heap section. 378 (copy_executable_and_dump_data): Remove dumping the heap section.
378 (unexec): Restore using_dynamic_heap after dumping. 379 (unexec): Restore using_dynamic_heap after dumping.
379 380
@@ -401,8 +402,7 @@
401 402
4022014-05-26 Eli Zaretskii <eliz@gnu.org> 4032014-05-26 Eli Zaretskii <eliz@gnu.org>
403 404
404 * w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if 405 * w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if undefined.
405 undefined.
406 406
4072014-05-26 Ken Brown <kbrown@cornell.edu> 4072014-05-26 Ken Brown <kbrown@cornell.edu>
408 408
@@ -491,7 +491,7 @@
491 was moved to Fgarbage_collect. 491 was moved to Fgarbage_collect.
492 (Fgarbage_collect): Calculate the end address of the stack portion 492 (Fgarbage_collect): Calculate the end address of the stack portion
493 that needs to be examined by mark_stack, and pass that address to 493 that needs to be examined by mark_stack, and pass that address to
494 garbage_collect_1, which will pass it to mark_stack. See 494 garbage_collect_1, which will pass it to mark_stack. See
495 http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00270.html 495 http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00270.html
496 for more details about the underlying problems. In particular, 496 for more details about the underlying problems. In particular,
497 this avoids dumping Emacs with the large hash-table whose value is 497 this avoids dumping Emacs with the large hash-table whose value is
diff --git a/src/keyboard.c b/src/keyboard.c
index 80b1f521310..c9cd222b110 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2434,7 +2434,6 @@ read_char (int commandflag, Lisp_Object map,
2434 2434
2435 retry: 2435 retry:
2436 2436
2437 reread = 0;
2438 if (CONSP (Vunread_post_input_method_events)) 2437 if (CONSP (Vunread_post_input_method_events))
2439 { 2438 {
2440 c = XCAR (Vunread_post_input_method_events); 2439 c = XCAR (Vunread_post_input_method_events);
@@ -2448,9 +2447,12 @@ read_char (int commandflag, Lisp_Object map,
2448 && NILP (XCDR (c))) 2447 && NILP (XCDR (c)))
2449 c = XCAR (c); 2448 c = XCAR (c);
2450 2449
2451 reread = 1; 2450 reread = true;
2452 goto reread_first; 2451 goto reread_first;
2453 } 2452 }
2453 else
2454 reread = false;
2455
2454 2456
2455 if (CONSP (Vunread_command_events)) 2457 if (CONSP (Vunread_command_events))
2456 { 2458 {
@@ -2459,17 +2461,13 @@ read_char (int commandflag, Lisp_Object map,
2459 c = XCAR (Vunread_command_events); 2461 c = XCAR (Vunread_command_events);
2460 Vunread_command_events = XCDR (Vunread_command_events); 2462 Vunread_command_events = XCDR (Vunread_command_events);
2461 2463
2462 reread = 1;
2463
2464 /* Undo what sit-for did when it unread additional keys 2464 /* Undo what sit-for did when it unread additional keys
2465 inside universal-argument. */ 2465 inside universal-argument. */
2466 2466
2467 if (CONSP (c) 2467 if (CONSP (c) && EQ (XCAR (c), Qt))
2468 && EQ (XCAR (c), Qt))
2469 {
2470 reread = 0;
2471 c = XCDR (c); 2468 c = XCDR (c);
2472 } 2469 else
2470 reread = true;
2473 2471
2474 /* Undo what read_char_x_menu_prompt did when it unread 2472 /* Undo what read_char_x_menu_prompt did when it unread
2475 additional keys returned by Fx_popup_menu. */ 2473 additional keys returned by Fx_popup_menu. */
@@ -2503,7 +2501,7 @@ read_char (int commandflag, Lisp_Object map,
2503 && (SYMBOLP (XCAR (c)) || INTEGERP (XCAR (c))) 2501 && (SYMBOLP (XCAR (c)) || INTEGERP (XCAR (c)))
2504 && NILP (XCDR (c))) 2502 && NILP (XCDR (c)))
2505 c = XCAR (c); 2503 c = XCAR (c);
2506 reread = 1; 2504 reread = true;
2507 goto reread_for_input_method; 2505 goto reread_for_input_method;
2508 } 2506 }
2509 2507
@@ -2844,6 +2842,11 @@ read_char (int commandflag, Lisp_Object map,
2844 { 2842 {
2845 c = XCAR (Vunread_command_events); 2843 c = XCAR (Vunread_command_events);
2846 Vunread_command_events = XCDR (Vunread_command_events); 2844 Vunread_command_events = XCDR (Vunread_command_events);
2845
2846 if (CONSP (c) && EQ (XCAR (c), Qt))
2847 c = XCDR (c);
2848 else
2849 reread = true;
2847 } 2850 }
2848 2851
2849 /* Read something from current KBOARD's side queue, if possible. */ 2852 /* Read something from current KBOARD's side queue, if possible. */
@@ -2897,8 +2900,8 @@ read_char (int commandflag, Lisp_Object map,
2897 { 2900 {
2898 c = read_decoded_event_from_main_queue (end_time, local_getcjmp, 2901 c = read_decoded_event_from_main_queue (end_time, local_getcjmp,
2899 prev_event, used_mouse_menu); 2902 prev_event, used_mouse_menu);
2900 if (NILP(c) && end_time && 2903 if (NILP (c) && end_time
2901 timespec_cmp (*end_time, current_timespec ()) <= 0) 2904 && timespec_cmp (*end_time, current_timespec ()) <= 0)
2902 { 2905 {
2903 goto exit; 2906 goto exit;
2904 } 2907 }