changeset 26447:2360d692254c

(ensure_echo_area_buffers): New. (with_echo_area_buffer): Use it. (setup_echo_area_for_printing): Ditto.
author Gerd Moellmann <gerd@gnu.org>
date Sun, 14 Nov 1999 16:36:29 +0000
parents 381ec3cf8fe2
children a72b6b4a97bf
files src/xdisp.c
diffstat 1 files changed, 23 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Sun Nov 14 12:51:38 1999 +0000
+++ b/src/xdisp.c	Sun Nov 14 16:36:29 1999 +0000
@@ -582,6 +582,7 @@
 
 /* Function prototypes.  */
 
+static void ensure_echo_area_buffers P_ ((void));
 static struct glyph_row *row_containing_pos P_ ((struct window *, int,
 						 struct glyph_row *,
 						 struct glyph_row *));
@@ -5162,6 +5163,25 @@
 }
 
 
+/* Make sure echo area buffers in echo_buffers[] are life.  If they
+   aren't, make new ones.  */
+
+static void
+ensure_echo_area_buffers ()
+{
+  int i;
+
+  for (i = 0; i < 2; ++i)
+    if (!BUFFERP (echo_buffer[i])
+	|| NILP (XBUFFER (echo_buffer[i])->name))
+      {
+	char name[30];
+	sprintf (name, " *Echo Area %d*", i);
+	echo_buffer[i] = Fget_buffer_create (build_string (name));
+      }
+}
+
+
 /* Call FN with args A1..A5 with either the current or last displayed
    echo_area_buffer as current buffer.
 
@@ -5190,14 +5210,7 @@
   int count = specpdl_ptr - specpdl;
 
   /* If buffers aren't life, make new ones.  */
-  for (i = 0; i < 2; ++i)
-    if (!BUFFERP (echo_buffer[i])
-	|| NILP (XBUFFER (echo_buffer[i])->name))
-      {
-	char name[30];
-	sprintf (name, " *Echo Area %d*", i);
-	echo_buffer[i] = Fget_buffer_create (build_string (name));
-      }
+  ensure_echo_area_buffers ();
 
   clear_buffer_p = 0;
   
@@ -5349,6 +5362,8 @@
 setup_echo_area_for_printing (multibyte_p)
      int multibyte_p;
 {
+  ensure_echo_area_buffers ();
+
   if (!message_buf_print)
     {
       /* A message has been output since the last time we printed.