aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman2005-04-16 18:19:40 +0000
committerRichard M. Stallman2005-04-16 18:19:40 +0000
commita8a1c0ee0dde97eeab45722c1189c1af0de49006 (patch)
treed1fbff27af3c990b662f22ecfb76b713e64a0364 /src
parentfbcaad36b832a6894896dfbc0562bacd3f41c599 (diff)
downloademacs-a8a1c0ee0dde97eeab45722c1189c1af0de49006.tar.gz
emacs-a8a1c0ee0dde97eeab45722c1189c1af0de49006.zip
(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.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog7
-rw-r--r--src/xdisp.c37
2 files changed, 22 insertions, 22 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b8ebd3f8ba2..ffcfdebcab1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
12005-04-16 Richard M. Stallman <rms@gnu.org>
2
3 * xdisp.c (with_echo_area_buffer): Delete WHICH < 0 case.
4 (set_message): Call with_echo_area_buffer with WHICH = 0.
5 (set_message_1): Erase the echo area buffer first thing.
6 (echo_area_display): Don't clear echo_message_buffer.
7
12005-04-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 82005-04-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 9
3 * Makefile.in (mac.o): Depend on charset.h and coding.h. 10 * Makefile.in (mac.o): Depend on charset.h and coding.h.
diff --git a/src/xdisp.c b/src/xdisp.c
index e3e1048aaea..4a6bc3ffeb7 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -567,12 +567,21 @@ Lisp_Object Vmessage_log_max;
567 567
568static Lisp_Object Vmessages_buffer_name; 568static Lisp_Object Vmessages_buffer_name;
569 569
570/* Current, index 0, and last displayed echo area message. Either 570/* Index 0 is the buffer that holds the current (desired) echo area message,
571 buffers from echo_buffers, or nil to indicate no message. */ 571 or nil if none is desired right now.
572
573 Index 1 is the buffer that holds the previously displayed echo area message,
574 or nil to indicate no message. This is normally what's on the screen now.
575
576 These two can point to the same buffer. That happens when the last
577 message output by the user (or made by echoing) has been displayed. */
572 578
573Lisp_Object echo_area_buffer[2]; 579Lisp_Object echo_area_buffer[2];
574 580
575/* The buffers referenced from echo_area_buffer. */ 581/* Permanent pointers to the two buffers that are used for echo area
582 purposes. Once the two buffers are made, and their pointers are
583 placed here, these two slots remain unchanged unless those buffers
584 need to be created afresh. */
576 585
577static Lisp_Object echo_buffer[2]; 586static Lisp_Object echo_buffer[2];
578 587
@@ -7217,10 +7226,6 @@ ensure_echo_area_buffers ()
7217 WHICH > 0 means use echo_area_buffer[1]. If that is nil, choose a 7226 WHICH > 0 means use echo_area_buffer[1]. If that is nil, choose a
7218 suitable buffer from echo_buffer[] and clear it. 7227 suitable buffer from echo_buffer[] and clear it.
7219 7228
7220 If WHICH < 0, set echo_area_buffer[1] to echo_area_buffer[0], so
7221 that the current message becomes the last displayed one, make
7222 choose a suitable buffer for echo_area_buffer[0], and clear it.
7223
7224 Value is what FN returns. */ 7229 Value is what FN returns. */
7225 7230
7226static int 7231static int
@@ -7245,17 +7250,6 @@ with_echo_area_buffer (w, which, fn, a1, a2, a3, a4)
7245 this_one = 0, the_other = 1; 7250 this_one = 0, the_other = 1;
7246 else if (which > 0) 7251 else if (which > 0)
7247 this_one = 1, the_other = 0; 7252 this_one = 1, the_other = 0;
7248 else
7249 {
7250 this_one = 0, the_other = 1;
7251 clear_buffer_p = 1;
7252
7253 /* We need a fresh one in case the current echo buffer equals
7254 the one containing the last displayed echo area message. */
7255 if (!NILP (echo_area_buffer[this_one])
7256 && EQ (echo_area_buffer[this_one], echo_area_buffer[the_other]))
7257 echo_area_buffer[this_one] = Qnil;
7258 }
7259 7253
7260 /* Choose a suitable buffer from echo_buffer[] is we don't 7254 /* Choose a suitable buffer from echo_buffer[] is we don't
7261 have one. */ 7255 have one. */
@@ -7875,7 +7869,7 @@ set_message (s, string, nbytes, multibyte_p)
7875 = ((s && multibyte_p) 7869 = ((s && multibyte_p)
7876 || (STRINGP (string) && STRING_MULTIBYTE (string))); 7870 || (STRINGP (string) && STRING_MULTIBYTE (string)));
7877 7871
7878 with_echo_area_buffer (0, -1, set_message_1, 7872 with_echo_area_buffer (0, 0, set_message_1,
7879 (EMACS_INT) s, string, nbytes, multibyte_p); 7873 (EMACS_INT) s, string, nbytes, multibyte_p);
7880 message_buf_print = 0; 7874 message_buf_print = 0;
7881 help_echo_showing_p = 0; 7875 help_echo_showing_p = 0;
@@ -7907,6 +7901,7 @@ set_message_1 (a1, a2, nbytes, multibyte_p)
7907 7901
7908 /* Insert new message at BEG. */ 7902 /* Insert new message at BEG. */
7909 TEMP_SET_PT_BOTH (BEG, BEG_BYTE); 7903 TEMP_SET_PT_BOTH (BEG, BEG_BYTE);
7904 Ferase_buffer ();
7910 7905
7911 if (STRINGP (string)) 7906 if (STRINGP (string))
7912 { 7907 {
@@ -8123,10 +8118,8 @@ echo_area_display (update_frame_p)
8123 else if (!EQ (mini_window, selected_window)) 8118 else if (!EQ (mini_window, selected_window))
8124 windows_or_buffers_changed++; 8119 windows_or_buffers_changed++;
8125 8120
8126 /* Last displayed message is now the current message. */ 8121 /* The current message is now also the last one displayed. */
8127 echo_area_buffer[1] = echo_area_buffer[0]; 8122 echo_area_buffer[1] = echo_area_buffer[0];
8128 /* Inform read_char that we're not echoing. */
8129 echo_message_buffer = Qnil;
8130 8123
8131 /* Prevent redisplay optimization in redisplay_internal by resetting 8124 /* Prevent redisplay optimization in redisplay_internal by resetting
8132 this_line_start_pos. This is done because the mini-buffer now 8125 this_line_start_pos. This is done because the mini-buffer now