Commit 70ec3928 authored by Eli Zaretskii's avatar Eli Zaretskii

Fix the MSDOS build when running under CWSDPMI

* src/msdos.c (the_only_tty_output): Define.
* src/msdos.h (the_only_tty_output): Declare.
* src/frame.c (make_terminal_frame) [MSDOS]:
* src/dispnew.c (init_display) [MSDOS]: Set up
f->output_data.tty pointer using the_only_tty_output, before
dereferencing the pointer.  This prevents crashes with DPMI
servers that provide NULL pointer protection.
parent 7a608fc6
Pipeline #1303 passed with stage
in 27 minutes and 5 seconds
......@@ -6117,6 +6117,7 @@ init_display (void)
t->reference_count++;
#ifdef MSDOS
f->output_data.tty = &the_only_tty_output;
f->output_data.tty->display_info = &the_only_display_info;
#else
if (f->output_method == output_termcap)
......
......@@ -1117,6 +1117,7 @@ make_terminal_frame (struct terminal *terminal)
f->terminal = terminal;
f->terminal->reference_count++;
#ifdef MSDOS
f->output_data.tty = &the_only_tty_output;
f->output_data.tty->display_info = &the_only_display_info;
if (!inhibit_window_system
&& (!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame))
......
......@@ -420,6 +420,9 @@ static unsigned short outside_cursor;
/* The only display since MS-DOS does not support multiple ones. */
struct tty_display_info the_only_display_info;
/* The only tty_output, since MS-DOS supports only 1 display. */
struct tty_output the_only_tty_output;
/* Support for DOS/V (allows Japanese characters to be displayed on
standard, non-Japanese, ATs). Only supported for DJGPP v2 and later. */
......
......@@ -93,6 +93,7 @@ typedef int XRectangle;
typedef struct tty_display_info Display_Info;
extern struct tty_display_info the_only_display_info;
extern struct tty_output the_only_tty_output;
#define FRAME_X_DISPLAY(f) ((Display *) 0)
#define FRAME_FONT(f) ((f)->output_data.tty->font)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment