Commit d62c6bb7 authored by Detlef Riekenberg's avatar Detlef Riekenberg Committed by Alexandre Julliard

cmd: Allow GOTO to a label which has a following whitespace, with test.

parent dacdb07d
...@@ -1150,6 +1150,7 @@ void WCMD_give_help (WCHAR *command) { ...@@ -1150,6 +1150,7 @@ void WCMD_give_help (WCHAR *command) {
void WCMD_goto (CMD_LIST **cmdList) { void WCMD_goto (CMD_LIST **cmdList) {
WCHAR string[MAX_PATH]; WCHAR string[MAX_PATH];
WCHAR current[MAX_PATH];
/* Do not process any more parts of a processed multipart or multilines command */ /* Do not process any more parts of a processed multipart or multilines command */
if (cmdList) *cmdList = NULL; if (cmdList) *cmdList = NULL;
...@@ -1174,8 +1175,17 @@ void WCMD_goto (CMD_LIST **cmdList) { ...@@ -1174,8 +1175,17 @@ void WCMD_goto (CMD_LIST **cmdList) {
SetFilePointer (context -> h, 0, NULL, FILE_BEGIN); SetFilePointer (context -> h, 0, NULL, FILE_BEGIN);
while (WCMD_fgets (string, sizeof(string)/sizeof(WCHAR), context -> h)) { while (WCMD_fgets (string, sizeof(string)/sizeof(WCHAR), context -> h)) {
str = string; str = string;
while (isspaceW(*str)) str++; while (isspaceW (*str)) str++;
if ((*str == ':') && (lstrcmpiW (++str, paramStart) == 0)) return; if (*str == ':') {
DWORD index = 0;
str++;
while (((current[index] = str[index])) && (!isspaceW (current[index])))
index++;
/* ignore space at the end */
current[index] = 0;
if (lstrcmpiW (current, paramStart) == 0) return;
}
} }
WCMD_output (WCMD_LoadMessage(WCMD_NOTARGET)); WCMD_output (WCMD_LoadMessage(WCMD_NOTARGET));
} }
......
...@@ -88,3 +88,6 @@ echo goto with a leading space worked ...@@ -88,3 +88,6 @@ echo goto with a leading space worked
if c==c goto dest3 if c==c goto dest3
:dest3 :dest3
echo goto with a leading tab worked echo goto with a leading tab worked
if d==d goto dest4
:dest4@space@
echo goto with a following space worked
...@@ -82,3 +82,4 @@ if /I seems to work ...@@ -82,3 +82,4 @@ if /I seems to work
goto with no leading space worked goto with no leading space worked
goto with a leading space worked goto with a leading space worked
goto with a leading tab worked goto with a leading tab worked
goto with a following space worked
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment