Jason Edmeades : cmd.exe: Make SET have correct errorlevel.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Mar 13 07:56:08 CDT 2007
Module: wine
Branch: master
Commit: 87f0293657591c2bed80bcf36801a8a2c889b3fc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=87f0293657591c2bed80bcf36801a8a2c889b3fc
Author: Jason Edmeades <us at edmeades.me.uk>
Date: Tue Mar 13 00:11:31 2007 +0000
cmd.exe: Make SET have correct errorlevel.
---
programs/cmd/builtins.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 02004ae..4efe580 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -1278,6 +1278,7 @@ void WCMD_setshow_env (char *s) {
char *p;
int status;
+ errorlevel = 0;
if (param1[0] == 0x00 && quals[0] == 0x00) {
env = GetEnvironmentStrings ();
WCMD_setshow_sortenv( env, NULL );
@@ -1314,11 +1315,13 @@ void WCMD_setshow_env (char *s) {
}
} else {
+ DWORD gle;
p = strchr (s, '=');
if (p == NULL) {
env = GetEnvironmentStrings ();
if (WCMD_setshow_sortenv( env, s ) == 0) {
WCMD_output ("Environment variable %s not defined\n", s);
+ errorlevel = 1;
}
return;
}
@@ -1326,7 +1329,10 @@ void WCMD_setshow_env (char *s) {
if (strlen(p) == 0) p = NULL;
status = SetEnvironmentVariable (s, p);
- if ((!status) & (GetLastError() != ERROR_ENVVAR_NOT_FOUND)) WCMD_print_error();
+ gle = GetLastError();
+ if ((!status) & (gle == ERROR_ENVVAR_NOT_FOUND)) {
+ errorlevel = 1;
+ } else if ((!status)) WCMD_print_error();
}
}
More information about the wine-cvs
mailing list