[PATCH v2 0/2] MR9869: cmd: Strip quotes from element in FOR set when it contains wildcards.
Solves case #8 of following bugzilla entry Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50132 Signed-off-by: Eric Pouech <epouech@codeweavers.com> -- v2: cmd: Strip quotes from element in FOR set when it contains wildcards. cmd/tests: Add test for quoted wildcarded sets in FOR instruction. https://gitlab.winehq.org/wine/wine/-/merge_requests/9869
From: Eric Pouech <epouech@codeweavers.com> Signed-off-by: Eric Pouech <epouech@codeweavers.com> --- programs/cmd/tests/test_builtins.cmd | 2 ++ programs/cmd/tests/test_builtins.cmd.exp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd index 36b36699772..aa709f31850 100644 --- a/programs/cmd/tests/test_builtins.cmd +++ b/programs/cmd/tests/test_builtins.cmd @@ -2044,8 +2044,10 @@ mkdir bar mkdir baz mkdir pop echo > bazbaz +echo > notbaz echo --- basic wildcards for %%i in (ba*) do echo %%i +for %%i in ("ba*" "ba?baz" "notbaz") do echo %%i echo --- wildcards in subdirs echo something>pop\bar1 echo something>pop\bar2.txt diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index d169066a167..4acdfd7a2c7 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -1406,6 +1406,9 @@ b 1 3 "h" --- basic wildcards bazbaz +@todo_wine@bazbaz +@todo_wine@bazbaz +@todo_wine@"notbaz" --- wildcards in subdirs pop\bar1@space@ pop\bar2.txt@space@ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9869
From: Eric Pouech <epouech@codeweavers.com> Solves case #8 of following bugzilla entry Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50132 Signed-off-by: Eric Pouech <epouech@codeweavers.com> --- programs/cmd/tests/test_builtins.cmd.exp | 6 +++--- programs/cmd/wcmdmain.c | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 4acdfd7a2c7..dbbfbba27fb 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -1406,9 +1406,9 @@ b 1 3 "h" --- basic wildcards bazbaz -@todo_wine@bazbaz -@todo_wine@bazbaz -@todo_wine@"notbaz" +bazbaz +bazbaz +"notbaz" --- wildcards in subdirs pop\bar1@space@ pop\bar2.txt@space@ diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c index a47a62424c1..20e7eafaed4 100644 --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -4349,8 +4349,12 @@ static RETURN_CODE for_control_execute_set(CMD_FOR_CONTROL *for_ctrl, const WCHA if (wcspbrk(element, L"?*")) { WIN32_FIND_DATAW fd; - HANDLE hff = FindFirstFileW(buffer, &fd); - size_t insert_pos = (wcsrchr(buffer, L'\\') ? wcsrchr(buffer, L'\\') + 1 - buffer : 0); + HANDLE hff; + size_t insert_pos; + + if (*buffer == L'"') WCMD_strip_quotes(buffer); + hff = FindFirstFileW(buffer, &fd); + insert_pos = wcsrchr(buffer, L'\\') ? wcsrchr(buffer, L'\\') + 1 - buffer : 0; if (hff == INVALID_HANDLE_VALUE) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9869
V2 pushed with tests -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9869#note_127198
participants (2)
-
Eric Pouech -
eric pouech (@epo)