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

This commit is contained in:
Detlef Riekenberg 2010-12-13 00:04:19 +01:00 committed by Alexandre Julliard
parent dacdb07dc4
commit d62c6bb77f
3 changed files with 16 additions and 2 deletions

View File

@ -1150,6 +1150,7 @@ void WCMD_give_help (WCHAR *command) {
void WCMD_goto (CMD_LIST **cmdList) {
WCHAR string[MAX_PATH];
WCHAR current[MAX_PATH];
/* Do not process any more parts of a processed multipart or multilines command */
if (cmdList) *cmdList = NULL;
@ -1174,8 +1175,17 @@ void WCMD_goto (CMD_LIST **cmdList) {
SetFilePointer (context -> h, 0, NULL, FILE_BEGIN);
while (WCMD_fgets (string, sizeof(string)/sizeof(WCHAR), context -> h)) {
str = string;
while (isspaceW(*str)) str++;
if ((*str == ':') && (lstrcmpiW (++str, paramStart) == 0)) return;
while (isspaceW (*str)) str++;
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));
}

View File

@ -88,3 +88,6 @@ echo goto with a leading space worked
if c==c goto dest3
:dest3
echo goto with a leading tab worked
if d==d goto dest4
:dest4@space@
echo goto with a following space worked

View File

@ -82,3 +82,4 @@ if /I seems to work
goto with no leading space worked
goto with a leading space worked
goto with a leading tab worked
goto with a following space worked