Signed-off-by: Torge Matthies openglfreak@googlemail.com --- programs/conhost/conhost.c | 9 +++++++-- programs/conhost/conhost.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/programs/conhost/conhost.c b/programs/conhost/conhost.c index d494e3f53a5..9b47f87cb4c 100644 --- a/programs/conhost/conhost.c +++ b/programs/conhost/conhost.c @@ -2650,7 +2650,7 @@ static NTSTATUS console_input_ioctl( struct console *console, unsigned int code, TRACE( "get window\n" ); if (in_size || *out_size != sizeof(*result)) return STATUS_INVALID_PARAMETER; if (!(result = alloc_ioctl_buffer( sizeof(*result )))) return STATUS_NO_MEMORY; - if (!console->win) init_message_window( console ); + if (!console->win && !console->no_window) init_message_window( console ); *result = condrv_handle( console->win ); return STATUS_SUCCESS; } @@ -2897,6 +2897,11 @@ int __cdecl wmain(int argc, WCHAR *argv[]) if ((!height && !console.is_unix) || height > 0xffff || *end) return 1; continue; } + if (!wcscmp( argv[i], L"--no-window")) + { + console.no_window = 1; + continue; + } if (!wcscmp( argv[i], L"--signal" )) { if (++i == argc) return 1; @@ -2932,7 +2937,7 @@ int __cdecl wmain(int argc, WCHAR *argv[]) init_tty_output( &console ); if (!console.is_unix && !ensure_tty_input_thread( &console )) return 1; } - else + else if (!console.no_window) { STARTUPINFOW si; if (!init_window( &console )) return 1; diff --git a/programs/conhost/conhost.h b/programs/conhost/conhost.h index 8ca09bb80d0..252c01de501 100644 --- a/programs/conhost/conhost.h +++ b/programs/conhost/conhost.h @@ -79,6 +79,7 @@ struct console struct screen_buffer *active; /* active screen buffer */ int is_unix; /* UNIX terminal mode */ int use_relative_cursor; /* use relative cursor positionning */ + int no_window; /* do now allocate a window */ INPUT_RECORD *records; /* input records */ unsigned int record_count; /* number of input records */ unsigned int record_size; /* size of input records buffer */