[PATCH] cmd.exe: Fix parsing of && between quotes.
Myah Caron
qsniyg at protonmail.com
Fri Sep 11 04:25:48 CDT 2020
From: Francesco Noferi <lolisamurai at tfwno.gf>
Signed-off-by: Francesco Noferi <lolisamurai at tfwno.gf>
Signed-off-by: Myah Caron <qsniyg at protonmail.com>
---
programs/cmd/tests/test_cmdline.cmd | 4 ++++
programs/cmd/tests/test_cmdline.cmd.exp | 3 +++
programs/cmd/wcmdmain.c | 3 ++-
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/programs/cmd/tests/test_cmdline.cmd b/programs/cmd/tests/test_cmdline.cmd
index 7a7f8d7b632..8712f05f87d 100644
--- a/programs/cmd/tests/test_cmdline.cmd
+++ b/programs/cmd/tests/test_cmdline.cmd
@@ -178,6 +178,10 @@ rem cond 5 - string between quotes must be name of executable
cmd /c "say five"
echo @echo 5 >"say five.bat"
cmd /c "say five"
+rem cond 6 - && between quotes
+cd .&&"cmd.exe" /c "echo hi"
+cd "."&&cmd.exe /c "echo hi"
+cd "."&&"cmd.exe" /c "echo hi"
echo ------- Testing CMD /C qualifier treatment ------------
rem no need for space after /c
diff --git a/programs/cmd/tests/test_cmdline.cmd.exp b/programs/cmd/tests/test_cmdline.cmd.exp
index 7978a249c97..946e353fcf3 100644
--- a/programs/cmd/tests/test_cmdline.cmd.exp
+++ b/programs/cmd/tests/test_cmdline.cmd.exp
@@ -87,6 +87,9 @@ Passed
2 at space@
0 at space@
5 at space@
+hi
+hi
+hi
------- Testing CMD /C qualifier treatment ------------
0 at space@
1 at space@
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index 97cc607a647..47e43fcd675 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -1792,7 +1792,8 @@ static BOOL WCMD_IsEndQuote(const WCHAR *quote, int quoteIndex)
/* Quote counting ends at EOL, redirection, space or pipe if current quote is complete */
else if(((quoteCount % 2) == 0)
- && ((quote[i] == '<') || (quote[i] == '>') || (quote[i] == '|') || (quote[i] == ' ')))
+ && ((quote[i] == '<') || (quote[i] == '>') || (quote[i] == '|') || (quote[i] == ' ') ||
+ (quote[i] == '&')))
{
break;
}
--
2.28.0
More information about the wine-devel
mailing list