Jason Edmeades : xcopy: Add support for /U (target must exist).

Alexandre Julliard julliard at wine.codeweavers.com
Fri Mar 30 06:20:21 CDT 2007


Module: wine
Branch: master
Commit: 5f8f5eb5beb69f87c11ee53f9f12dc4cb35647fb
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5f8f5eb5beb69f87c11ee53f9f12dc4cb35647fb

Author: Jason Edmeades <us at edmeades.me.uk>
Date:   Thu Mar 29 22:21:05 2007 +0100

xcopy: Add support for /U (target must exist).

---

 programs/xcopy/xcopy.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/programs/xcopy/xcopy.c b/programs/xcopy/xcopy.c
index 281f812..2f2e7f9 100644
--- a/programs/xcopy/xcopy.c
+++ b/programs/xcopy/xcopy.c
@@ -50,6 +50,7 @@
 #define OPT_NOCOPY       0x00000080
 #define OPT_NOPROMPT     0x00000100
 #define OPT_SHORTNAME    0x00000200
+#define OPT_MUSTEXIST    0x00000400
 
 #define MAXSTRING 8192
 
@@ -153,6 +154,7 @@ int main (int argc, char *argv[])
             case 'T': flags |= OPT_NOCOPY | OPT_RECURSIVE; break;
             case 'Y': flags |= OPT_NOPROMPT;      break;
             case 'N': flags |= OPT_SHORTNAME;     break;
+            case 'U': flags |= OPT_MUSTEXIST;     break;
             case '-': if (toupper(argvW[0][2])=='Y')
                           flags &= ~OPT_NOPROMPT; break;
             default:
@@ -458,6 +460,11 @@ static int XCOPY_DoCopy(WCHAR *srcstem, WCHAR *srcspec,
                 }
             }
 
+            /* See if it has to exist! */
+            if (destAttribs == INVALID_FILE_ATTRIBUTES && (flags & OPT_MUSTEXIST)) {
+                skipFile = TRUE;
+            }
+
             /* Output a status message */
             if (!skipFile) {
                 if (flags & OPT_QUIET) {




More information about the wine-cvs mailing list