Mercurial > emacs
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);