changeset 97659:6358f03eb003

(make_terminal_frame) [MSDOS]: Adjust initialization of f->output_data.tty. (Fmake_terminal_frame) [MSDOS]: Don't allow creation of new terminal devices.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 23 Aug 2008 16:56:59 +0000
parents 53d01aafa957
children cf2cf606d5d7
files src/frame.c
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/frame.c	Sat Aug 23 16:55:52 2008 +0000
+++ b/src/frame.c	Sat Aug 23 16:56:59 2008 +0000
@@ -586,19 +586,20 @@
   f->visible = 1;		/* FRAME_SET_VISIBLE wd set frame_garbaged. */
   f->async_visible = 1;		/* Don't let visible be cleared later. */
 #ifdef MSDOS
-  f->output_data.x = &the_only_x_display;
+  f->output_data.tty->display_info = &the_only_display_info;
   if (!inhibit_window_system
       && (!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame))
 	  || XFRAME (selected_frame)->output_method == output_msdos_raw))
     {
       f->output_method = output_msdos_raw;
+#if 0
       /* This initialization of foreground and background pixels is
 	 only important for the initial frame created in temacs.  If
 	 we don't do that, we get black background and foreground in
-	 the dumped Emacs because the_only_x_display is a static
+	 the dumped Emacs because the_only_display_info is a static
 	 variable, hence it is born all-zeroes, and zero is the code
 	 for the black color.  Other frames all inherit their pixels
-	 from what's already in the_only_x_display.  */
+	 from what's already in the_only_display_info.  */
       if ((!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame)))
 	  && FRAME_BACKGROUND_PIXEL (f) == 0
 	  && FRAME_FOREGROUND_PIXEL (f) == 0)
@@ -606,6 +607,7 @@
 	  FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
 	  FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
 	}
+#endif
     }
   else
     f->output_method = output_termcap;
@@ -719,6 +721,10 @@
 
   if (!t)
     {
+#ifdef MSDOS
+      /* msdos.c assumes a single tty_display_info object.  */
+      error ("Multiple terminals are not supported on this platform");
+#else  /* !MSDOS */
       char *name = 0, *type = 0;
       Lisp_Object tty, tty_type;
 
@@ -745,6 +751,7 @@
         }
 
       t = init_tty (name, type, 0); /* Errors are not fatal. */
+#endif /* !MSDOS */
     }
 
   f = make_terminal_frame (t);