Merge branch 'quote-shenanigans' into 'master'
Stuff I Broke: Commands See merge request STJr/SRB2!607
This commit is contained in:
commit
35fe2e7281
|
@ -427,20 +427,21 @@ static void COM_TokenizeString(char *ptext)
|
||||||
|
|
||||||
com_argc = 0;
|
com_argc = 0;
|
||||||
com_args = NULL;
|
com_args = NULL;
|
||||||
|
com_flags = 0;
|
||||||
if (ptext[0] == '\033')
|
|
||||||
{
|
|
||||||
com_flags = (unsigned)ptext[1];
|
|
||||||
ptext += 2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
com_flags = 0;
|
|
||||||
|
|
||||||
while (com_argc < MAX_ARGS)
|
while (com_argc < MAX_ARGS)
|
||||||
{
|
{
|
||||||
// Skip whitespace up to a newline.
|
// Skip whitespace up to a newline.
|
||||||
while (*ptext != '\0' && *ptext <= ' ' && *ptext != '\n')
|
while (*ptext != '\0' && *ptext <= ' ' && *ptext != '\n')
|
||||||
ptext++;
|
{
|
||||||
|
if (ptext[0] == '\033')
|
||||||
|
{
|
||||||
|
com_flags = (unsigned)ptext[1];
|
||||||
|
ptext += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ptext++;
|
||||||
|
}
|
||||||
|
|
||||||
// A newline means end of command in buffer,
|
// A newline means end of command in buffer,
|
||||||
// thus end of this command's args too.
|
// thus end of this command's args too.
|
||||||
|
@ -2169,8 +2170,13 @@ skipwhite:
|
||||||
com_token[len] = 0;
|
com_token[len] = 0;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
com_token[len] = c;
|
if (c == '\033')
|
||||||
len++;
|
data += 2;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
com_token[len] = c;
|
||||||
|
len++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2186,10 +2192,22 @@ skipwhite:
|
||||||
// parse a regular word
|
// parse a regular word
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
com_token[len] = c;
|
if (c == '\033')
|
||||||
data++;
|
{
|
||||||
len++;
|
do
|
||||||
c = *data;
|
{
|
||||||
|
data += 2;
|
||||||
|
c = *data;
|
||||||
|
}
|
||||||
|
while (c == '\033') ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
com_token[len] = c;
|
||||||
|
data++;
|
||||||
|
len++;
|
||||||
|
c = *data;
|
||||||
|
}
|
||||||
if (c == '{' || c == '}' || c == ')'|| c == '(' || c == '\'')
|
if (c == '{' || c == '}' || c == ')'|| c == '(' || c == '\'')
|
||||||
break;
|
break;
|
||||||
} while (c > 32);
|
} while (c > 32);
|
||||||
|
|
Loading…
Reference in New Issue