]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
fix quoted string parsing
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 10 Sep 2004 18:19:05 +0000 (18:19 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 10 Sep 2004 18:19:05 +0000 (18:19 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4465 d7cf8633-e32d-0410-b094-e92efae38249

sys_win.c

index f53745e560ef2485da9e1631e1ac75ae2ad36e97..a2be13cc89920c0e9a884ef6545d1d0972e30622 100644 (file)
--- 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();