xcopy: Add support for /N (shortname copy).

This commit is contained in:
Jason Edmeades 2007-03-29 22:21:04 +01:00 committed by Alexandre Julliard
parent 30fcdd9f07
commit fe89021458
1 changed files with 12 additions and 2 deletions

View File

@ -49,6 +49,7 @@
#define OPT_PAUSE 0x00000040
#define OPT_NOCOPY 0x00000080
#define OPT_NOPROMPT 0x00000100
#define OPT_SHORTNAME 0x00000200
#define MAXSTRING 8192
@ -151,6 +152,7 @@ int main (int argc, char *argv[])
case 'W': flags |= OPT_PAUSE; break;
case 'T': flags |= OPT_NOCOPY | OPT_RECURSIVE; break;
case 'Y': flags |= OPT_NOPROMPT; break;
case 'N': flags |= OPT_SHORTNAME; break;
case '-': if (toupper(argvW[0][2])=='Y')
flags &= ~OPT_NOPROMPT; break;
default:
@ -412,11 +414,19 @@ static int XCOPY_DoCopy(WCHAR *srcstem, WCHAR *srcspec,
/* Get the filename information */
lstrcpyW(copyFrom, srcstem);
lstrcatW(copyFrom, finddata->cFileName);
if (flags & OPT_SHORTNAME) {
lstrcatW(copyFrom, finddata->cAlternateFileName);
} else {
lstrcatW(copyFrom, finddata->cFileName);
}
lstrcpyW(copyTo, deststem);
if (*destspec == 0x00) {
lstrcatW(copyTo, finddata->cFileName);
if (flags & OPT_SHORTNAME) {
lstrcatW(copyTo, finddata->cAlternateFileName);
} else {
lstrcatW(copyTo, finddata->cFileName);
}
} else {
lstrcatW(copyTo, destspec);
}