Merge branch 'tokentweaks' into 'next'
Slight touchups on the tokenizer See merge request STJr/SRB2!569
This commit is contained in:
commit
9b89ed92f5
21
src/m_misc.c
21
src/m_misc.c
|
@ -1779,7 +1779,7 @@ char *M_GetToken(const char *inputString)
|
||||||
|| stringToUse[startPos] == '\r'
|
|| stringToUse[startPos] == '\r'
|
||||||
|| stringToUse[startPos] == '\n'
|
|| stringToUse[startPos] == '\n'
|
||||||
|| stringToUse[startPos] == '\0'
|
|| stringToUse[startPos] == '\0'
|
||||||
|| stringToUse[startPos] == '"' // we're treating this as whitespace because SLADE likes adding it for no good reason
|
|| stringToUse[startPos] == '=' || stringToUse[startPos] == ';' // UDMF TEXTMAP.
|
||||||
|| inComment != 0)
|
|| inComment != 0)
|
||||||
&& startPos < stringLength)
|
&& startPos < stringLength)
|
||||||
{
|
{
|
||||||
|
@ -1837,6 +1837,23 @@ char *M_GetToken(const char *inputString)
|
||||||
texturesToken[1] = '\0';
|
texturesToken[1] = '\0';
|
||||||
return texturesToken;
|
return texturesToken;
|
||||||
}
|
}
|
||||||
|
// Return entire string within quotes, except without the quotes.
|
||||||
|
else if (stringToUse[startPos] == '"')
|
||||||
|
{
|
||||||
|
endPos = ++startPos;
|
||||||
|
while (stringToUse[endPos] != '"' && endPos < stringLength)
|
||||||
|
endPos++;
|
||||||
|
|
||||||
|
texturesTokenLength = endPos++ - startPos;
|
||||||
|
// Assign the memory. Don't forget an extra byte for the end of the string!
|
||||||
|
texturesToken = (char *)Z_Malloc((texturesTokenLength+1)*sizeof(char),PU_STATIC,NULL);
|
||||||
|
// Copy the string.
|
||||||
|
M_Memcpy(texturesToken, stringToUse+startPos, (size_t)texturesTokenLength);
|
||||||
|
// Make the final character NUL.
|
||||||
|
texturesToken[texturesTokenLength] = '\0';
|
||||||
|
|
||||||
|
return texturesToken;
|
||||||
|
}
|
||||||
|
|
||||||
// Now find the end of the token. This includes several additional characters that are okay to capture as one character, but not trailing at the end of another token.
|
// Now find the end of the token. This includes several additional characters that are okay to capture as one character, but not trailing at the end of another token.
|
||||||
endPos = startPos + 1;
|
endPos = startPos + 1;
|
||||||
|
@ -1847,7 +1864,7 @@ char *M_GetToken(const char *inputString)
|
||||||
&& stringToUse[endPos] != ','
|
&& stringToUse[endPos] != ','
|
||||||
&& stringToUse[endPos] != '{'
|
&& stringToUse[endPos] != '{'
|
||||||
&& stringToUse[endPos] != '}'
|
&& stringToUse[endPos] != '}'
|
||||||
&& stringToUse[endPos] != '"' // see above
|
&& stringToUse[endPos] != '=' && stringToUse[endPos] != ';' // UDMF TEXTMAP.
|
||||||
&& inComment == 0)
|
&& inComment == 0)
|
||||||
&& endPos < stringLength)
|
&& endPos < stringLength)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue