diff options
| author | Gerd Moellmann | 2000-05-11 12:23:55 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-05-11 12:23:55 +0000 |
| commit | 1172eb8dfaf1d4a1a9f83b2c9e84d93a5de015c0 (patch) | |
| tree | 9fd0e95d9c4c5fc7f2bbe0749ef516d2a04eed6d /src | |
| parent | da4496b6c93c5243c689aee22a177e7b4494bc91 (diff) | |
| download | emacs-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/ChangeLog | 4 | ||||
| -rw-r--r-- | src/keyboard.c | 28 |
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 @@ | |||
| 1 | 2000-05-11 Gerd Moellmann <gerd@gnu.org> | 1 | 2000-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 | ||