From d7570ee9e7781d7bdbfde7dcdc894544c6da3350 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 4 May 2009 00:46:33 +0000 Subject: [PATCH] fix mred-text for Windows (startup banner) svn: r14702 --- src/mred/mred.cxx | 51 +++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/mred/mred.cxx b/src/mred/mred.cxx index b975326b7b..8c50f739fa 100644 --- a/src/mred/mred.cxx +++ b/src/mred/mred.cxx @@ -2276,32 +2276,35 @@ static void MrEdSchemeMessages(char *msg, ...) if (!console_out) { AllocConsole(); console_out = GetStdHandle(STD_OUTPUT_HANDLE); - console_in = GetStdHandle(STD_INPUT_HANDLE); - has_stdio = 1; - waiting_sema = CreateSemaphore(NULL, 0, 1, NULL); - SetConsoleCtrlHandler(ConsoleHandler, TRUE); + + if (!wx_in_terminal) { + console_in = GetStdHandle(STD_INPUT_HANDLE); + has_stdio = 1; + waiting_sema = CreateSemaphore(NULL, 0, 1, NULL); + SetConsoleCtrlHandler(ConsoleHandler, TRUE); + + wxREGGLOB(console_inport); + console_inport = scheme_make_fd_input_port((int)console_in, scheme_intern_symbol("stdin"), 0, 0); + + { + HMODULE hm; + gcw_proc gcw; + + hm = LoadLibrary("kernel32.dll"); + if (hm) + gcw = (gcw_proc)GetProcAddress(hm, "GetConsoleWindow"); + else + gcw = NULL; - wxREGGLOB(console_inport); - console_inport = scheme_make_fd_input_port((int)console_in, scheme_intern_symbol("stdin"), 0, 0); + if (gcw) + console_hwnd = gcw(); + } - { - HMODULE hm; - gcw_proc gcw; - - hm = LoadLibrary("kernel32.dll"); - if (hm) - gcw = (gcw_proc)GetProcAddress(hm, "GetConsoleWindow"); - else - gcw = NULL; - - if (gcw) - console_hwnd = gcw(); - } - - if (console_hwnd) { - EnableMenuItem(GetSystemMenu(console_hwnd, FALSE), SC_CLOSE, - MF_BYCOMMAND | MF_GRAYED); - RemoveMenu(GetSystemMenu(console_hwnd, FALSE), SC_CLOSE, MF_BYCOMMAND); + if (console_hwnd) { + EnableMenuItem(GetSystemMenu(console_hwnd, FALSE), SC_CLOSE, + MF_BYCOMMAND | MF_GRAYED); + RemoveMenu(GetSystemMenu(console_hwnd, FALSE), SC_CLOSE, MF_BYCOMMAND); + } } } #endif