diff src/editfns.c @ 38059:0b34b024286d

(Fmessage_box): If the frame is not under a window system, output the message in the echo area.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 15 Jun 2001 11:29:42 +0000
parents 0b5642b0d6e4
children 200c049178cc
line wrap: on
line diff
--- a/src/editfns.c	Fri Jun 15 10:51:45 2001 +0000
+++ b/src/editfns.c	Fri Jun 15 11:29:42 2001 +0000
@@ -38,6 +38,7 @@
 #include "buffer.h"
 #include "charset.h"
 #include "coding.h"
+#include "frame.h"
 #include "window.h"
 
 #include "systime.h"
@@ -2915,16 +2916,12 @@
   return unbind_to (count, val);
 }
 
-#ifndef HAVE_MENUS
-
-/* Buffer for the most recent text displayed by Fmessage.  */
+/* Buffer for the most recent text displayed by Fmessage_box.  */
 static char *message_text;
 
 /* Allocated length of that buffer.  */
 static int message_length;
 
-#endif /* not HAVE_MENUS */
-
 DEFUN ("message", Fmessage, Smessage, 1, MANY, 0,
   "Print a one-line message at the bottom of the screen.\n\
 The first argument is a format control string, and the rest are data\n\
@@ -2972,6 +2969,10 @@
       register Lisp_Object val;
       val = Fformat (nargs, args);
 #ifdef HAVE_MENUS
+      /* The MS-DOS frames support popup menus even though they are
+	 not FRAME_WINDOW_P.  */
+      if (FRAME_WINDOW_P (XFRAME (selected_frame))
+	  || FRAME_MSDOS_P (XFRAME (selected_frame)))
       {
 	Lisp_Object pane, menu, obj;
 	struct gcpro gcpro1;
@@ -2982,7 +2983,7 @@
 	UNGCPRO;
 	return val;
       }
-#else /* not HAVE_MENUS */
+#endif /* HAVE_MENUS */
       /* Copy the data so that it won't move when we GC.  */
       if (! message_text)
 	{
@@ -2998,7 +2999,6 @@
       message2 (message_text, STRING_BYTES (XSTRING (val)),
 		STRING_MULTIBYTE (val));
       return val;
-#endif /* not HAVE_MENUS */
     }
 }
 #ifdef HAVE_MENUS