small SETUPX patch

Andreas Mohr andi at rhlx01.fht-esslingen.de
Sat Jul 20 10:27:54 CDT 2002


Hi all,

honour the VNLP_COPYIFEXISTS flag when doing a copy operation instead
of always refusing to copy in case of existing destination file.
Needed for some IE install.

-- 
Andreas Mohr                        Stauferstr. 6, D-71272 Renningen, Germany
-------------- next part --------------
Determining best CVS host...
Using CVSROOT :pserver:cvs at rhlx01.fht-esslingen.de:/home/wine
Index: dlls/setupapi/setupx16.h
===================================================================
RCS file: /home/wine/wine/dlls/setupapi/setupx16.h,v
retrieving revision 1.10
diff -u -r1.10 setupx16.h
--- dlls/setupapi/setupx16.h	31 May 2002 23:25:51 -0000	1.10
+++ dlls/setupapi/setupx16.h	20 Jul 2002 15:27:54 -0000
@@ -360,6 +360,20 @@
 typedef int (CALLBACK *VCPENUMPROC)(LPVIRTNODE lpvn, LPARAM lparamRef);
 
 RETERR16 WINAPI VcpOpen16(VIFPROC vifproc, LPARAM lparamMsgRef);
+
+/* VcpQueueCopy flags */
+#define VNLP_SYSCRITICAL	0x0001
+#define VNLP_SETUPCRITICAL	0x0002
+#define VNLP_NOVERCHECK		0x0004
+#define VNLP_FORCETEMP		0x0008
+#define VNLP_IFEXISTS		0x0010
+#define VNLP_KEEPNEWER		0x0020
+#define VNLP_PATCHIFEXIST	0x0040
+#define VNLP_NOPATCH		0x0080
+#define VNLP_CATALOGCERT	0x0100
+#define VNLP_NEEDCERTIFY	0x0200
+#define VNLP_COPYIFEXISTS	0x0400
+
 RETERR16 WINAPI VcpQueueCopy16(
 	LPCSTR lpszSrcFileName, LPCSTR lpszDstFileName,
 	LPCSTR lpszSrcDir, LPCSTR lpszDstDir,
Index: dlls/setupapi/virtcopy.c
===================================================================
RCS file: /home/wine/wine/dlls/setupapi/virtcopy.c,v
retrieving revision 1.11
diff -u -r1.11 virtcopy.c
--- dlls/setupapi/virtcopy.c	31 May 2002 23:25:51 -0000	1.11
+++ dlls/setupapi/virtcopy.c	20 Jul 2002 15:27:54 -0000
@@ -467,7 +467,8 @@
 	/* FIXME: need to do the file copy in small chunks for notifications */
 	TRACE("copying '%s' to '%s'\n", fn_src, fn_dst);
         /* perform the file copy */
-        if (!(CopyFileA(fn_src, fn_dst, TRUE)))
+        if (!(CopyFileA(fn_src, fn_dst,
+	       (lpvn->fl & VNLP_COPYIFEXISTS) ? FALSE : TRUE )))
         {
             ERR("error copying, src: %s -> dst: %s\n", fn_src, fn_dst);
 	    res = ERR_VCP_IOFAIL;


More information about the wine-patches mailing list