cmd: Support /-Y and COPYCMD environment variable in the "copy" builtin.
This commit is contained in:
parent
fdeb6d5ae5
commit
f6ec44173f
|
@ -110,7 +110,8 @@ WIN32_FIND_DATA fd;
|
||||||
HANDLE hff;
|
HANDLE hff;
|
||||||
BOOL force, status;
|
BOOL force, status;
|
||||||
static const char overwrite[] = "Overwrite file (Y/N)?";
|
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) {
|
if (param1[0] == 0x00) {
|
||||||
WCMD_output ("Argument missing\n");
|
WCMD_output ("Argument missing\n");
|
||||||
|
@ -140,7 +141,16 @@ char string[8], outpath[MAX_PATH], inpath[MAX_PATH], *infile;
|
||||||
FindClose (hff);
|
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) {
|
if (!force) {
|
||||||
hff = FindFirstFile (outpath, &fd);
|
hff = FindFirstFile (outpath, &fd);
|
||||||
if (hff != INVALID_HANDLE_VALUE) {
|
if (hff != INVALID_HANDLE_VALUE) {
|
||||||
|
|
Loading…
Reference in New Issue