Andrew Nguyen : cmd: Fix copy option handling in batch mode.
Alexandre Julliard
julliard at winehq.org
Tue Oct 6 10:35:47 CDT 2009
Module: wine
Branch: master
Commit: 203c538aaa2ca940822791e4af42822bfdb59f53
URL: http://source.winehq.org/git/wine.git/?a=commit;h=203c538aaa2ca940822791e4af42822bfdb59f53
Author: Andrew Nguyen <arethusa26 at gmail.com>
Date: Sat Oct 3 17:00:59 2009 -0500
cmd: Fix copy option handling in batch mode.
---
programs/cmd/builtins.c | 16 ++++++++++++++--
1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index f5dfbf0..bccba85 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -171,7 +171,7 @@ void WCMD_copy (void) {
WIN32_FIND_DATA fd;
HANDLE hff;
BOOL force, status;
- WCHAR outpath[MAX_PATH], srcpath[MAX_PATH], copycmd[3];
+ WCHAR outpath[MAX_PATH], srcpath[MAX_PATH], copycmd[4];
DWORD len;
static const WCHAR copyCmdW[] = {'C','O','P','Y','C','M','D','\0'};
BOOL copyToDir = FALSE;
@@ -238,8 +238,20 @@ void WCMD_copy (void) {
else if (strstrW (quals, parmY))
force = TRUE;
else {
+ /* By default, we will force the overwrite in batch mode and ask for
+ * confirmation in interactive mode. */
+ force = !!context;
+
+ /* If COPYCMD is set, then we force the overwrite with /Y and ask for
+ * confirmation with /-Y. If COPYCMD is neither of those, then we use the
+ * default behavior. */
len = GetEnvironmentVariable (copyCmdW, copycmd, sizeof(copycmd)/sizeof(WCHAR));
- force = (len && len < (sizeof(copycmd)/sizeof(WCHAR)) && ! lstrcmpiW (copycmd, parmY));
+ if (len && len < (sizeof(copycmd)/sizeof(WCHAR))) {
+ if (!lstrcmpiW (copycmd, parmY))
+ force = TRUE;
+ else if (!lstrcmpiW (copycmd, parmNoY))
+ force = FALSE;
+ }
}
/* Loop through all source files */
More information about the wine-cvs
mailing list