aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann2000-05-11 12:23:55 +0000
committerGerd Moellmann2000-05-11 12:23:55 +0000
commit1172eb8dfaf1d4a1a9f83b2c9e84d93a5de015c0 (patch)
tree9fd0e95d9c4c5fc7f2bbe0749ef516d2a04eed6d /src
parentda4496b6c93c5243c689aee22a177e7b4494bc91 (diff)
downloademacs-1172eb8dfaf1d4a1a9f83b2c9e84d93a5de015c0.tar.gz
emacs-1172eb8dfaf1d4a1a9f83b2c9e84d93a5de015c0.zip
(read_char): Don't clear current message for help
events; let the code handling help events handle this. Change code detecting help events that should be ignored.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/keyboard.c28
2 files changed, 23 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index f1ee8e0db8f..3403e9f14f0 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
12000-05-11 Gerd Moellmann <gerd@gnu.org> 12000-05-11 Gerd Moellmann <gerd@gnu.org>
2 2
3 * keyboard.c (read_char): Don't clear current message for help
4 events; let the code handling help events handle this. Change
5 code detecting help events that should be ignored.
6
3 * xdisp.c (handle_single_display_prop): Don't try to set PT if 7 * xdisp.c (handle_single_display_prop): Don't try to set PT if
4 we're interating over a string. 8 we're interating over a string.
5 9
diff --git a/src/keyboard.c b/src/keyboard.c
index 47fb2bc5b39..990d38313f9 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2534,10 +2534,14 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2534 Vinput_method_previous_message = previous_echo_area_message; 2534 Vinput_method_previous_message = previous_echo_area_message;
2535 } 2535 }
2536 2536
2537 /* Now wipe the echo area. */ 2537 /* Now wipe the echo area, except for help events which do their
2538 if (!NILP (echo_area_buffer[0])) 2538 own stuff with the echo area. */
2539 safe_run_hooks (Qecho_area_clear_hook); 2539 if (!CONSP (c) || !(EQ (Qhelp_echo, XCAR (c))))
2540 clear_message (1, 0); 2540 {
2541 if (!NILP (echo_area_buffer[0]))
2542 safe_run_hooks (Qecho_area_clear_hook);
2543 clear_message (1, 0);
2544 }
2541 2545
2542 reread_for_input_method: 2546 reread_for_input_method:
2543 from_macro: 2547 from_macro:
@@ -2630,21 +2634,27 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2630 reread_first: 2634 reread_first:
2631 2635
2632 /* Display help if not echoing. */ 2636 /* Display help if not echoing. */
2633 if (CONSP (c) 2637 if (CONSP (c) && EQ (XCAR (c), Qhelp_echo))
2634 && EQ (XCAR (c), Qhelp_echo))
2635 { 2638 {
2636 Lisp_Object msg = XCDR (XCDR (c)); 2639 Lisp_Object msg;
2640
2641 msg = XCDR (XCDR (c));
2637 2642
2638 if (!NILP (Vshow_help_function)) 2643 if (!NILP (Vshow_help_function))
2639 call1 (Vshow_help_function, msg); 2644 call1 (Vshow_help_function, msg);
2640 else if (!echoing && !MINI_WINDOW_P (XWINDOW (selected_window))) 2645 else if (/* Don't overwrite minibuffer contents. */
2646 !MINI_WINDOW_P (XWINDOW (selected_window))
2647 /* Don't overwrite a keystroke echo. */
2648 && NILP (echo_message_buffer)
2649 /* Don't overwrite a prompt. */
2650 && !cursor_in_echo_area)
2641 { 2651 {
2642 if (STRINGP (msg)) 2652 if (STRINGP (msg))
2643 message3_nolog (msg, XSTRING (msg)->size, STRING_MULTIBYTE (msg)); 2653 message3_nolog (msg, XSTRING (msg)->size, STRING_MULTIBYTE (msg));
2644 else 2654 else
2645 message (0); 2655 message (0);
2646 } 2656 }
2647 2657
2648 goto retry; 2658 goto retry;
2649 } 2659 }
2650 2660