From: Eric Pouech <epouech(a)codeweavers.com> Likely regression introduced by 86f3e21d659b3c94eccc42353467cbdbbbf80eeb. FOR /L %v in () DO ... should execute as an infinite loop. Signed-off-by: Eric Pouech <epouech(a)codeweavers.com> --- programs/cmd/wcmdmain.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c index ed9da89918d..84d3f52970e 100644 --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -3614,8 +3614,13 @@ static RETURN_CODE for_control_execute_numbers(CMD_FOR_CONTROL *for_ctrl, CMD_NO int numbers[3] = {0, 0, 0}, var; int i; - wcscpy(set, for_ctrl->set); - handleExpansion(set, TRUE); + if (for_ctrl->set) + { + wcscpy(set, for_ctrl->set); + handleExpansion(set, TRUE); + } + else + set[0] = L'\0'; /* Note: native doesn't check the actual number of parameters, and set * them by default to 0. @@ -3648,7 +3653,7 @@ static RETURN_CODE for_control_execute(CMD_FOR_CONTROL *for_ctrl, CMD_NODE *node { RETURN_CODE return_code; - if (!for_ctrl->set) return NO_ERROR; + if (!for_ctrl->set && for_ctrl->operator != CMD_FOR_NUMBERS) return NO_ERROR; WCMD_save_for_loop_context(FALSE); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/7788