From: Cloudwalk Date: Fri, 30 Jul 2021 16:46:03 +0000 (-0400) Subject: sys_win: Delete sys_win and conproc. We no longer use these. X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=0dfd3a30839fefb7c1d817618354350f4efd1131;p=xonotic%2Fdarkplaces.git sys_win: Delete sys_win and conproc. We no longer use these. --- diff --git a/conproc.c b/conproc.c deleted file mode 100644 index ccbb849c..00000000 --- a/conproc.c +++ /dev/null @@ -1,365 +0,0 @@ -/* -Copyright (C) 1996-1997 Id Software, Inc. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ -// conproc.c - -#include "quakedef.h" - -#include -#include -#include "conproc.h" - -HANDLE heventDone; -HANDLE hfileBuffer; -HANDLE heventChildSend; -HANDLE heventParentSend; -HANDLE hStdout; -HANDLE hStdin; - -DWORD RequestProc (DWORD dwNichts); -LPVOID GetMappedBuffer (HANDLE hfileBuffer); -void ReleaseMappedBuffer (LPVOID pBuffer); -BOOL GetScreenBufferLines (int *piLines); -BOOL SetScreenBufferLines (int iLines); -BOOL ReadText (LPTSTR pszText, int iBeginLine, int iEndLine); -BOOL WriteText (LPCTSTR szText); -int CharToCode (int c); -BOOL SetConsoleCXCY(HANDLE hStdout, int cx, int cy); - - -void InitConProc (HANDLE hFile, HANDLE heventParent, HANDLE heventChild) -{ - DWORD dwID; - -// ignore if we don't have all the events. - if (!hFile || !heventParent || !heventChild) - return; - - hfileBuffer = hFile; - heventParentSend = heventParent; - heventChildSend = heventChild; - -// so we'll know when to go away. - heventDone = CreateEvent (NULL, false, false, NULL); - - if (!heventDone) - { - Con_Print("Couldn't create heventDone\n"); - return; - } - - if (!CreateThread (NULL, - 0, - (LPTHREAD_START_ROUTINE) RequestProc, - 0, - 0, - &dwID)) - { - CloseHandle (heventDone); - Con_Print("Couldn't create QHOST thread\n"); - return; - } - -// save off the input/output handles. - hStdout = GetStdHandle (STD_OUTPUT_HANDLE); - hStdin = GetStdHandle (STD_INPUT_HANDLE); - -// force 80 character width, at least 25 character height - SetConsoleCXCY (hStdout, 80, 25); -} - - -void DeinitConProc (void) -{ - if (heventDone) - SetEvent (heventDone); -} - - -DWORD RequestProc (DWORD dwNichts) -{ - int *pBuffer; - DWORD dwRet; - HANDLE heventWait[2]; - int iBeginLine, iEndLine; - - heventWait[0] = heventParentSend; - heventWait[1] = heventDone; - - while (1) - { - dwRet = WaitForMultipleObjects (2, heventWait, false, INFINITE); - - // heventDone fired, so we're exiting. - if (dwRet == WAIT_OBJECT_0 + 1) - break; - - pBuffer = (int *) GetMappedBuffer (hfileBuffer); - - // hfileBuffer is invalid. Just leave. - if (!pBuffer) - { - Con_Print("Invalid hfileBuffer\n"); - break; - } - - switch (pBuffer[0]) - { - case CCOM_WRITE_TEXT: - // Param1 : Text - pBuffer[0] = WriteText ((LPCTSTR) (pBuffer + 1)); - break; - - case CCOM_GET_TEXT: - // Param1 : Begin line - // Param2 : End line - iBeginLine = pBuffer[1]; - iEndLine = pBuffer[2]; - pBuffer[0] = ReadText ((LPTSTR) (pBuffer + 1), iBeginLine, - iEndLine); - break; - - case CCOM_GET_SCR_LINES: - // No params - pBuffer[0] = GetScreenBufferLines (&pBuffer[1]); - break; - - case CCOM_SET_SCR_LINES: - // Param1 : Number of lines - pBuffer[0] = SetScreenBufferLines (pBuffer[1]); - break; - } - - ReleaseMappedBuffer (pBuffer); - SetEvent (heventChildSend); - } - - return 0; -} - - -LPVOID GetMappedBuffer (HANDLE hfileBuffer) -{ - LPVOID pBuffer; - - pBuffer = MapViewOfFile (hfileBuffer, - FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0); - - return pBuffer; -} - - -void ReleaseMappedBuffer (LPVOID pBuffer) -{ - UnmapViewOfFile (pBuffer); -} - - -BOOL GetScreenBufferLines (int *piLines) -{ - CONSOLE_SCREEN_BUFFER_INFO info; - BOOL bRet; - - bRet = GetConsoleScreenBufferInfo (hStdout, &info); - - if (bRet) - *piLines = info.dwSize.Y; - - return bRet; -} - - -BOOL SetScreenBufferLines (int iLines) -{ - - return SetConsoleCXCY (hStdout, 80, iLines); -} - - -BOOL ReadText (LPTSTR pszText, int iBeginLine, int iEndLine) -{ - COORD coord; - DWORD dwRead; - BOOL bRet; - - coord.X = 0; - coord.Y = iBeginLine; - - bRet = ReadConsoleOutputCharacter( - hStdout, - pszText, - 80 * (iEndLine - iBeginLine + 1), - coord, - &dwRead); - - // Make sure it's null terminated. - if (bRet) - pszText[dwRead] = '\0'; - - return bRet; -} - - -BOOL WriteText (LPCTSTR szText) -{ - DWORD dwWritten; - INPUT_RECORD rec; - char upper, *sz; - - sz = (LPTSTR) szText; - - while (*sz) - { - // 13 is the code for a carriage return (\n) instead of 10. - if (*sz == 10) - *sz = 13; - - upper = toupper(*sz); - - rec.EventType = KEY_EVENT; - rec.Event.KeyEvent.bKeyDown = true; - rec.Event.KeyEvent.wRepeatCount = 1; - rec.Event.KeyEvent.wVirtualKeyCode = upper; - rec.Event.KeyEvent.wVirtualScanCode = CharToCode (*sz); - rec.Event.KeyEvent.uChar.AsciiChar = *sz; - rec.Event.KeyEvent.uChar.UnicodeChar = *sz; - rec.Event.KeyEvent.dwControlKeyState = isupper(*sz) ? 0x80 : 0x0; - - WriteConsoleInput( - hStdin, - &rec, - 1, - &dwWritten); - - rec.Event.KeyEvent.bKeyDown = false; - - WriteConsoleInput( - hStdin, - &rec, - 1, - &dwWritten); - - sz++; - } - - return true; -} - - -int CharToCode (int c) -{ - char upper; - - upper = toupper(c); - - switch (c) - { - case 13: - return 28; - - default: - break; - } - - if (isalpha(c)) - return (30 + upper - 65); - - if (isdigit(c)) - return (1 + upper - 47); - - return c; -} - - -BOOL SetConsoleCXCY(HANDLE hStdout, int cx, int cy) -{ - CONSOLE_SCREEN_BUFFER_INFO info; - COORD coordMax; - - coordMax = GetLargestConsoleWindowSize(hStdout); - - if (cy > coordMax.Y) - cy = coordMax.Y; - - if (cx > coordMax.X) - cx = coordMax.X; - - if (!GetConsoleScreenBufferInfo(hStdout, &info)) - return false; - -// height - info.srWindow.Left = 0; - info.srWindow.Right = info.dwSize.X - 1; - info.srWindow.Top = 0; - info.srWindow.Bottom = cy - 1; - - if (cy < info.dwSize.Y) - { - if (!SetConsoleWindowInfo(hStdout, true, &info.srWindow)) - return false; - - info.dwSize.Y = cy; - - if (!SetConsoleScreenBufferSize(hStdout, info.dwSize)) - return false; - } - else if (cy > info.dwSize.Y) - { - info.dwSize.Y = cy; - - if (!SetConsoleScreenBufferSize(hStdout, info.dwSize)) - return false; - - if (!SetConsoleWindowInfo(hStdout, true, &info.srWindow)) - return false; - } - - if (!GetConsoleScreenBufferInfo(hStdout, &info)) - return false; - -// width - info.srWindow.Left = 0; - info.srWindow.Right = cx - 1; - info.srWindow.Top = 0; - info.srWindow.Bottom = info.dwSize.Y - 1; - - if (cx < info.dwSize.X) - { - if (!SetConsoleWindowInfo(hStdout, true, &info.srWindow)) - return false; - - info.dwSize.X = cx; - - if (!SetConsoleScreenBufferSize(hStdout, info.dwSize)) - return false; - } - else if (cx > info.dwSize.X) - { - info.dwSize.X = cx; - - if (!SetConsoleScreenBufferSize(hStdout, info.dwSize)) - return false; - - if (!SetConsoleWindowInfo(hStdout, true, &info.srWindow)) - return false; - } - - return true; -} - diff --git a/conproc.h b/conproc.h deleted file mode 100644 index 8fe112a1..00000000 --- a/conproc.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright (C) 1996-1997 Id Software, Inc. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ -// conproc.h - -#ifndef CONPROC_H -#define CONPROC_H - -#define CCOM_WRITE_TEXT 0x2 -// Param1 : Text - -#define CCOM_GET_TEXT 0x3 -// Param1 : Begin line -// Param2 : End line - -#define CCOM_GET_SCR_LINES 0x4 -// No params - -#define CCOM_SET_SCR_LINES 0x5 -// Param1 : Number of lines - -void InitConProc (HANDLE hFile, HANDLE heventParent, HANDLE heventChild); -void DeinitConProc (void); - -#endif - diff --git a/console.c b/console.c index b0afdd4c..034cac0c 100644 --- a/console.c +++ b/console.c @@ -931,9 +931,7 @@ void Con_Init (void) Cmd_AddCommand(CF_SHARED, "condump", Con_ConDump_f, "output console history to a file (see also log_file)"); con_initialized = true; - // initialize console window (only used by sys_win.c) - Sys_InitConsole(); - + Con_Print("Console initialized.\n"); } diff --git a/sys.h b/sys.h index d9a9d335..eb99088f 100644 --- a/sys.h +++ b/sys.h @@ -192,8 +192,6 @@ void* Sys_GetProcAddress (dllhandle_t handle, const char* name); int Sys_CheckParm (const char *parm); -/// called early in Host_Init -void Sys_InitConsole (void); /// called after command system is initialized but before first Con_Print void Sys_Init_Commands (void); diff --git a/sys_sdl.c b/sys_sdl.c index 4a144414..1bf22cd0 100644 --- a/sys_sdl.c +++ b/sys_sdl.c @@ -179,10 +179,6 @@ char *Sys_GetClipboardData (void) return data; } -void Sys_InitConsole (void) -{ -} - int main (int argc, char *argv[]) { signal(SIGFPE, SIG_IGN); diff --git a/sys_unix.c b/sys_unix.c index ff332a68..2ff100da 100644 --- a/sys_unix.c +++ b/sys_unix.c @@ -138,10 +138,6 @@ char *Sys_GetClipboardData (void) return NULL; } -void Sys_InitConsole (void) -{ -} - int main (int argc, char **argv) { signal(SIGFPE, SIG_IGN); diff --git a/sys_win.c b/sys_win.c deleted file mode 100644 index 237670fc..00000000 --- a/sys_win.c +++ /dev/null @@ -1,398 +0,0 @@ -/* -Copyright (C) 1996-1997 Id Software, Inc. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ -// sys_win.c -- Win32 system interface code - -#include -#include -#include -#ifdef SUPPORTDIRECTX -#include -#endif - -#include "qtypes.h" - -#include "quakedef.h" -#include -#include "resource.h" -#include "conproc.h" - -HANDLE hinput, houtput; - -#ifdef QHOST -static HANDLE tevent; -static HANDLE hFile; -static HANDLE heventParent; -static HANDLE heventChild; -#endif - -sys_t sys; - -/* -=============================================================================== - -SYSTEM IO - -=============================================================================== -*/ - -void Sys_Error (const char *error, ...) -{ - va_list argptr; - char text[MAX_INPUTLINE]; - static int in_sys_error0 = 0; - static int in_sys_error1 = 0; - static int in_sys_error2 = 0; - static int in_sys_error3 = 0; - - va_start (argptr, error); - dpvsnprintf (text, sizeof (text), error, argptr); - va_end (argptr); - - Con_Printf(CON_ERROR "Engine Error: %s\n", text); - - // close video so the message box is visible, unless we already tried that - if (!in_sys_error0 && cls.state != ca_dedicated) - { - in_sys_error0 = 1; - VID_Shutdown(); - } - - if (!in_sys_error3 && cls.state != ca_dedicated) - { - in_sys_error3 = true; - MessageBox(NULL, text, "Engine Error", MB_OK | MB_SETFOREGROUND | MB_ICONSTOP); - } - - if (!in_sys_error1) - { - in_sys_error1 = 1; - //Host_Shutdown (); - } - -// shut down QHOST hooks if necessary - if (!in_sys_error2) - { - in_sys_error2 = 1; - Sys_Shutdown (); - } - - exit (1); -} - -void Sys_Shutdown (void) -{ -#ifdef QHOST - if (tevent) - CloseHandle (tevent); -#endif - - if (cls.state == ca_dedicated) - FreeConsole (); - -#ifdef QHOST -// shut down QHOST hooks if necessary - DeinitConProc (); -#endif -} - -void Sys_Print(const char *text) -{ - DWORD dummy; - extern HANDLE houtput; - - if ((houtput != 0) && (houtput != INVALID_HANDLE_VALUE)) - WriteFile(houtput, text, (DWORD) strlen(text), &dummy, NULL); -} - -char *Sys_ConsoleInput (void) -{ - static char text[MAX_INPUTLINE]; - static int len; - INPUT_RECORD recs[1024]; - int ch; - DWORD numread, numevents, dummy; - - if (cls.state != ca_dedicated) - return NULL; - - for ( ;; ) - { - if (!GetNumberOfConsoleInputEvents (hinput, &numevents)) - Sys_Error ("Error getting # of console events (error code %x)", (unsigned int)GetLastError()); - - if (numevents <= 0) - break; - - if (!ReadConsoleInput(hinput, recs, 1, &numread)) - Sys_Error ("Error reading console input (error code %x)", (unsigned int)GetLastError()); - - if (numread != 1) - Sys_Error ("Couldn't read console input (error code %x)", (unsigned int)GetLastError()); - - if (recs[0].EventType == KEY_EVENT) - { - if (!recs[0].Event.KeyEvent.bKeyDown) - { - ch = recs[0].Event.KeyEvent.uChar.AsciiChar; - - switch (ch) - { - case '\r': - WriteFile(houtput, "\r\n", 2, &dummy, NULL); - - if (len) - { - text[len] = 0; - len = 0; - return text; - } - - break; - - case '\b': - WriteFile(houtput, "\b \b", 3, &dummy, NULL); - if (len) - { - len--; - } - break; - - default: - if (ch >= (int) (unsigned char) ' ') - { - WriteFile(houtput, &ch, 1, &dummy, NULL); - text[len] = ch; - len = (len + 1) & 0xff; - } - - break; - - } - } - } - } - - return NULL; -} - -char *Sys_GetClipboardData (void) -{ - char *data = NULL; - char *cliptext; - - if (OpenClipboard (NULL) != 0) - { - HANDLE hClipboardData; - - if ((hClipboardData = GetClipboardData (CF_TEXT)) != 0) - { - if ((cliptext = (char *)GlobalLock (hClipboardData)) != 0) - { - size_t allocsize; - allocsize = GlobalSize (hClipboardData) + 1; - data = (char *)Z_Malloc (allocsize); - strlcpy (data, cliptext, allocsize); - GlobalUnlock (hClipboardData); - } - } - CloseClipboard (); - } - return data; -} - -void Sys_InitConsole (void) -{ -#ifdef QHOST - int t; - - // initialize the windows dedicated server console if needed - tevent = CreateEvent(NULL, false, false, NULL); - - if (!tevent) - Sys_Error ("Couldn't create event"); -#endif - - houtput = GetStdHandle (STD_OUTPUT_HANDLE); - hinput = GetStdHandle (STD_INPUT_HANDLE); - - // LadyHavoc: can't check cls.state because it hasn't been initialized yet - // if (cls.state == ca_dedicated) - if (Sys_CheckParm("-dedicated")) - { - //if ((houtput == 0) || (houtput == INVALID_HANDLE_VALUE)) // LadyHavoc: on Windows XP this is never 0 or invalid, but hinput is invalid - { - if (!AllocConsole ()) - Sys_Error ("Couldn't create dedicated server console (error code %x)", (unsigned int)GetLastError()); - houtput = GetStdHandle (STD_OUTPUT_HANDLE); - hinput = GetStdHandle (STD_INPUT_HANDLE); - } - if ((houtput == 0) || (houtput == INVALID_HANDLE_VALUE)) - Sys_Error ("Couldn't create dedicated server console"); - - -#ifdef QHOST -#ifdef _WIN64 -#define atoi _atoi64 -#endif - // give QHOST a chance to hook into the console - if ((t = Sys_CheckParm ("-HFILE")) > 0) - { - if (t < sys.argc) - hFile = (HANDLE)atoi (sys.argv[t+1]); - } - - if ((t = Sys_CheckParm ("-HPARENT")) > 0) - { - if (t < sys.argc) - heventParent = (HANDLE)atoi (sys.argv[t+1]); - } - - if ((t = Sys_CheckParm ("-HCHILD")) > 0) - { - if (t < sys.argc) - heventChild = (HANDLE)atoi (sys.argv[t+1]); - } - - InitConProc (hFile, heventParent, heventChild); -#endif - } - -// because sound is off until we become active - S_BlockSound (); -} - -/* -============================================================================== - -WINDOWS CRAP - -============================================================================== -*/ - - -/* -================== -WinMain -================== -*/ -HINSTANCE global_hInstance; -const char *argv[MAX_NUM_ARGVS]; -char program_name[MAX_OSPATH]; - -int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) -{ - MEMORYSTATUS lpBuffer; - - /* previous instances do not exist in Win32 */ - if (hPrevInstance) - return 0; - - global_hInstance = hInstance; - - lpBuffer.dwLength = sizeof(MEMORYSTATUS); - GlobalMemoryStatus (&lpBuffer); - - program_name[sizeof(program_name)-1] = 0; - GetModuleFileNameA(NULL, program_name, sizeof(program_name) - 1); - - sys.argc = 1; - sys.argv = argv; - argv[0] = program_name; - - // FIXME: this tokenizer is rather redundent, call a more general one - while (*lpCmdLine && (sys.argc < MAX_NUM_ARGVS)) - { - while (*lpCmdLine && ISWHITESPACE(*lpCmdLine)) - lpCmdLine++; - - if (!*lpCmdLine) - break; - - if (*lpCmdLine == '\"') - { - // quoted string - lpCmdLine++; - argv[sys.argc] = lpCmdLine; - sys.argc++; - while (*lpCmdLine && (*lpCmdLine != '\"')) - lpCmdLine++; - } - else - { - // unquoted word - argv[sys.argc] = lpCmdLine; - sys.argc++; - while (*lpCmdLine && !ISWHITESPACE(*lpCmdLine)) - lpCmdLine++; - } - - if (*lpCmdLine) - { - *lpCmdLine = 0; - lpCmdLine++; - } - } - - Sys_ProvideSelfFD(); - - // used by everything - Memory_Init(); - - Host_Main(); - - Sys_Quit(0); - - /* return success of application */ - return true; -} - -#if 0 -// unused, this file is only used when building windows client and vid_wgl provides WinMain() instead -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); - - sys.argc = argc; - sys.argv = argv; - - Host_Main(); - - return true; -} -#endif - -qbool sys_supportsdlgetticks = false; -unsigned int Sys_SDL_GetTicks (void) -{ - Sys_Error("Called Sys_SDL_GetTicks on non-SDL target"); - return 0; -} -void Sys_SDL_Delay (unsigned int milliseconds) -{ - Sys_Error("Called Sys_SDL_Delay on non-SDL target"); -}