From: Eli Zaretskii Date: Sun, 24 Aug 2008 20:12:41 +0000 (+0000) Subject: (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count, X-Git-Tag: emacs-pretest-23.0.90~3295 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1266f9ef8e922c210f0058f2480955698a7b19bf;p=emacs.git (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count, and scroll bars on MS-DOS as well. Set the top frame to newly created frame. (Fmake_terminal_frame): Reuse the_only_display_info. --- diff --git a/src/ChangeLog b/src/ChangeLog index 89921e7b395..dbfc3f799c2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2008-08-24 Eli Zaretskii + * frame.c (make_terminal_frame): Initialize f->terminal, + f->terminal->reference_count, and scroll bars on MS-DOS as well. + Set the top frame to newly created frame. + (Fmake_terminal_frame): Reuse the_only_display_info. + * vm-limit.c (get_lim_data) [MSDOS]: Use alternative methods of estimating available memory. diff --git a/src/frame.c b/src/frame.c index 8d67f20ae48..496b08fae29 100644 --- a/src/frame.c +++ b/src/frame.c @@ -585,6 +585,8 @@ make_terminal_frame (struct terminal *terminal) f->visible = 1; /* FRAME_SET_VISIBLE wd set frame_garbaged. */ f->async_visible = 1; /* Don't let visible be cleared later. */ + f->terminal = terminal; + f->terminal->reference_count++; #ifdef MSDOS f->output_data.tty->display_info = &the_only_display_info; if (!inhibit_window_system @@ -614,22 +616,10 @@ make_terminal_frame (struct terminal *terminal) #else { f->output_method = output_termcap; - f->terminal = terminal; - f->terminal->reference_count++; create_tty_output (f); FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR; FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR; - - FRAME_CAN_HAVE_SCROLL_BARS (f) = 0; - FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none; - - /* Set the top frame to the newly created frame. */ - if (FRAMEP (FRAME_TTY (f)->top_frame) - && FRAME_LIVE_P (XFRAME (FRAME_TTY (f)->top_frame))) - XFRAME (FRAME_TTY (f)->top_frame)->async_visible = 2; /* obscured */ - - FRAME_TTY (f)->top_frame = frame; } #ifdef CANNOT_DUMP @@ -638,6 +628,16 @@ make_terminal_frame (struct terminal *terminal) #endif #endif /* MSDOS */ + FRAME_CAN_HAVE_SCROLL_BARS (f) = 0; + FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none; + + /* Set the top frame to the newly created frame. */ + if (FRAMEP (FRAME_TTY (f)->top_frame) + && FRAME_LIVE_P (XFRAME (FRAME_TTY (f)->top_frame))) + XFRAME (FRAME_TTY (f)->top_frame)->async_visible = 2; /* obscured */ + + FRAME_TTY (f)->top_frame = frame; + if (!noninteractive) init_frame_faces (f); @@ -717,14 +717,17 @@ affects all frames on the same terminal device. */) terminal = XCDR (terminal); t = get_terminal (terminal, 1); } +#ifdef MSDOS + if (t && t != the_only_display_info.terminal) + /* msdos.c assumes a single tty_display_info object. */ + error ("Multiple terminals are not supported on this platform"); + if (!t) + t = the_only_display_info.terminal; +#endif } 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; @@ -751,7 +754,6 @@ affects all frames on the same terminal device. */) } t = init_tty (name, type, 0); /* Errors are not fatal. */ -#endif /* !MSDOS */ } f = make_terminal_frame (t);