[CMD] Fix support for newlines in the emulated parenthesed set block of the "for" command.

CORE-7998
This commit is contained in:
Hermès Bélusca-Maïto 2017-11-17 00:56:35 +01:00
parent 8dd89c7cfc
commit 8340574fe3
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0

View file

@ -55,7 +55,7 @@ static TCHAR CurrentToken[CMDLINE_LENGTH];
static int CurrentTokenType;
static int InsideBlock;
static TCHAR ParseChar()
static TCHAR ParseChar(void)
{
TCHAR Char;
@ -69,7 +69,9 @@ restart:
* even separate tokens.
*/
do
{
Char = *ParsePos++;
}
while (Char == _T('\r'));
if (!Char)
@ -91,7 +93,7 @@ restart:
return CurChar = Char;
}
static void ParseError()
static void ParseError(void)
{
error_syntax(CurrentTokenType != TOK_END ? CurrentToken : NULL);
bParseError = TRUE;
@ -317,6 +319,7 @@ static PARSED_COMMAND *ParseBlock(REDIRECTION *RedirList)
if (CurrentTokenType == TOK_END_BLOCK)
break;
/* Skip past the \n */
ParseChar();
}
@ -502,6 +505,13 @@ static PARSED_COMMAND *ParseFor(void)
if (Type == TOK_END_BLOCK)
break;
if (Type == TOK_END)
{
/* Skip past the \n */
ParseChar();
continue;
}
if (Type != TOK_NORMAL)
goto error;