From f8adb130d9c2e007317efe7a4f3f486c6e67654a Mon Sep 17 00:00:00 2001 From: havoc Date: Fri, 10 Sep 2004 18:19:05 +0000 Subject: [PATCH] fix quoted string parsing git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4465 d7cf8633-e32d-0410-b094-e92efae38249 --- sys_win.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/sys_win.c b/sys_win.c index f53745e5..a2be13cc 100644 --- a/sys_win.c +++ b/sys_win.c @@ -343,15 +343,17 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin lpBuffer.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus (&lpBuffer); - com_argc = 1; program_name[sizeof(program_name)-1] = 0; GetModuleFileNameA(NULL, program_name, sizeof(program_name) - 1); + + com_argc = 1; + com_argv = argv; 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) + while (*lpCmdLine && *lpCmdLine <= ' ') lpCmdLine++; if (*lpCmdLine) @@ -359,39 +361,28 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin if (*lpCmdLine == '\"') { // quoted string + lpCmdLine++; argv[com_argc] = lpCmdLine; com_argc++; - while (*lpCmdLine && (*lpCmdLine != '\"')) lpCmdLine++; - - if (*lpCmdLine) - { - *lpCmdLine = 0; - lpCmdLine++; - } - - if (*lpCmdLine == '\"') - lpCmdLine++; } else { // unquoted word argv[com_argc] = lpCmdLine; com_argc++; - - while (*lpCmdLine && *lpCmdLine > 32) + while (*lpCmdLine && *lpCmdLine > ' ) lpCmdLine++; + } - if (*lpCmdLine) - { - *lpCmdLine = 0; - lpCmdLine++; - } + if (*lpCmdLine) + { + *lpCmdLine = 0; + lpCmdLine++; } } } - com_argv = argv; Sys_Shared_EarlyInit(); -- 2.39.2