aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1992-10-19 18:47:56 +0000
committerJim Blandy1992-10-19 18:47:56 +0000
commit81d478f3c6c08480a20dd9caab5d5824cc9bcf17 (patch)
treeebd5a8b82ce3e720a5becc17d7d45fd7b3b57abb /src
parent27daff1e907e392b5a0886e746bc89d60495c875 (diff)
downloademacs-81d478f3c6c08480a20dd9caab5d5824cc9bcf17.tar.gz
emacs-81d478f3c6c08480a20dd9caab5d5824cc9bcf17.zip
* xdisp.c (message): If M is zero, clear echo_area_glyphs and
previous_echo_glyphs, so that the minibuffer shows through.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c46
1 files changed, 27 insertions, 19 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index a44f988a8ab..eb78d11d8f9 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -171,21 +171,24 @@ int windows_or_buffers_changed;
171 zero if being used by message. */ 171 zero if being used by message. */
172int message_buf_print; 172int message_buf_print;
173 173
174/* dump an informative message to the minibuf */ 174/* Dump an informative message to the minibuf. If m is 0, clear out
175 any existing message, and let the minibuffer text show through. */
175/* VARARGS 1 */ 176/* VARARGS 1 */
176
177void 177void
178message (m, a1, a2, a3) 178message (m, a1, a2, a3)
179 char *m; 179 char *m;
180{ 180{
181 if (noninteractive) 181 if (noninteractive)
182 { 182 {
183 if (noninteractive_need_newline) 183 if (m)
184 putc ('\n', stderr); 184 {
185 noninteractive_need_newline = 0; 185 if (noninteractive_need_newline)
186 fprintf (stderr, m, a1, a2, a3); 186 putc ('\n', stderr);
187 fprintf (stderr, "\n"); 187 noninteractive_need_newline = 0;
188 fflush (stderr); 188 fprintf (stderr, m, a1, a2, a3);
189 fprintf (stderr, "\n");
190 fflush (stderr);
191 }
189 } 192 }
190 /* A null message buffer means that the frame hasn't really been 193 /* A null message buffer means that the frame hasn't really been
191 initialized yet. Error messages get reported properly by 194 initialized yet. Error messages get reported properly by
@@ -202,22 +205,27 @@ message (m, a1, a2, a3)
202 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (minibuf_window))); 205 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (minibuf_window)));
203#endif 206#endif
204 207
205 { 208 if (m)
209 {
210 {
206#ifdef NO_ARG_ARRAY 211#ifdef NO_ARG_ARRAY
207 int a[3]; 212 int a[3];
208 a[0] = a1; 213 a[0] = a1;
209 a[1] = a2; 214 a[1] = a2;
210 a[2] = a3; 215 a[2] = a3;
211 216
212 doprnt (FRAME_MESSAGE_BUF (selected_frame), 217 doprnt (FRAME_MESSAGE_BUF (selected_frame),
213 FRAME_WIDTH (selected_frame), m, 0, 3, a); 218 FRAME_WIDTH (selected_frame), m, 0, 3, a);
214#else 219#else
215 doprnt (FRAME_MESSAGE_BUF (selected_frame), 220 doprnt (FRAME_MESSAGE_BUF (selected_frame),
216 FRAME_WIDTH (selected_frame), m, 0, 3, &a1); 221 FRAME_WIDTH (selected_frame), m, 0, 3, &a1);
217#endif /* NO_ARG_ARRAY */ 222#endif /* NO_ARG_ARRAY */
218 } 223 }
219 224
220 echo_area_glyphs = FRAME_MESSAGE_BUF (selected_frame); 225 echo_area_glyphs = FRAME_MESSAGE_BUF (selected_frame);
226 }
227 else
228 echo_area_glyphs = previous_echo_glyphs = 0;
221 229
222 /* Print should start at the beginning of the message 230 /* Print should start at the beginning of the message
223 buffer next time. */ 231 buffer next time. */