From a1e94b67d5c10c102b4fe1361e2445f1bceecf47 Mon Sep 17 00:00:00 2001 From: darkvater Date: Sun, 16 Jan 2005 18:19:33 +0000 Subject: (svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness -Fix: [1103113] font size changing. Dedicated server did not have code filtering, 'tab' could result in bigger fonts -Fix: [1103069] console backspace key with ded server; fixed due to normal console handling -Fix: [1101963] console in dedicated server; see above -Fix: dedicated server also writes to log file if active --- console.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) (limited to 'console.c') diff --git a/console.c b/console.c index 223a6f641..224e20fb3 100644 --- a/console.c +++ b/console.c @@ -192,9 +192,8 @@ static void IConsoleWndProc(Window* w, WindowEvent* e) IConsolePrintF(_iconsole_color_commands, "] %s", _iconsole_cmdline); _iconsole_cmdbufferpos = 19; IConsoleCmdBufferAdd(_iconsole_cmdline); - if (strlen(_iconsole_cmdline) != 0) // only execute if there is something typed obviously - IConsoleCmdExec(_iconsole_cmdline); + IConsoleCmdExec(_iconsole_cmdline); IConsoleClearCommand(); break; case WKC_CTRL | WKC_RETURN: @@ -271,11 +270,31 @@ void IConsoleClear(void) free(_iconsole_buffer[i]); } +static void IConsoleWriteToLogFile(const char* string) +{ + if (_iconsole_output_file != NULL) { + // if there is an console output file ... also print it there + fwrite(string, strlen(string), 1, _iconsole_output_file); + fwrite("\n", 1, 1, _iconsole_output_file); + } +} + +bool CloseConsoleLogIfActive(void) +{ + if (_iconsole_output_file != NULL) { + IConsolePrintF(_iconsole_color_default, "file output complete"); + fclose(_iconsole_output_file); + return true; + } + + return false; +} + void IConsoleFree(void) { _iconsole_inited = false; IConsoleClear(); - if (_iconsole_output_file != NULL) fclose(_iconsole_output_file); + CloseConsoleLogIfActive(); } void IConsoleResize(void) @@ -382,6 +401,7 @@ void IConsolePrint(uint16 color_code, const char* string) if (_network_dedicated) { printf("%s\n", string); + IConsoleWriteToLogFile(string); return; } @@ -403,11 +423,7 @@ void IConsolePrint(uint16 color_code, const char* string) } free(_ex); - if (_iconsole_output_file != NULL) { - // if there is an console output file ... also print it there - fwrite(string, strlen(string), 1, _iconsole_output_file); - fwrite("\n", 1, 1, _iconsole_output_file); - } + IConsoleWriteToLogFile(string); if (_iconsole_win != NULL) SetWindowDirty(_iconsole_win); } @@ -1072,6 +1088,9 @@ void IConsoleCmdExec(const char* cmdstr) uint c; uint i; uint l; + + if (strlen(cmdstr) == 0) // only execute if there is something typed obviously + return; if (_stdlib_con_developer) IConsolePrintF(_iconsole_color_debug, "CONDEBUG: execution_cmdline: %s", cmdstr); -- cgit v1.2.3-54-g00ecf