exit (1);
}
-void Sys_Quit (void)
+void Sys_Shutdown (void)
{
- Host_Shutdown();
-
if (tevent)
CloseHandle (tevent);
// shut down QHOST hooks if necessary
DeinitConProc ();
-
- exit (0);
}
void Sys_PrintToTerminal(const char *text)
Sleep(milliseconds);
}
-
-void Sys_SendKeyEvents (void)
+char *Sys_GetClipboardData (void)
{
- MSG msg;
+ char *data = NULL;
+ char *cliptext;
- while (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE))
+ if (OpenClipboard (NULL) != 0)
{
- // we always update if there are any event, even if we're paused
- scr_skipupdate = 0;
+ HANDLE hClipboardData;
- if (!GetMessage (&msg, NULL, 0, 0))
- Sys_Quit ();
-
- TranslateMessage (&msg);
- DispatchMessage (&msg);
+ if ((hClipboardData = GetClipboardData (CF_TEXT)) != 0)
+ {
+ if ((cliptext = GlobalLock (hClipboardData)) != 0)
+ {
+ data = malloc (GlobalSize(hClipboardData)+1);
+ strcpy (data, cliptext);
+ GlobalUnlock (hClipboardData);
+ }
+ }
+ CloseClipboard ();
}
+ return data;
}
-
/*
==============================================================================
GetModuleFileNameA(NULL, program_name, sizeof(program_name) - 1);
argv[0] = program_name;
+ // FIXME: this tokenizer is rather redundent, call a more general one
while (*lpCmdLine && (com_argc < MAX_NUM_ARGVS))
{
- while (*lpCmdLine && ((*lpCmdLine <= 32) || (*lpCmdLine > 126)))
+ while (*lpCmdLine && *lpCmdLine <= 32)
lpCmdLine++;
if (*lpCmdLine)
{
- argv[com_argc] = lpCmdLine;
- com_argc++;
+ if (*lpCmdLine == '\"')
+ {
+ // quoted string
+ argv[com_argc] = lpCmdLine;
+ com_argc++;
- while (*lpCmdLine && ((*lpCmdLine > 32) && (*lpCmdLine <= 126)))
- lpCmdLine++;
+ while (*lpCmdLine && (*lpCmdLine != '\"'))
+ lpCmdLine++;
- if (*lpCmdLine)
+ if (*lpCmdLine)
+ {
+ *lpCmdLine = 0;
+ lpCmdLine++;
+ }
+
+ if (*lpCmdLine == '\"')
+ lpCmdLine++;
+ }
+ else
{
- *lpCmdLine = 0;
- lpCmdLine++;
+ // unquoted word
+ argv[com_argc] = lpCmdLine;
+ com_argc++;
+
+ while (*lpCmdLine && *lpCmdLine > 32)
+ lpCmdLine++;
+
+ if (*lpCmdLine)
+ {
+ *lpCmdLine = 0;
+ lpCmdLine++;
+ }
}
}
}
/* return success of application */
return true;
}
-