From ffc274643cc90cfad28c1c64b5c6d80c535e723a Mon Sep 17 00:00:00 2001
From: James R <justsomejames2@gmail.com>
Date: Sat, 18 Jan 2020 00:23:47 -0800
Subject: [PATCH] Let "+" command line parameters specify more than one
 argument

Previously each parameter after the first would be quoted into one argument to
pass to the command buffer.
---
 src/m_argv.c | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)

diff --git a/src/m_argv.c b/src/m_argv.c
index 935f4b9e3..129706127 100644
--- a/src/m_argv.c
+++ b/src/m_argv.c
@@ -92,36 +92,21 @@ const char *M_GetNextParm(void)
 void M_PushSpecialParameters(void)
 {
 	INT32 i;
-	char s[256];
-	boolean onetime = false;
-
 	for (i = 1; i < myargc; i++)
 	{
 		if (myargv[i][0] == '+')
 		{
-			strcpy(s, &myargv[i][1]);
+			COM_BufAddText(&myargv[i][1]);
 			i++;
 
 			// get the parameters of the command too
 			for (; i < myargc && myargv[i][0] != '+' && myargv[i][0] != '-'; i++)
 			{
-				strcat(s, " ");
-				if (!onetime)
-				{
-					strcat(s, "\"");
-					onetime = true;
-				}
-				strcat(s, myargv[i]);
-			}
-			if (onetime)
-			{
-				strcat(s, "\"");
-				onetime = false;
+				COM_BufAddText(va(" \"%s\"", myargv[i]));
 			}
-			strcat(s, "\n");
 
 			// push it
-			COM_BufAddText(s);
+			COM_BufAddText("\n");
 			i--;
 		}
 	}
-- 
GitLab