diff options
author | Richard M. Stallman <[email protected]> | 2005-04-16 18:19:40 +0000 |
---|---|---|
committer | Richard M. Stallman <[email protected]> | 2005-04-16 18:19:40 +0000 |
commit | a8a1c0ee0dde97eeab45722c1189c1af0de49006 (patch) | |
tree | d1fbff27af3c990b662f22ecfb76b713e64a0364 | |
parent | fbcaad36b832a6894896dfbc0562bacd3f41c599 (diff) |
(with_echo_area_buffer): Delete WHICH < 0 case.
(set_message): Call with_echo_area_buffer with WHICH = 0.
(set_message_1): Erase the echo area buffer first thing.
(echo_area_display): Don't clear echo_message_buffer.
-rw-r--r-- | src/ChangeLog | 7 | ||||
-rw-r--r-- | src/xdisp.c | 37 |
2 files changed, 22 insertions, 22 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index b8ebd3f8ba..ffcfdebcab 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2005-04-16 Richard M. Stallman <[email protected]> + + * xdisp.c (with_echo_area_buffer): Delete WHICH < 0 case. + (set_message): Call with_echo_area_buffer with WHICH = 0. + (set_message_1): Erase the echo area buffer first thing. + (echo_area_display): Don't clear echo_message_buffer. + 2005-04-16 YAMAMOTO Mitsuharu <[email protected]> * Makefile.in (mac.o): Depend on charset.h and coding.h. diff --git a/src/xdisp.c b/src/xdisp.c index e3e1048aae..4a6bc3ffeb 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -567,12 +567,21 @@ Lisp_Object Vmessage_log_max; static Lisp_Object Vmessages_buffer_name; -/* Current, index 0, and last displayed echo area message. Either - buffers from echo_buffers, or nil to indicate no message. */ +/* Index 0 is the buffer that holds the current (desired) echo area message, + or nil if none is desired right now. + + Index 1 is the buffer that holds the previously displayed echo area message, + or nil to indicate no message. This is normally what's on the screen now. + + These two can point to the same buffer. That happens when the last + message output by the user (or made by echoing) has been displayed. */ Lisp_Object echo_area_buffer[2]; -/* The buffers referenced from echo_area_buffer. */ +/* Permanent pointers to the two buffers that are used for echo area + purposes. Once the two buffers are made, and their pointers are + placed here, these two slots remain unchanged unless those buffers + need to be created afresh. */ static Lisp_Object echo_buffer[2]; @@ -7217,10 +7226,6 @@ ensure_echo_area_buffers () WHICH > 0 means use echo_area_buffer[1]. If that is nil, choose a suitable buffer from echo_buffer[] and clear it. - If WHICH < 0, set echo_area_buffer[1] to echo_area_buffer[0], so - that the current message becomes the last displayed one, make - choose a suitable buffer for echo_area_buffer[0], and clear it. - Value is what FN returns. */ static int @@ -7245,17 +7250,6 @@ with_echo_area_buffer (w, which, fn, a1, a2, a3, a4) this_one = 0, the_other = 1; else if (which > 0) this_one = 1, the_other = 0; - else - { - this_one = 0, the_other = 1; - clear_buffer_p = 1; - - /* We need a fresh one in case the current echo buffer equals - the one containing the last displayed echo area message. */ - if (!NILP (echo_area_buffer[this_one]) - && EQ (echo_area_buffer[this_one], echo_area_buffer[the_other])) - echo_area_buffer[this_one] = Qnil; - } /* Choose a suitable buffer from echo_buffer[] is we don't have one. */ @@ -7875,7 +7869,7 @@ set_message (s, string, nbytes, multibyte_p) = ((s && multibyte_p) || (STRINGP (string) && STRING_MULTIBYTE (string))); - with_echo_area_buffer (0, -1, set_message_1, + with_echo_area_buffer (0, 0, set_message_1, (EMACS_INT) s, string, nbytes, multibyte_p); message_buf_print = 0; help_echo_showing_p = 0; @@ -7907,6 +7901,7 @@ set_message_1 (a1, a2, nbytes, multibyte_p) /* Insert new message at BEG. */ TEMP_SET_PT_BOTH (BEG, BEG_BYTE); + Ferase_buffer (); if (STRINGP (string)) { @@ -8123,10 +8118,8 @@ echo_area_display (update_frame_p) else if (!EQ (mini_window, selected_window)) windows_or_buffers_changed++; - /* Last displayed message is now the current message. */ + /* The current message is now also the last one displayed. */ echo_area_buffer[1] = echo_area_buffer[0]; - /* Inform read_char that we're not echoing. */ - echo_message_buffer = Qnil; /* Prevent redisplay optimization in redisplay_internal by resetting this_line_start_pos. This is done because the mini-buffer now |