diff --git a/setup/multiplayer.c b/setup/multiplayer.c index 62b84ab0..bd332e9e 100644 --- a/setup/multiplayer.c +++ b/setup/multiplayer.c @@ -136,7 +136,7 @@ static void AddWADs(execute_context_t *exec) have_wads = 1; } - AddCmdLineParameter(exec, "%s", wads[i]); + AddCmdLineParameter(exec, "\"%s\"", wads[i]); } } } diff --git a/src/d_main.c b/src/d_main.c index ca8abd4f..dbdfa1a7 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1101,10 +1101,23 @@ void FindResponseFile (void) indexinfile++; // SKIP PAST ARGV[0] (KEEP IT) do { + boolean quote = false; + if (infile[k] == '"') + { + quote = true; + k++; + } myargv[indexinfile++] = infile+k; while(k < size && - ((*(infile+k)>= ' '+1) && (*(infile+k)<='z'))) + ((*(infile+k)>= ' ') && (*(infile+k)<='z'))) + { + if ((!quote && infile[k] == ' ') || + (quote && infile[k] == '"')) + { + break; + } k++; + } *(infile+k) = 0; while(k < size && ((*(infile+k)<= ' ') || (*(infile+k)>'z')))