[PATCH 5/5] cmd: Add support for the magic variables to defined.
Francois Gouget
fgouget at codeweavers.com
Fri Mar 25 10:15:38 CDT 2022
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
programs/cmd/builtins.c | 13 +++++++++++--
programs/cmd/tests/test_builtins.cmd.exp | 10 +++++-----
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index d3d62d7dc56..7ece4b52a9e 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -2823,8 +2823,17 @@ int evaluate_if_condition(WCHAR *p, WCHAR **command, int *test, int *negate)
WCMD_parameter(p, 2+(*negate), command, FALSE, FALSE);
}
else if (!lstrcmpiW(condition, L"defined")) {
- *test = (GetEnvironmentVariableW(WCMD_parameter(p, 1+(*negate), NULL, FALSE, FALSE),
- NULL, 0) > 0);
+ const WCHAR* name = WCMD_parameter(p, 1+(*negate), NULL, FALSE, FALSE);
+ if (lstrcmpiW(name, L"cd") == 0 ||
+ lstrcmpiW(name, L"date") == 0 ||
+ lstrcmpiW(name, L"errorlevel") == 0 ||
+ lstrcmpiW(name, L"random") == 0 ||
+ lstrcmpiW(name, L"time") == 0) {
+ *test = 1;
+ }
+ else {
+ *test = (GetEnvironmentVariableW(name, NULL, 0) > 0);
+ }
WCMD_parameter(p, 2+(*negate), command, FALSE, FALSE);
}
else { /* comparison operation */
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index 0d55d6b8630..0cfbaebfd85 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -1216,18 +1216,18 @@ WINE_foo correctly 8 at or_broken@ERROR: WINE_foo incorrectly 4 [8]
WINE_foo correctly 6 at or_broken@ERROR: WINE_foo incorrectly 5 [6]
WINE_bar correctly 6 at or_broken@ERROR: WINE_bar incorrectly 5 [6]
--- Magic environment variables
- at todo_wine@Has %cd%
+Has %cd%
CD value @pwd@@or_broken at CD value at space@
- at todo_wine@Has %date%
+Has %date%
Good %date%
Match
- at todo_wine@Has %errorlevel%
- at todo_wine@Has %time%
+Has %errorlevel%
+Has %time%
%time% has seconds
%time% has 1/100s
End of %time%
Match
- at todo_wine@Has %random%
+Has %random%
%random% looks random
--- for /F
------ string argument
--
2.30.2
More information about the wine-devel
mailing list