Jason Edmeades : cmd.exe: Add errorlevel support for DIR command.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Mar 19 08:17:49 CDT 2007
Module: wine
Branch: master
Commit: bf626f960b8a533725900b19916aab1c413c4600
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bf626f960b8a533725900b19916aab1c413c4600
Author: Jason Edmeades <us at edmeades.me.uk>
Date: Sun Mar 18 21:55:53 2007 +0000
cmd.exe: Add errorlevel support for DIR command.
---
programs/cmd/directory.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/programs/cmd/directory.c b/programs/cmd/directory.c
index 0f514e9..258ccdb 100644
--- a/programs/cmd/directory.c
+++ b/programs/cmd/directory.c
@@ -82,6 +82,8 @@ void WCMD_directory (void) {
char *p;
char string[MAXSTRING];
+ errorlevel = 0;
+
/* Prefill Quals with (uppercased) DIRCMD env var */
if (GetEnvironmentVariable ("DIRCMD", string, sizeof(string))) {
p = string;
@@ -167,6 +169,7 @@ void WCMD_directory (void) {
} else {
SetLastError(ERROR_INVALID_PARAMETER);
WCMD_print_error();
+ errorlevel = 1;
return;
}
break;
@@ -186,6 +189,7 @@ void WCMD_directory (void) {
default:
SetLastError(ERROR_INVALID_PARAMETER);
WCMD_print_error();
+ errorlevel = 1;
return;
}
p++;
@@ -216,6 +220,7 @@ void WCMD_directory (void) {
default:
SetLastError(ERROR_INVALID_PARAMETER);
WCMD_print_error();
+ errorlevel = 1;
return;
}
@@ -234,6 +239,7 @@ void WCMD_directory (void) {
default:
SetLastError(ERROR_INVALID_PARAMETER);
WCMD_print_error();
+ errorlevel = 1;
return;
}
p = p + 1;
@@ -260,6 +266,7 @@ void WCMD_directory (void) {
if (!status) {
WCMD_print_error();
if (paged_mode) WCMD_leave_paged_mode();
+ errorlevel = 1;
return;
}
lstrcpyn (drive, path, 3);
@@ -268,6 +275,7 @@ void WCMD_directory (void) {
status = WCMD_volume (0, drive);
if (!status) {
if (paged_mode) WCMD_leave_paged_mode();
+ errorlevel = 1;
return;
}
}
@@ -352,6 +360,7 @@ void WCMD_list_directory (char *search_path, int level) {
SetLastError (ERROR_FILE_NOT_FOUND);
WCMD_print_error ();
HeapFree(GetProcessHeap(),0,fd);
+ errorlevel = 1;
return;
}
do {
@@ -371,7 +380,8 @@ void WCMD_list_directory (char *search_path, int level) {
if (fd == NULL) {
FindClose (hff);
WCMD_output ("Memory Allocation Error");
- return;
+ errorlevel = 1;
+ return;
}
} while (FindNextFile(hff, (fd+entry_count)) != 0);
FindClose (hff);
@@ -381,6 +391,7 @@ void WCMD_list_directory (char *search_path, int level) {
SetLastError (ERROR_FILE_NOT_FOUND);
WCMD_print_error ();
HeapFree(GetProcessHeap(),0,fd);
+ errorlevel = 1;
return;
}
More information about the wine-cvs
mailing list