Module: wine Branch: master Commit: f6ec44173fdfb9141a8373d520488df3f1635396 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f6ec44173fdfb9141a8373d520...
Author: Alexander Farber afarber@h754814.serverkompetenz.net Date: Wed Feb 28 14:49:46 2007 +0100
cmd: Support /-Y and COPYCMD environment variable in the "copy" builtin.
---
programs/cmd/builtins.c | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index 3c93231..c44b929 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -110,7 +110,8 @@ WIN32_FIND_DATA fd; HANDLE hff; BOOL force, status; static const char overwrite[] = "Overwrite file (Y/N)?"; -char string[8], outpath[MAX_PATH], inpath[MAX_PATH], *infile; +char string[8], outpath[MAX_PATH], inpath[MAX_PATH], *infile, copycmd[3]; +DWORD len;
if (param1[0] == 0x00) { WCMD_output ("Argument missing\n"); @@ -140,7 +141,16 @@ char string[8], outpath[MAX_PATH], inpath[MAX_PATH], *infile; FindClose (hff); }
- force = (strstr (quals, "/Y") != NULL); + /* /-Y has the highest priority, then /Y and finally the COPYCMD env. variable */ + if (strstr (quals, "/-Y")) + force = FALSE; + else if (strstr (quals, "/Y")) + force = TRUE; + else { + len = GetEnvironmentVariable ("COPYCMD", copycmd, sizeof(copycmd)); + force = (len && len < sizeof(copycmd) && ! lstrcmpi (copycmd, "/Y")); + } + if (!force) { hff = FindFirstFile (outpath, &fd); if (hff != INVALID_HANDLE_VALUE) {