From: res Date: Wed, 5 Dec 2007 23:21:08 +0000 (+0000) Subject: Changed Win32 code to also support compilation of the executable for the console... X-Git-Tag: xonotic-v0.1.0preview~2725 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=1b01f591c98ea0ca73cb38a3803d7db69ffddb14;p=xonotic%2Fdarkplaces.git Changed Win32 code to also support compilation of the executable for the console subsystem. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7764 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/sys_win.c b/sys_win.c index 6a336625..0da7f236 100644 --- a/sys_win.c +++ b/sys_win.c @@ -106,7 +106,8 @@ void Sys_PrintToTerminal(const char *text) { DWORD dummy; extern HANDLE houtput; - if (cls.state == ca_dedicated) + + if ((houtput != 0) && (houtput != INVALID_HANDLE_VALUE)) WriteFile(houtput, text, (DWORD) strlen(text), &dummy, NULL); } @@ -307,15 +308,21 @@ void Sys_InitConsole (void) if (!tevent) Sys_Error ("Couldn't create event"); + houtput = GetStdHandle (STD_OUTPUT_HANDLE); + if ((houtput == 0) || (houtput == INVALID_HANDLE_VALUE)) + { + AllocConsole (); + houtput = GetStdHandle (STD_OUTPUT_HANDLE); + } + hinput = GetStdHandle (STD_INPUT_HANDLE); + // LordHavoc: can't check cls.state because it hasn't been initialized yet // if (cls.state == ca_dedicated) if (COM_CheckParm("-dedicated")) { - if (!AllocConsole ()) + if ((houtput == 0) || (houtput == INVALID_HANDLE_VALUE)) Sys_Error ("Couldn't create dedicated server console"); - hinput = GetStdHandle (STD_INPUT_HANDLE); - houtput = GetStdHandle (STD_OUTPUT_HANDLE); #ifdef _WIN64 #define atoi _atoi64 @@ -428,3 +435,23 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin /* return success of application */ return true; } + +int main (int argc, const char* argv[]) +{ + MEMORYSTATUS lpBuffer; + + global_hInstance = GetModuleHandle (0); + + lpBuffer.dwLength = sizeof(MEMORYSTATUS); + GlobalMemoryStatus (&lpBuffer); + + program_name[sizeof(program_name)-1] = 0; + GetModuleFileNameA(NULL, program_name, sizeof(program_name) - 1); + + com_argc = argc; + com_argv = argv; + + Host_Main(); + + return true; +}