cmd: Allow GOTO to a label which has a following whitespace, with test.
This commit is contained in:
parent
dacdb07dc4
commit
d62c6bb77f
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue