Rebase against f9e1dbb83d850a2f7cb17079e02de139e2f8b920

This commit is contained in:
Alistair Leslie-Hughes
2018-02-23 09:33:49 +11:00
parent 84fb9656a1
commit 9d84ed42f1
42 changed files with 412 additions and 677 deletions

View File

@ -1,8 +1,8 @@
From d269fc1d62c4e26df5959b728266ae3295501db3 Mon Sep 17 00:00:00 2001
From ace9fff7d9de39029e09591cec4cce39631baa53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 6 Aug 2017 03:15:34 +0200
Subject: [PATCH] programs/runas: Basic implementation for starting processes
with a different trustlevel.
Subject: [PATCH] programs/runas: Basic implementation for starting
processes with a different trustlevel.
---
configure.ac | 1 +
@ -17,17 +17,17 @@ Subject: [PATCH] programs/runas: Basic implementation for starting processes
create mode 100644 programs/runas/runas.rc
diff --git a/configure.ac b/configure.ac
index 2996010..aea102b 100644
index 7b796ef..6f63217 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3823,6 +3823,7 @@ WINE_CONFIG_TEST(programs/regedit/tests)
WINE_CONFIG_PROGRAM(regsvcs,,[install])
WINE_CONFIG_PROGRAM(regsvr32,,[install,installbin,manpage])
WINE_CONFIG_PROGRAM(rpcss,,[install])
@@ -3836,6 +3836,7 @@ WINE_CONFIG_PROGRAM(regsvr32)
WINE_CONFIG_PROGRAM(rpcss)
WINE_CONFIG_PROGRAM(rundll.exe16,enable_win16)
WINE_CONFIG_PROGRAM(rundll32)
+WINE_CONFIG_PROGRAM(runas,,[install])
WINE_CONFIG_PROGRAM(rundll.exe16,enable_win16,[install])
WINE_CONFIG_PROGRAM(rundll32,,[install])
WINE_CONFIG_PROGRAM(sc,,[install])
WINE_CONFIG_PROGRAM(sc)
WINE_CONFIG_PROGRAM(schtasks)
WINE_CONFIG_TEST(programs/schtasks/tests)
diff --git a/programs/runas/Makefile.in b/programs/runas/Makefile.in
new file mode 100644
index 0000000..be9434b
@ -340,5 +340,5 @@ index 0000000..f9297a4
+ %2!u!: %3\n"
+}
--
2.7.4
1.9.1

View File

@ -1,4 +1,4 @@
From 7e17dfac73025ee2a51c2791c412abe47b36677c Mon Sep 17 00:00:00 2001
From 0f81943e8bdac5e3917e937bc4cb4215227c544d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 01:11:46 +0100
Subject: [PATCH] iertutil: Add dll and add stub for ordinal 811.
@ -14,19 +14,19 @@ Subject: [PATCH] iertutil: Add dll and add stub for ordinal 811.
create mode 100644 dlls/iertutil/main.c
diff --git a/configure.ac b/configure.ac
index 4051d50..a5c5a96 100644
index 6f63217..fd0c99d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3263,7 +3263,8 @@ WINE_CONFIG_DLL(iccvid)
@@ -3274,7 +3274,8 @@ WINE_CONFIG_DLL(iccvid)
WINE_CONFIG_DLL(icmp)
WINE_CONFIG_DLL(ieframe,,[implib])
WINE_CONFIG_DLL(ieframe)
WINE_CONFIG_TEST(dlls/ieframe/tests)
-WINE_CONFIG_DLL(ieproxy)
+WINE_CONFIG_DLL(ieproxy,,[clean])
+WINE_CONFIG_DLL(iertutil)
WINE_CONFIG_DLL(ifsmgr.vxd,enable_win16)
WINE_CONFIG_DLL(imaadp32.acm)
WINE_CONFIG_DLL(imagehlp,,[implib])
WINE_CONFIG_DLL(imagehlp)
diff --git a/dlls/iertutil/Makefile.in b/dlls/iertutil/Makefile.in
new file mode 100644
index 0000000..268026e

View File

@ -1,34 +1,36 @@
From 3981c1e27bd2b871761ad5a627c99e0fca17a8ac Mon Sep 17 00:00:00 2001
From cdc37e086bd04654655663b9408640a0b484f999 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 17:07:35 +0100
Subject: ext-ms-win-xaml-pal-l1-1-0: Add dll and add stub for
XamlBehaviorEnabled.
Subject: [PATCH] ext-ms-win-xaml-pal-l1-1-0: Add dll and add stub
for XamlBehaviorEnabled.
---
configure.ac | 1 +
configure.ac | 3 +-
dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in | 4 +++
.../ext-ms-win-xaml-pal-l1-1-0.spec | 6 ++++
dlls/ext-ms-win-xaml-pal-l1-1-0/main.c | 35 ++++++++++++++++++++++
4 files changed, 46 insertions(+)
4 files changed, 47 insertions(+), 1 deletion(-)
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
diff --git a/configure.ac b/configure.ac
index 8bd76710a37..1f78aea5ce0 100644
index a011d82..ba0fcb4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3114,6 +3114,7 @@ WINE_CONFIG_DLL(ext-ms-win-rtcore-ntuser-dpi-l1-1-0)
@@ -3241,7 +3241,8 @@ WINE_CONFIG_DLL(ext-ms-win-rtcore-ntuser-dpi-l1-1-0)
WINE_CONFIG_DLL(ext-ms-win-rtcore-ntuser-sysparams-l1-1-0)
WINE_CONFIG_DLL(ext-ms-win-security-credui-l1-1-0)
WINE_CONFIG_DLL(ext-ms-win-security-cryptui-l1-1-0)
-WINE_CONFIG_DLL(faultrep)
+WINE_CONFIG_DLL(ext-ms-win-xaml-pal-l1-1-0)
WINE_CONFIG_DLL(faultrep,,[implib])
+WINE_CONFIG_DLL(faultrep,,[implib])
WINE_CONFIG_TEST(dlls/faultrep/tests)
WINE_CONFIG_DLL(fltlib)
WINE_CONFIG_DLL(fltmgr.sys)
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in b/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
new file mode 100644
index 00000000000..6382d85272b
index 0000000..6382d85
--- /dev/null
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
@@ -0,0 +1,4 @@
@ -38,7 +40,7 @@ index 00000000000..6382d85272b
+ main.c
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec b/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
new file mode 100644
index 00000000000..c167f5e753e
index 0000000..c167f5e
--- /dev/null
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
@@ -0,0 +1,6 @@
@ -50,7 +52,7 @@ index 00000000000..c167f5e753e
+@ stub XamlPalUninitialize
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c b/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
new file mode 100644
index 00000000000..3e282758f41
index 0000000..3e28275
--- /dev/null
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
@@ -0,0 +1,35 @@
@ -90,5 +92,5 @@ index 00000000000..3e282758f41
+ return TRUE;
+}
--
2.13.1
1.9.1

View File

@ -1,8 +1,8 @@
From 94dc68ec5e72106364d20829ab1ab11e98fa7320 Mon Sep 17 00:00:00 2001
From a1932246122fadf7ade2bf258cf06fea30366523 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 22 Feb 2015 01:25:20 +0100
Subject: [PATCH] dxva2: Initial implementation of MPEG2 decoder using vaapi
backend.
Subject: [PATCH] dxva2: Initial implementation of MPEG2 decoder
using vaapi backend.
---
configure.ac | 18 +-
@ -22,10 +22,10 @@ Subject: [PATCH] dxva2: Initial implementation of MPEG2 decoder using vaapi
create mode 100644 dlls/dxva2/vaapi.c
diff --git a/configure.ac b/configure.ac
index 9163f71..9d5929d 100644
index bf04f97..7954a73 100644
--- a/configure.ac
+++ b/configure.ac
@@ -106,6 +106,8 @@ AC_ARG_WITH(xxf86vm, AS_HELP_STRING([--without-xxf86vm],[do not use XFree vide
@@ -107,6 +107,8 @@ AC_ARG_WITH(xxf86vm, AS_HELP_STRING([--without-xxf86vm],[do not use XFree vide
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; ac_cv_header_X11_extensions_xf86vmproto_h=no; fi])
AC_ARG_WITH(zlib, AS_HELP_STRING([--without-zlib],[do not use Zlib (data compression)]),
[if test "x$withval" = "xno"; then ac_cv_header_zlib_h=no; fi])
@ -34,7 +34,7 @@ index 9163f71..9d5929d 100644
AC_ARG_WITH(wine-tools,AS_HELP_STRING([--with-wine-tools=DIR],[use Wine tools from directory DIR]))
AC_ARG_WITH(wine64, AS_HELP_STRING([--with-wine64=DIR],[use the 64-bit Wine in DIR for a Wow64 build]))
@@ -1209,6 +1211,20 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
@@ -1210,6 +1212,20 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
WINE_WARNING_WITH(opengl,[test -n "$opengl_msg"],[$opengl_msg
OpenGL and Direct3D won't be supported.])
@ -55,8 +55,8 @@ index 9163f71..9d5929d 100644
CPPFLAGS="$ac_save_CPPFLAGS"
else
X_CFLAGS=""
@@ -3208,7 +3224,7 @@ WINE_CONFIG_LIB(dxerr9)
WINE_CONFIG_DLL(dxgi,,[implib])
@@ -3219,7 +3235,7 @@ WINE_CONFIG_LIB(dxerr9)
WINE_CONFIG_DLL(dxgi)
WINE_CONFIG_TEST(dlls/dxgi/tests)
WINE_CONFIG_LIB(dxguid)
-WINE_CONFIG_DLL(dxva2)

View File

@ -1,8 +1,8 @@
From ee8847e54b1afeefbb21e3c1ce0e8c40cbf34cc0 Mon Sep 17 00:00:00 2001
From a29f857073158478574f12119d8e99382d54ebeb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 1 Apr 2016 01:29:51 +0200
Subject: [PATCH] fsutil: Add fsutil program with support for creating hard
links.
Subject: [PATCH] fsutil: Add fsutil program with support for
creating hard links.
---
configure.ac | 2 +-
@ -15,18 +15,18 @@ Subject: [PATCH] fsutil: Add fsutil program with support for creating hard
create mode 100644 programs/fsutil/resources.h
diff --git a/configure.ac b/configure.ac
index 6baf58b..1b41c90 100644
index 187d1dc..1559d4d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3825,7 +3825,7 @@ WINE_CONFIG_PROGRAM(expand,,[install])
WINE_CONFIG_PROGRAM(explorer,,[install])
WINE_CONFIG_PROGRAM(extrac32,,[install])
WINE_CONFIG_PROGRAM(findstr,,[install])
-WINE_CONFIG_PROGRAM(fsutil,,[install])
@@ -3836,7 +3836,7 @@ WINE_CONFIG_PROGRAM(expand)
WINE_CONFIG_PROGRAM(explorer)
WINE_CONFIG_PROGRAM(extrac32)
WINE_CONFIG_PROGRAM(findstr)
-WINE_CONFIG_PROGRAM(fsutil)
+WINE_CONFIG_PROGRAM(fsutil,,[clean,install])
WINE_CONFIG_PROGRAM(hh,,[install])
WINE_CONFIG_PROGRAM(hostname,,[install])
WINE_CONFIG_PROGRAM(icacls,,[install])
WINE_CONFIG_PROGRAM(hh)
WINE_CONFIG_PROGRAM(hostname)
WINE_CONFIG_PROGRAM(icacls)
diff --git a/programs/fsutil/Makefile.in b/programs/fsutil/Makefile.in
index f339c4c..7433695 100644
--- a/programs/fsutil/Makefile.in

View File

@ -1,4 +1,4 @@
From 33fb892671a02207304145a987bb02885fb6b6b2 Mon Sep 17 00:00:00 2001
From 2d1834fcb5993b569fa1fb6edc0c6e782b4cd385 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 16 Aug 2017 02:45:23 +0200
Subject: [PATCH] kernelbase: Add semi-stub for PathCchCombineEx.
@ -19,18 +19,18 @@ Subject: [PATCH] kernelbase: Add semi-stub for PathCchCombineEx.
create mode 100644 include/pathcch.h
diff --git a/configure.ac b/configure.ac
index 1b41c90..6621815 100644
index 1559d4d..cd79406 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3329,7 +3329,8 @@ WINE_CONFIG_TEST(dlls/jsproxy/tests)
@@ -3340,7 +3340,8 @@ WINE_CONFIG_TEST(dlls/jsproxy/tests)
WINE_CONFIG_DLL(kerberos)
WINE_CONFIG_DLL(kernel32,,[implib])
WINE_CONFIG_DLL(kernel32)
WINE_CONFIG_TEST(dlls/kernel32/tests)
-WINE_CONFIG_DLL(kernelbase)
+WINE_CONFIG_DLL(kernelbase,,[implib])
+WINE_CONFIG_TEST(dlls/kernelbase/tests)
WINE_CONFIG_DLL(keyboard.drv16,enable_win16)
WINE_CONFIG_DLL(krnl386.exe16,enable_win16,[implib],[kernel])
WINE_CONFIG_DLL(krnl386.exe16,enable_win16)
WINE_CONFIG_DLL(ksuser)
diff --git a/dlls/api-ms-win-core-path-l1-1-0/api-ms-win-core-path-l1-1-0.spec b/dlls/api-ms-win-core-path-l1-1-0/api-ms-win-core-path-l1-1-0.spec
index cb10d89..4df147e 100644

View File

@ -1,7 +1,8 @@
From b252ccdcbb84f5aef2d83b1324598b93b6ac2bba Mon Sep 17 00:00:00 2001
From a2444d61bf9783943ce1d8e7e4a1eb7fe7f36e04 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
Date: Tue, 15 Sep 2015 17:44:33 -0600
Subject: [PATCH] msidb: Add stub tool for manipulating MSI databases.
Subject: [PATCH] msidb: Add stub tool for manipulating MSI
databases.
Signed-off-by: Erich E. Hoover <erich.e.hoover@wine-staging.com>
---
@ -13,17 +14,17 @@ Signed-off-by: Erich E. Hoover <erich.e.hoover@wine-staging.com>
create mode 100644 programs/msidb/main.c
diff --git a/configure.ac b/configure.ac
index e1a20cc..6f61b42 100644
index 6e9f9c9..af61142 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3855,6 +3855,7 @@ WINE_CONFIG_PROGRAM(ipconfig,,[install])
WINE_CONFIG_PROGRAM(lodctr,,[install])
WINE_CONFIG_PROGRAM(mofcomp,,[install])
WINE_CONFIG_PROGRAM(mshta,,[install])
@@ -3866,6 +3866,7 @@ WINE_CONFIG_PROGRAM(ipconfig)
WINE_CONFIG_PROGRAM(lodctr)
WINE_CONFIG_PROGRAM(mofcomp)
WINE_CONFIG_PROGRAM(mshta)
+WINE_CONFIG_PROGRAM(msidb,,[install,installbin])
WINE_CONFIG_PROGRAM(msiexec,,[install,installbin,manpage])
WINE_CONFIG_PROGRAM(msinfo32,,[install])
WINE_CONFIG_PROGRAM(net,,[install])
WINE_CONFIG_PROGRAM(msiexec)
WINE_CONFIG_PROGRAM(msinfo32)
WINE_CONFIG_PROGRAM(net)
diff --git a/programs/msidb/Makefile.in b/programs/msidb/Makefile.in
new file mode 100644
index 0000000..dae699c

View File

@ -1,254 +0,0 @@
From bc46a946ab92c5a9e045dec1eb4298fa0de3d438 Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Fri, 25 Aug 2017 09:05:27 -0600
Subject: msxml3: Remove CRs in domtext_put_data and add them in
domtext_get_xml.
Fixes https://bugs.winehq.org/show_bug.cgi?id=42468
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
---
dlls/msxml3/tests/domdoc.c | 153 +++++++++++++++++++++++++++++++++++++++------
dlls/msxml3/text.c | 36 ++++++++---
2 files changed, 163 insertions(+), 26 deletions(-)
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index fa10a365f55..eea8f624a9b 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -12099,34 +12099,148 @@ static void test_put_data(void)
type++;
}
- /* \r\n sequence is never escaped */
+ IXMLDOMDocument_Release(doc);
+ free_bstrs();
+}
+
+static void test_newline_normalization(void)
+{
+ const struct msxmlsupported_data_t *table = domdoc_support_data;
+ IXMLDOMDocument *doc;
+ IXMLDOMText *text;
+ IXMLDOMNode *node;
+ VARIANT v;
+ VARIANT_BOOL b;
+ BSTR s;
+ HRESULT hr;
+ LONG length;
+
V_VT(&v) = VT_I2;
V_I2(&v) = NODE_TEXT;
- hr = IXMLDOMDocument_createNode(doc, v, _bstr_("name"), NULL, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ while (table->clsid)
+ {
+ if (!is_clsid_supported(table->clsid, &IID_IXMLDOMDocument))
+ {
+ table++;
+ continue;
+ }
- IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
+ hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void**)&doc);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
- hr = IXMLDOMText_put_data(text, _bstr_("\r\n"));
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ hr = IXMLDOMDocument_createNode(doc, v, _bstr_("name"), NULL, &node);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
- hr = IXMLDOMText_get_data(text, &get_data);
- ok(hr == S_OK, "got 0x%08x\n", hr);
-todo_wine
- ok(!lstrcmpW(get_data, _bstr_("\n")), "got %s\n", wine_dbgstr_w(get_data));
- SysFreeString(get_data);
+ IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
- hr = IXMLDOMText_get_xml(text, &get_data);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(get_data, _bstr_("\r\n")), "got %s\n", wine_dbgstr_w(get_data));
- SysFreeString(get_data);
+ /* \r\n is normalized to \n and back to \r\n */
- IXMLDOMText_Release(text);
- IXMLDOMNode_Release(node);
+ hr = IXMLDOMText_put_data(text, _bstr_("\r\n"));
+ ok(hr == S_OK, "got 0x%08x\n", hr);
- IXMLDOMDocument_Release(doc);
- free_bstrs();
+ hr = IXMLDOMText_get_data(text, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("\n")), "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ hr = IXMLDOMText_get_length(text, &length);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(length == 1, "got %d, expected 1\n", length);
+
+ hr = IXMLDOMText_get_xml(text, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("\r\n")), "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ /* \r\r\n is normalized to \n\n and back to \r\n\r\n */
+
+ hr = IXMLDOMText_put_data(text, _bstr_("\r\r\n"));
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+
+ hr = IXMLDOMText_get_data(text, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("\n\n")), "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ hr = IXMLDOMText_get_length(text, &length);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(length == 2, "got %d, expected 2\n", length);
+
+ hr = IXMLDOMText_get_xml(text, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("\r\n\r\n")), "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ /* the same normalizations are applied when loading a document as a whole */
+
+ hr = IXMLDOMDocument_loadXML(doc, _bstr_("<?xml version=\"1.0\"?><root>foo\n\r\n\r\r\nbar</root>"), &b);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+
+ hr = IXMLDOMDocument_get_text(doc, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("foo\n\n\n\nbar")), "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ hr = IXMLDOMDocument_get_xml(doc, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("<?xml version=\"1.0\"?>\r\n<root>foo\r\n\r\n\r\n\r\nbar</root>\r\n")),
+ "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ /* even if xml:space="preserve" */
+
+ hr = IXMLDOMDocument_loadXML(doc, _bstr_("<?xml version=\"1.0\"?>"
+ "<root xml:space=\"preserve\">foo\n\r\n\r\r\nbar</root>"), &b);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+
+ hr = IXMLDOMDocument_get_text(doc, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("foo\n\n\n\nbar")), "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ hr = IXMLDOMDocument_get_xml(doc, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("<?xml version=\"1.0\"?>\r\n"
+ "<root xml:space=\"preserve\">foo\r\n\r\n\r\n\r\nbar</root>\r\n")),
+ "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ /* or preserveWhiteSpace is set */
+
+ hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+
+ hr = IXMLDOMDocument_loadXML(doc, _bstr_("<?xml version=\"1.0\"?><root>foo\n\r\n\r\r\nbar</root>"), &b);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+
+ hr = IXMLDOMDocument_get_text(doc, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(!lstrcmpW(s, _bstr_("foo\n\n\n\nbar")), "got %s\n", wine_dbgstr_w(s));
+ SysFreeString(s);
+
+ hr = IXMLDOMDocument_get_xml(doc, &s);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ if (IsEqualGUID(table->clsid, &CLSID_DOMDocument60))
+ {
+ /* DOMDocument60 does the newline normalization but does not insert line breaks around the root node */
+todo_wine
+ ok(!lstrcmpW(s, _bstr_("<?xml version=\"1.0\"?><root>foo\r\n\r\n\r\n\r\nbar</root>")),
+ "got %s\n", wine_dbgstr_w(s));
+ }
+ else
+ {
+ ok(!lstrcmpW(s, _bstr_("<?xml version=\"1.0\"?>\r\n<root>foo\r\n\r\n\r\n\r\nbar</root>\r\n")),
+ "got %s\n", wine_dbgstr_w(s));
+ }
+ SysFreeString(s);
+
+ IXMLDOMText_Release(text);
+ IXMLDOMNode_Release(node);
+ IXMLDOMDocument_Release(doc);
+ free_bstrs();
+ table++;
+ }
}
static void test_putref_schemas(void)
@@ -12635,6 +12749,7 @@ START_TEST(domdoc)
test_nodeValue();
test_get_namespaces();
test_put_data();
+ test_newline_normalization();
test_putref_schemas();
test_namedmap_newenum();
test_xmlns_attribute();
diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c
index 3a12d4bf622..e16d53a3f43 100644
--- a/dlls/msxml3/text.c
+++ b/dlls/msxml3/text.c
@@ -522,7 +522,7 @@ static HRESULT WINAPI domtext_get_xml(
TRACE("(%p)->(%p)\n", This, p);
- return node_get_xml(&This->node, FALSE, p);
+ return node_get_xml(&This->node, TRUE, p);
}
static HRESULT WINAPI domtext_transformNode(
@@ -616,15 +616,37 @@ static HRESULT WINAPI domtext_put_data(
BSTR data)
{
domtext *This = impl_from_IXMLDOMText( iface );
- static const WCHAR rnW[] = {'\r','\n',0};
+ BSTR normalized_data = NULL;
+ HRESULT hr;
+ size_t i, j;
TRACE("(%p)->(%s)\n", This, debugstr_w(data));
- if (data && !strcmpW(rnW, data))
- This->node.node->name = xmlStringTextNoenc;
- else
- domtext_reset_noenc(This);
- return node_set_content(&This->node, data);
+ if (data)
+ {
+ /* normalize line endings */
+ normalized_data = SysAllocStringLen(NULL, SysStringLen(data));
+ if (!normalized_data) return E_OUTOFMEMORY;
+ for (i = 0, j = 0; data[i]; i++)
+ {
+ if (data[i] == '\r')
+ {
+ if (data[i + 1] == '\n') i++;
+ normalized_data[j++] = '\n';
+ }
+ else
+ {
+ normalized_data[j++] = data[i];
+ }
+ }
+ normalized_data[j] = 0;
+ }
+
+ domtext_reset_noenc(This);
+ hr = node_set_content(&This->node, normalized_data);
+
+ SysFreeString(normalized_data);
+ return hr;
}
static HRESULT WINAPI domtext_get_length(
--
2.14.1

View File

@ -1 +0,0 @@
Fixes: [42468] Remove CRs in domtext_put_data and add them in domtext_get_xml

View File

@ -1,4 +1,4 @@
From 05c9bc5495e04fc20d4a06efc4966f3d926e6468 Mon Sep 17 00:00:00 2001
From 75d82d2ec02b8cef45c942e677824e5df4ddf135 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 5 Jan 2015 18:11:53 +0100
Subject: [PATCH] nvapi: First implementation.
@ -25,10 +25,10 @@ Subject: [PATCH] nvapi: First implementation.
create mode 100644 include/nvapi.h
diff --git a/configure.ac b/configure.ac
index 38b4e3e..1083cb1 100644
index 87c507a..ce47cd0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -214,6 +214,12 @@ esac
@@ -215,6 +215,12 @@ esac
dnl enable_win16 defaults to yes on x86, to no on other CPUs
enable_win16=${enable_win16:-no}
enable_win64=${enable_win64:-no}
@ -41,8 +41,8 @@ index 38b4e3e..1083cb1 100644
dnl Disable winetest too if tests are disabled
enable_winetest=${enable_winetest:-$enable_tests}
@@ -3535,6 +3541,9 @@ WINE_CONFIG_TEST(dlls/ntdsapi/tests)
WINE_CONFIG_DLL(ntoskrnl.exe,,[implib],[ntoskrnl])
@@ -3543,6 +3549,9 @@ WINE_CONFIG_TEST(dlls/ntdsapi/tests)
WINE_CONFIG_DLL(ntoskrnl.exe)
WINE_CONFIG_DLL(ntprint)
WINE_CONFIG_TEST(dlls/ntprint/tests)
+WINE_CONFIG_DLL(nvapi,enable_win32)
@ -50,7 +50,7 @@ index 38b4e3e..1083cb1 100644
+WINE_CONFIG_DLL(nvapi64,enable_win64)
WINE_CONFIG_DLL(nvcuda)
WINE_CONFIG_TEST(dlls/nvcuda/tests)
WINE_CONFIG_DLL(objsel,,[clean])
WINE_CONFIG_DLL(objsel)
diff --git a/dlls/nvapi/Makefile.in b/dlls/nvapi/Makefile.in
new file mode 100644
index 0000000..606177f

View File

@ -1,34 +1,32 @@
From d08b2a4d6860db1cf9a7b3e5b7e2b7b1615783c3 Mon Sep 17 00:00:00 2001
From a62cf17f8a528ee62f75b2873d8d122f3259f4f2 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 3 Jan 2015 03:32:12 +0100
Subject: [PATCH] nvcuda: Add stub dll.
---
configure.ac | 3 +-
configure.ac | 1 +
dlls/nvcuda/Makefile.in | 6 +
dlls/nvcuda/nvcuda.c | 37 ++++++
dlls/nvcuda/nvcuda.rc | 33 ++++++
dlls/nvcuda/nvcuda.spec | 308 ++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 386 insertions(+), 1 deletion(-)
5 files changed, 385 insertions(+)
create mode 100644 dlls/nvcuda/Makefile.in
create mode 100644 dlls/nvcuda/nvcuda.c
create mode 100644 dlls/nvcuda/nvcuda.rc
create mode 100644 dlls/nvcuda/nvcuda.spec
diff --git a/configure.ac b/configure.ac
index 197d1e6..a49c31a 100644
index 91b3bdc..5da26eb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3534,7 +3534,8 @@ WINE_CONFIG_TEST(dlls/ntdsapi/tests)
WINE_CONFIG_DLL(ntoskrnl.exe,,[implib],[ntoskrnl])
@@ -3543,6 +3543,7 @@ WINE_CONFIG_TEST(dlls/ntdsapi/tests)
WINE_CONFIG_DLL(ntoskrnl.exe)
WINE_CONFIG_DLL(ntprint)
WINE_CONFIG_TEST(dlls/ntprint/tests)
-WINE_CONFIG_DLL(objsel)
+WINE_CONFIG_DLL(nvcuda)
+WINE_CONFIG_DLL(objsel,,[clean])
WINE_CONFIG_DLL(odbc32,,[implib])
WINE_CONFIG_DLL(odbccp32,,[implib])
WINE_CONFIG_TEST(dlls/odbccp32/tests)
WINE_CONFIG_DLL(objsel)
WINE_CONFIG_DLL(odbc32)
WINE_CONFIG_DLL(odbccp32)
diff --git a/dlls/nvcuda/Makefile.in b/dlls/nvcuda/Makefile.in
new file mode 100644
index 0000000..4b33278

View File

@ -1,7 +1,7 @@
From 2cda99ddf587014177b89227e5e13763d0e58ae6 Mon Sep 17 00:00:00 2001
From 78410816ed0347b61eccf018ab738e45cfc083ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 3 Jan 2015 03:39:11 +0100
Subject: nvcuda: First implementation. (rev 2)
Subject: [PATCH] nvcuda: First implementation. (rev 2)
Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Add static to a couple of functions
@ -23,19 +23,19 @@ Changes by Sebastian Lackner <sebastian@fds-team.de>:
create mode 100644 dlls/nvcuda/tests/nvcuda.c
diff --git a/configure.ac b/configure.ac
index 1e38434..8a98996 100644
index 5da26eb..87c507a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3158,6 +3158,7 @@ WINE_CONFIG_DLL(ntprint)
@@ -3544,6 +3544,7 @@ WINE_CONFIG_DLL(ntoskrnl.exe)
WINE_CONFIG_DLL(ntprint)
WINE_CONFIG_TEST(dlls/ntprint/tests)
WINE_CONFIG_DLL(nvcuda)
+WINE_CONFIG_TEST(dlls/nvcuda/tests)
WINE_CONFIG_DLL(objsel,,[clean])
WINE_CONFIG_DLL(odbc32,,[implib])
WINE_CONFIG_DLL(odbccp32,,[implib])
WINE_CONFIG_DLL(objsel)
WINE_CONFIG_DLL(odbc32)
WINE_CONFIG_DLL(odbccp32)
diff --git a/dlls/nvcuda/Makefile.in b/dlls/nvcuda/Makefile.in
index 4b33278c115..0921ce64cae 100644
index 4b33278..0921ce6 100644
--- a/dlls/nvcuda/Makefile.in
+++ b/dlls/nvcuda/Makefile.in
@@ -1,6 +1,7 @@
@ -48,7 +48,7 @@ index 4b33278c115..0921ce64cae 100644
RC_SRCS = nvcuda.rc
diff --git a/dlls/nvcuda/internal.c b/dlls/nvcuda/internal.c
new file mode 100644
index 00000000000..611e3108d0b
index 0000000..611e310
--- /dev/null
+++ b/dlls/nvcuda/internal.c
@@ -0,0 +1,515 @@
@ -568,7 +568,7 @@ index 00000000000..611e3108d0b
+ return CUDA_ERROR_UNKNOWN;
+}
diff --git a/dlls/nvcuda/nvcuda.c b/dlls/nvcuda/nvcuda.c
index 8b7eb9c37b0..3ef7c35059d 100644
index 8b7eb9c..3ef7c35 100644
--- a/dlls/nvcuda/nvcuda.c
+++ b/dlls/nvcuda/nvcuda.c
@@ -1,4 +1,5 @@
@ -2690,7 +2690,7 @@ index 8b7eb9c37b0..3ef7c35059d 100644
diff --git a/dlls/nvcuda/nvcuda.h b/dlls/nvcuda/nvcuda.h
new file mode 100644
index 00000000000..aaffe13af5f
index 0000000..aaffe13
--- /dev/null
+++ b/dlls/nvcuda/nvcuda.h
@@ -0,0 +1,29 @@
@ -2724,7 +2724,7 @@ index 00000000000..aaffe13af5f
+
+#endif
diff --git a/dlls/nvcuda/nvcuda.spec b/dlls/nvcuda/nvcuda.spec
index 279f7ab803b..621b8d59cf0 100644
index 279f7ab..621b8d5 100644
--- a/dlls/nvcuda/nvcuda.spec
+++ b/dlls/nvcuda/nvcuda.spec
@@ -1,36 +1,36 @@
@ -3238,7 +3238,7 @@ index 279f7ab803b..621b8d59cf0 100644
@ stub cuWGLGetDevice
diff --git a/dlls/nvcuda/tests/Makefile.in b/dlls/nvcuda/tests/Makefile.in
new file mode 100644
index 00000000000..81f9290e5aa
index 0000000..81f9290
--- /dev/null
+++ b/dlls/nvcuda/tests/Makefile.in
@@ -0,0 +1,4 @@
@ -3248,7 +3248,7 @@ index 00000000000..81f9290e5aa
+ nvcuda.c
diff --git a/dlls/nvcuda/tests/nvcuda.c b/dlls/nvcuda/tests/nvcuda.c
new file mode 100644
index 00000000000..fc8f300a28b
index 0000000..fc8f300
--- /dev/null
+++ b/dlls/nvcuda/tests/nvcuda.c
@@ -0,0 +1,168 @@
@ -3421,5 +3421,5 @@ index 00000000000..fc8f300a28b
+ test_TlsNotifyInterface();
+}
--
2.11.0
1.9.1

View File

@ -1,4 +1,4 @@
From e147b47f3aaee67eb898e97d79133ba2d42701ea Mon Sep 17 00:00:00 2001
From 1a242643243cb7b56a077442344a7e27fc857890 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 6 Jan 2015 05:16:36 +0100
Subject: [PATCH] nvcuvid: First implementation. (rev 2)
@ -6,14 +6,14 @@ Subject: [PATCH] nvcuvid: First implementation. (rev 2)
Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Convert structures properly where the Windows and Linux definition differs.
---
configure.ac | 1 +
configure.ac | 4 +-
dlls/nvcuvid/Makefile.in | 4 +
dlls/nvcuvid/nvcuvid.c | 537 ++++++++++++++++++++++++++++++++++++++++++++++
dlls/nvcuvid/nvcuvid.spec | 24 +++
include/Makefile.in | 2 +
include/cuviddec.h | 99 +++++++++
include/nvcuvid.h | 79 +++++++
7 files changed, 746 insertions(+)
7 files changed, 746 insertions(+), 3 deletions(-)
create mode 100644 dlls/nvcuvid/Makefile.in
create mode 100644 dlls/nvcuvid/nvcuvid.c
create mode 100644 dlls/nvcuvid/nvcuvid.spec
@ -21,17 +21,20 @@ Changes by Sebastian Lackner <sebastian@fds-team.de>:
create mode 100644 include/nvcuvid.h
diff --git a/configure.ac b/configure.ac
index 1083cb1..81d622d 100644
index ce47cd0..70f9486 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3546,6 +3546,7 @@ WINE_CONFIG_TEST(dlls/nvapi/tests)
@@ -3554,9 +3554,7 @@ WINE_CONFIG_TEST(dlls/nvapi/tests)
WINE_CONFIG_DLL(nvapi64,enable_win64)
WINE_CONFIG_DLL(nvcuda)
WINE_CONFIG_TEST(dlls/nvcuda/tests)
-WINE_CONFIG_DLL(objsel)
-WINE_CONFIG_DLL(odbc32)
-WINE_CONFIG_DLL(odbccp32)
+WINE_CONFIG_DLL(nvcuvid)
WINE_CONFIG_DLL(objsel,,[clean])
WINE_CONFIG_DLL(odbc32,,[implib])
WINE_CONFIG_DLL(odbccp32,,[implib])
WINE_CONFIG_TEST(dlls/odbccp32/tests)
WINE_CONFIG_DLL(odbccu32)
WINE_CONFIG_DLL(ole2.dll16,enable_win16)
diff --git a/dlls/nvcuvid/Makefile.in b/dlls/nvcuvid/Makefile.in
new file mode 100644
index 0000000..2c2dc8c

View File

@ -1,4 +1,4 @@
From 7eca2e6f67b31baf24ff6bebc7359953972bb944 Mon Sep 17 00:00:00 2001
From 094c56e89abefa4d2d4064991b360bebd13be1eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 8 Feb 2015 06:10:26 +0100
Subject: [PATCH] nvencodeapi: First implementation.
@ -21,21 +21,21 @@ Subject: [PATCH] nvencodeapi: First implementation.
create mode 100644 include/nvencodeapi.h
diff --git a/configure.ac b/configure.ac
index 81d622db34..1c5a1dab30 100644
index 70f9486..59d392a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3547,6 +3547,8 @@ WINE_CONFIG_DLL(nvapi64,enable_win64)
@@ -3555,6 +3555,8 @@ WINE_CONFIG_DLL(nvapi64,enable_win64)
WINE_CONFIG_DLL(nvcuda)
WINE_CONFIG_TEST(dlls/nvcuda/tests)
WINE_CONFIG_DLL(nvcuvid)
+WINE_CONFIG_DLL(nvencodeapi,enable_win32)
+WINE_CONFIG_DLL(nvencodeapi64,enable_win64)
WINE_CONFIG_DLL(objsel,,[clean])
WINE_CONFIG_DLL(odbc32,,[implib])
WINE_CONFIG_DLL(odbccp32,,[implib])
WINE_CONFIG_TEST(dlls/odbccp32/tests)
WINE_CONFIG_DLL(odbccu32)
WINE_CONFIG_DLL(ole2.dll16,enable_win16)
diff --git a/dlls/nvencodeapi/Makefile.in b/dlls/nvencodeapi/Makefile.in
new file mode 100644
index 0000000000..a2e58acaf0
index 0000000..a2e58ac
--- /dev/null
+++ b/dlls/nvencodeapi/Makefile.in
@@ -0,0 +1,4 @@
@ -45,7 +45,7 @@ index 0000000000..a2e58acaf0
+ nvencodeapi.c
diff --git a/dlls/nvencodeapi/nvencodeapi.c b/dlls/nvencodeapi/nvencodeapi.c
new file mode 100644
index 0000000000..91a33fd589
index 0000000..91a33fd
--- /dev/null
+++ b/dlls/nvencodeapi/nvencodeapi.c
@@ -0,0 +1,370 @@
@ -421,14 +421,14 @@ index 0000000000..91a33fd589
+}
diff --git a/dlls/nvencodeapi/nvencodeapi.spec b/dlls/nvencodeapi/nvencodeapi.spec
new file mode 100644
index 0000000000..11d74e82d9
index 0000000..11d74e8
--- /dev/null
+++ b/dlls/nvencodeapi/nvencodeapi.spec
@@ -0,0 +1 @@
+@ stdcall NvEncodeAPICreateInstance(ptr)
diff --git a/dlls/nvencodeapi64/Makefile.in b/dlls/nvencodeapi64/Makefile.in
new file mode 100644
index 0000000000..8297ec352b
index 0000000..8297ec3
--- /dev/null
+++ b/dlls/nvencodeapi64/Makefile.in
@@ -0,0 +1,5 @@
@ -439,13 +439,13 @@ index 0000000000..8297ec352b
+ nvencodeapi.c
diff --git a/dlls/nvencodeapi64/nvencodeapi64.spec b/dlls/nvencodeapi64/nvencodeapi64.spec
new file mode 100644
index 0000000000..11d74e82d9
index 0000000..11d74e8
--- /dev/null
+++ b/dlls/nvencodeapi64/nvencodeapi64.spec
@@ -0,0 +1 @@
+@ stdcall NvEncodeAPICreateInstance(ptr)
diff --git a/include/Makefile.in b/include/Makefile.in
index 8b23127251..06dcaba694 100644
index 8b23127..06dcaba 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -480,6 +480,7 @@ SOURCES = \
@ -458,7 +458,7 @@ index 8b23127251..06dcaba694 100644
objectarray.idl \
diff --git a/include/nvencodeapi.h b/include/nvencodeapi.h
new file mode 100644
index 0000000000..45e9fb97f1
index 0000000..45e9fb9
--- /dev/null
+++ b/include/nvencodeapi.h
@@ -0,0 +1,281 @@
@ -744,5 +744,5 @@ index 0000000000..45e9fb97f1
+
+#endif /* __WINE_NVENCODEAPI_H */
--
2.16.1
1.9.1

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "5ec6b8f807f61ee77b9a96d94798c8e3f3db7af4"
echo "f9e1dbb83d850a2f7cb17079e02de139e2f8b920"
}
# Show version information
@ -911,9 +911,6 @@ patch_enable ()
msvfw32-ICGetDisplayFormat)
enable_msvfw32_ICGetDisplayFormat="$2"
;;
msxml3-Normalize_Data)
enable_msxml3_Normalize_Data="$2"
;;
ntdll-APC_Performance)
enable_ntdll_APC_Performance="$2"
;;
@ -5487,21 +5484,6 @@ if test "$enable_msvfw32_ICGetDisplayFormat" -eq 1; then
) >> "$patchlist"
fi
# Patchset msxml3-Normalize_Data
# |
# | This patchset fixes the following Wine bugs:
# | * [#42468] Remove CRs in domtext_put_data and add them in domtext_get_xml
# |
# | Modified files:
# | * dlls/msxml3/tests/domdoc.c, dlls/msxml3/text.c
# |
if test "$enable_msxml3_Normalize_Data" -eq 1; then
patch_apply msxml3-Normalize_Data/0001-msxml3-Remove-CRs-in-domtext_put_data-and-add-them-i.patch
(
printf '%s\n' '+ { "Alex Henrie", "msxml3: Remove CRs in domtext_put_data and add them in domtext_get_xml.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-APC_Performance
# |
# | Modified files:

View File

@ -1,17 +1,17 @@
From 10dda0bfac5b79169b84f5a6eb97f0a8aee7a4eb Mon Sep 17 00:00:00 2001
From 60b2a9f4bbbda5675491ae323b97fdcc84dacc4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Feb 2015 04:25:29 +0100
Subject: shell32: Correct indentation in shfileop.c.
Subject: [PATCH] shell32: Correct indentation in shfileop.c.
---
dlls/shell32/shlfileop.c | 728 +++++++++++++++++++++++------------------------
1 file changed, 364 insertions(+), 364 deletions(-)
dlls/shell32/shlfileop.c | 726 +++++++++++++++++++++++------------------------
1 file changed, 363 insertions(+), 363 deletions(-)
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c
index 07635c8..ef2532d 100644
index c18a3e9..91d5781 100644
--- a/dlls/shell32/shlfileop.c
+++ b/dlls/shell32/shlfileop.c
@@ -164,7 +164,7 @@ static INT_PTR ConfirmMsgBox_Init(HWND hDlg, LPARAM lParam)
@@ -165,7 +165,7 @@ static INT_PTR ConfirmMsgBox_Init(HWND hDlg, LPARAM lParam)
width = r.right - r.left;
height = r.bottom - r.top - yOffset;
MoveWindow(hDlg, (GetSystemMetrics(SM_CXSCREEN) - width)/2,
@ -20,7 +20,7 @@ index 07635c8..ef2532d 100644
confirm_msg_move_button(hDlg, IDCANCEL, &xPos, yOffset, info->bYesToAll);
confirm_msg_move_button(hDlg, IDNO, &xPos, yOffset, TRUE);
@@ -206,107 +206,107 @@ static int SHELL_ConfirmMsgBox(HWND hWnd, LPWSTR lpszText, LPWSTR lpszCaption, H
@@ -207,107 +207,107 @@ static int SHELL_ConfirmMsgBox(HWND hWnd, LPWSTR lpszText, LPWSTR lpszCaption, H
/* confirmation dialogs content */
typedef struct
{
@ -185,7 +185,7 @@ index 07635c8..ef2532d 100644
}
BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir)
@@ -316,23 +316,23 @@ BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir)
@@ -317,18 +317,18 @@ BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir)
static DWORD SHELL32_AnsiToUnicodeBuf(LPCSTR aPath, LPWSTR *wPath, DWORD minChars)
{
@ -194,7 +194,7 @@ index 07635c8..ef2532d 100644
- if (len < minChars)
- len = minChars;
-
- *wPath = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
- *wPath = heap_alloc(len * sizeof(WCHAR));
- if (*wPath)
- {
- MultiByteToWideChar(CP_ACP, 0, aPath, -1, *wPath, len);
@ -206,7 +206,7 @@ index 07635c8..ef2532d 100644
+ if (len < minChars)
+ len = minChars;
+
+ *wPath = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ *wPath = heap_alloc(len * sizeof(WCHAR));
+ if (*wPath)
+ {
+ MultiByteToWideChar(CP_ACP, 0, aPath, -1, *wPath, len);
@ -215,14 +215,8 @@ index 07635c8..ef2532d 100644
+ return E_OUTOFMEMORY;
}
static void SHELL32_FreeUnicodeBuf(LPWSTR wPath)
{
- HeapFree(GetProcessHeap(), 0, wPath);
+ HeapFree(GetProcessHeap(), 0, wPath);
}
HRESULT WINAPI SHIsFileAvailableOffline(LPCWSTR path, LPDWORD status)
@@ -375,8 +375,8 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI)
@@ -371,8 +371,8 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI)
ret = SHNotifyRemoveDirectoryW(pszDir);
return ret == ERROR_PATH_NOT_FOUND ?
@ -233,7 +227,7 @@ index 07635c8..ef2532d 100644
}
/**************************************************************************
@@ -396,41 +396,41 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI)
@@ -392,41 +392,41 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI)
*/
static DWORD SHNotifyCreateDirectoryA(LPCSTR path, LPSECURITY_ATTRIBUTES sec)
{
@ -246,7 +240,7 @@ index 07635c8..ef2532d 100644
- if (!retCode)
- {
- retCode = SHNotifyCreateDirectoryW(wPath, sec);
- SHELL32_FreeUnicodeBuf(wPath);
- heap_free(wPath);
- }
- return retCode;
+ LPWSTR wPath;
@ -258,7 +252,7 @@ index 07635c8..ef2532d 100644
+ if (!retCode)
+ {
+ retCode = SHNotifyCreateDirectoryW(wPath, sec);
+ SHELL32_FreeUnicodeBuf(wPath);
+ heap_free(wPath);
+ }
+ return retCode;
}
@ -298,7 +292,7 @@ index 07635c8..ef2532d 100644
}
/************************************************************************
@@ -450,51 +450,51 @@ BOOL WINAPI Win32CreateDirectoryAW(LPCVOID path, LPSECURITY_ATTRIBUTES sec)
@@ -446,51 +446,51 @@ BOOL WINAPI Win32CreateDirectoryAW(LPCVOID path, LPSECURITY_ATTRIBUTES sec)
*/
static DWORD SHNotifyRemoveDirectoryA(LPCSTR path)
{
@ -311,7 +305,7 @@ index 07635c8..ef2532d 100644
- if (!retCode)
- {
- retCode = SHNotifyRemoveDirectoryW(wPath);
- SHELL32_FreeUnicodeBuf(wPath);
- heap_free(wPath);
- }
- return retCode;
+ LPWSTR wPath;
@ -323,7 +317,7 @@ index 07635c8..ef2532d 100644
+ if (!retCode)
+ {
+ retCode = SHNotifyRemoveDirectoryW(wPath);
+ SHELL32_FreeUnicodeBuf(wPath);
+ heap_free(wPath);
+ }
+ return retCode;
}
@ -383,7 +377,7 @@ index 07635c8..ef2532d 100644
}
/************************************************************************
@@ -514,52 +514,52 @@ BOOL WINAPI Win32RemoveDirectoryAW(LPCVOID path)
@@ -510,52 +510,52 @@ BOOL WINAPI Win32RemoveDirectoryAW(LPCVOID path)
*/
static DWORD SHNotifyDeleteFileA(LPCSTR path)
{
@ -396,7 +390,7 @@ index 07635c8..ef2532d 100644
- if (!retCode)
- {
- retCode = SHNotifyDeleteFileW(wPath);
- SHELL32_FreeUnicodeBuf(wPath);
- heap_free(wPath);
- }
- return retCode;
+ LPWSTR wPath;
@ -408,7 +402,7 @@ index 07635c8..ef2532d 100644
+ if (!retCode)
+ {
+ retCode = SHNotifyDeleteFileW(wPath);
+ SHELL32_FreeUnicodeBuf(wPath);
+ heap_free(wPath);
+ }
+ return retCode;
}
@ -470,7 +464,7 @@ index 07635c8..ef2532d 100644
}
/************************************************************************
@@ -576,36 +576,36 @@ DWORD WINAPI Win32DeleteFileAW(LPCVOID path)
@@ -572,36 +572,36 @@ DWORD WINAPI Win32DeleteFileAW(LPCVOID path)
*/
static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest)
{
@ -537,7 +531,7 @@ index 07635c8..ef2532d 100644
}
/************************************************************************
@@ -624,24 +624,24 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest)
@@ -620,24 +620,24 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest)
*/
static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists)
{
@ -576,7 +570,7 @@ index 07635c8..ef2532d 100644
}
/*************************************************************************
@@ -671,9 +671,9 @@ static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists)
@@ -667,9 +667,9 @@ static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists)
*/
DWORD WINAPI SHCreateDirectory(HWND hWnd, LPCVOID path)
{
@ -589,7 +583,7 @@ index 07635c8..ef2532d 100644
}
/*************************************************************************
@@ -710,18 +710,18 @@ DWORD WINAPI SHCreateDirectory(HWND hWnd, LPCVOID path)
@@ -706,18 +706,18 @@ DWORD WINAPI SHCreateDirectory(HWND hWnd, LPCVOID path)
*/
int WINAPI SHCreateDirectoryExA(HWND hWnd, LPCSTR path, LPSECURITY_ATTRIBUTES sec)
{
@ -602,7 +596,7 @@ index 07635c8..ef2532d 100644
- if (!retCode)
- {
- retCode = SHCreateDirectoryExW(hWnd, wPath, sec);
- SHELL32_FreeUnicodeBuf(wPath);
- heap_free(wPath);
- }
- return retCode;
+ LPWSTR wPath;
@ -614,13 +608,13 @@ index 07635c8..ef2532d 100644
+ if (!retCode)
+ {
+ retCode = SHCreateDirectoryExW(hWnd, wPath, sec);
+ SHELL32_FreeUnicodeBuf(wPath);
+ heap_free(wPath);
+ }
+ return retCode;
}
/*************************************************************************
@@ -731,49 +731,49 @@ int WINAPI SHCreateDirectoryExA(HWND hWnd, LPCSTR path, LPSECURITY_ATTRIBUTES se
@@ -727,49 +727,49 @@ int WINAPI SHCreateDirectoryExA(HWND hWnd, LPCSTR path, LPSECURITY_ATTRIBUTES se
*/
int WINAPI SHCreateDirectoryExW(HWND hWnd, LPCWSTR path, LPSECURITY_ATTRIBUTES sec)
{
@ -713,7 +707,7 @@ index 07635c8..ef2532d 100644
}
/*************************************************************************
@@ -793,25 +793,25 @@ int WINAPI SHCreateDirectoryExW(HWND hWnd, LPCWSTR path, LPSECURITY_ATTRIBUTES s
@@ -789,25 +789,25 @@ int WINAPI SHCreateDirectoryExW(HWND hWnd, LPCWSTR path, LPSECURITY_ATTRIBUTES s
*/
static DWORD SHFindAttrW(LPCWSTR pName, BOOL fileOnly)
{
@ -758,7 +752,7 @@ index 07635c8..ef2532d 100644
}
/*************************************************************************
@@ -825,27 +825,27 @@ static DWORD SHFindAttrW(LPCWSTR pName, BOOL fileOnly)
@@ -821,27 +821,27 @@ static DWORD SHFindAttrW(LPCWSTR pName, BOOL fileOnly)
*/
static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more)
{
@ -807,7 +801,7 @@ index 07635c8..ef2532d 100644
}
/*************************************************************************
* SHFileOperationA [SHELL32.@]
@@ -865,42 +865,42 @@ static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more)
@@ -861,42 +861,42 @@ static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more)
*/
int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
{
@ -831,12 +825,12 @@ index 07635c8..ef2532d 100644
- if (ForFree)
- {
- retCode = SHFileOperationW(&nFileOp);
- HeapFree(GetProcessHeap(), 0, ForFree); /* we cannot use wString, it was changed */
- heap_free(ForFree); /* we cannot use wString, it was changed */
- break;
- }
- else
- {
- wString = ForFree = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));
- wString = ForFree = heap_alloc(size * sizeof(WCHAR));
- if (ForFree) continue;
- retCode = ERROR_OUTOFMEMORY;
- nFileOp.fAnyOperationsAborted = TRUE;
@ -867,12 +861,12 @@ index 07635c8..ef2532d 100644
+ if (ForFree)
+ {
+ retCode = SHFileOperationW(&nFileOp);
+ HeapFree(GetProcessHeap(), 0, ForFree); /* we cannot use wString, it was changed */
+ heap_free(ForFree); /* we cannot use wString, it was changed */
+ break;
+ }
+ else
+ {
+ wString = ForFree = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));
+ wString = ForFree = heap_alloc(size * sizeof(WCHAR));
+ if (ForFree) continue;
+ retCode = ERROR_OUTOFMEMORY;
+ nFileOp.fAnyOperationsAborted = TRUE;
@ -886,7 +880,7 @@ index 07635c8..ef2532d 100644
}
#define ERROR_SHELL_INTERNAL_FILE_NOT_FOUND 1026
@@ -930,7 +930,7 @@ typedef struct
@@ -926,7 +926,7 @@ typedef struct
static inline void grow_list(FILE_LIST *list)
{
FILE_ENTRY *new = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, list->feFiles,
@ -895,16 +889,16 @@ index 07635c8..ef2532d 100644
list->feFiles = new;
list->num_alloc *= 2;
}
@@ -1022,7 +1022,7 @@ static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles)
@@ -1018,7 +1018,7 @@ static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles)
/* empty list */
if (!szFiles[0])
return ERROR_ACCESS_DENIED;
-
+
flList->feFiles = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
flList->num_alloc * sizeof(FILE_ENTRY));
flList->feFiles = heap_alloc_zero(flList->num_alloc * sizeof(FILE_ENTRY));
@@ -1126,7 +1126,7 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST
while (*ptr)
@@ -1121,7 +1121,7 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST
/* Don't ask the user about overwriting files when he accepted to overwrite the
folder. FIXME: this is not exactly what Windows does - e.g. there would be
an additional confirmation for a nested folder */
@ -913,7 +907,7 @@ index 07635c8..ef2532d 100644
SHFileOperationW(&fileOp);
}
@@ -1339,7 +1339,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
@@ -1334,7 +1334,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
/* Windows also checks only the first item */
bTrash = (lpFileOp->fFlags & FOF_ALLOWUNDO)
@ -922,7 +916,7 @@ index 07635c8..ef2532d 100644
if (!(lpFileOp->fFlags & FOF_NOCONFIRMATION) || (!bTrash && lpFileOp->fFlags & FOF_WANTNUKEWARNING))
if (!confirm_delete_list(lpFileOp->hwnd, lpFileOp->fFlags, bTrash, flFrom))
@@ -1374,11 +1374,11 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
@@ -1369,11 +1369,11 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
break;
}
}
@ -936,7 +930,7 @@ index 07635c8..ef2532d 100644
else
ret = SHELL_DeleteDirectoryW(lpFileOp->hwnd, fileEntry->szFullPath, FALSE);
@@ -1503,8 +1503,8 @@ static int rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con
@@ -1498,8 +1498,8 @@ static int rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con
static void check_flags(FILEOP_FLAGS fFlags)
{
WORD wUnsupportedFlags = FOF_NO_CONNECTED_ELEMENTS |
@ -947,7 +941,7 @@ index 07635c8..ef2532d 100644
if (fFlags & wUnsupportedFlags)
FIXME("Unsupported flags: %04x\n", fFlags);
@@ -1587,19 +1587,19 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
@@ -1582,19 +1582,19 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
*/
void WINAPI SHFreeNameMappings(HANDLE hNameMapping)
{
@ -977,7 +971,7 @@ index 07635c8..ef2532d 100644
}
/*************************************************************************
@@ -1705,14 +1705,14 @@ DWORD WINAPI SheChangeDirW(LPWSTR path)
@@ -1700,14 +1700,14 @@ DWORD WINAPI SheChangeDirW(LPWSTR path)
}
/*************************************************************************
@ -998,5 +992,5 @@ index 07635c8..ef2532d 100644
--
2.8.0
1.9.1

View File

@ -1,7 +1,8 @@
From 9cd5e28f85b03c762b3e78d5dd26eb2833f4d385 Mon Sep 17 00:00:00 2001
From 8102136961bf8ed57bcde4b74548562e5e3e21a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 26 Feb 2015 23:21:26 +0100
Subject: shell32: Pass FILE_INFORMATION into SHNotify* functions.
Subject: [PATCH] shell32: Pass FILE_INFORMATION into SHNotify*
functions.
Preparation of the progressbar work. Based on a patch by Huw Campbell.
---
@ -9,7 +10,7 @@ Preparation of the progressbar work. Based on a patch by Huw Campbell.
1 file changed, 98 insertions(+), 103 deletions(-)
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c
index ea26745..e0d9b3e 100644
index 91d5781..71de462 100644
--- a/dlls/shell32/shlfileop.c
+++ b/dlls/shell32/shlfileop.c
@@ -59,16 +59,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
@ -72,7 +73,7 @@ index ea26745..e0d9b3e 100644
/* Confirm dialogs with an optional "Yes To All" as used in file operations confirmations
*/
static const WCHAR CONFIRM_MSG_PROP[] = {'W','I','N','E','_','C','O','N','F','I','R','M',0};
@@ -347,7 +373,7 @@ HRESULT WINAPI SHIsFileAvailableOffline(LPCWSTR path, LPDWORD status)
@@ -343,7 +369,7 @@ HRESULT WINAPI SHIsFileAvailableOffline(LPCWSTR path, LPDWORD status)
* Asks for confirmation when bShowUI is true and deletes the directory and
* all its subdirectories and files if necessary.
*/
@ -81,7 +82,7 @@ index ea26745..e0d9b3e 100644
{
DWORD ret = 0;
HANDLE hFind;
@@ -357,16 +383,18 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI)
@@ -353,16 +379,18 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI)
PathCombineW(szTemp, pszDir, wWildcardFile);
hFind = FindFirstFileW(szTemp, &wfd);
@ -104,7 +105,7 @@ index ea26745..e0d9b3e 100644
} while (!ret && FindNextFileW(hFind, &wfd));
}
FindClose(hFind);
@@ -497,22 +525,9 @@ BOOL WINAPI Win32RemoveDirectoryAW(LPCVOID path)
@@ -493,22 +521,9 @@ BOOL WINAPI Win32RemoveDirectoryAW(LPCVOID path)
return (SHNotifyRemoveDirectoryA(path) == ERROR_SUCCESS);
}
@ -130,16 +131,16 @@ index ea26745..e0d9b3e 100644
{
LPWSTR wPath;
DWORD retCode;
@@ -522,7 +537,7 @@ static DWORD SHNotifyDeleteFileA(LPCSTR path)
@@ -518,7 +533,7 @@ static DWORD SHNotifyDeleteFileA(LPCSTR path)
retCode = SHELL32_AnsiToUnicodeBuf(path, &wPath, 0);
if (!retCode)
{
- retCode = SHNotifyDeleteFileW(wPath);
+ retCode = SHNotifyDeleteFileW(op, wPath);
SHELL32_FreeUnicodeBuf(wPath);
heap_free(wPath);
}
return retCode;
@@ -530,12 +545,14 @@ static DWORD SHNotifyDeleteFileA(LPCSTR path)
@@ -526,12 +541,14 @@ static DWORD SHNotifyDeleteFileA(LPCSTR path)
/***********************************************************************/
@ -155,7 +156,7 @@ index ea26745..e0d9b3e 100644
ret = DeleteFileW(path);
if (!ret)
{
@@ -558,8 +575,8 @@ static DWORD SHNotifyDeleteFileW(LPCWSTR path)
@@ -554,8 +571,8 @@ static DWORD SHNotifyDeleteFileW(LPCWSTR path)
DWORD WINAPI Win32DeleteFileAW(LPCVOID path)
{
if (SHELL_OsIsUnicode())
@ -166,7 +167,7 @@ index ea26745..e0d9b3e 100644
}
/************************************************************************
@@ -568,18 +585,21 @@ DWORD WINAPI Win32DeleteFileAW(LPCVOID path)
@@ -564,18 +581,21 @@ DWORD WINAPI Win32DeleteFileAW(LPCVOID path)
* Moves a file. Also triggers a change notify if one exists.
*
* PARAMS
@ -189,7 +190,7 @@ index ea26745..e0d9b3e 100644
ret = MoveFileExW(src, dest, MOVEFILE_REPLACE_EXISTING);
/* MOVEFILE_REPLACE_EXISTING fails with dirs, so try MoveFile */
@@ -614,6 +634,7 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest)
@@ -610,6 +630,7 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest)
* Copies a file. Also triggers a change notify if one exists.
*
* PARAMS
@ -197,7 +198,7 @@ index ea26745..e0d9b3e 100644
* src [I] path to source file to move
* dest [I] path to target file to move to
* bFailIfExists [I] if TRUE, the target file will not be overwritten if
@@ -622,13 +643,15 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest)
@@ -618,13 +639,15 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest)
* RETURNS
* ERROR_SUCCESS if successful
*/
@ -214,7 +215,7 @@ index ea26745..e0d9b3e 100644
/* Destination file may already exist with read only attribute */
attribs = GetFileAttributesW(dest);
if (IsAttrib(attribs, FILE_ATTRIBUTE_READONLY))
@@ -904,30 +927,6 @@ int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
@@ -899,30 +922,6 @@ int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
return retCode;
}
@ -245,7 +246,7 @@ index ea26745..e0d9b3e 100644
static inline void grow_list(FILE_LIST *list)
{
FILE_ENTRY *new = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, list->feFiles,
@@ -1091,7 +1090,7 @@ static void destroy_file_list(FILE_LIST *flList)
@@ -1085,7 +1084,7 @@ static void destroy_file_list(FILE_LIST *flList)
static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWSTR szDestPath)
{
WCHAR szFrom[MAX_PATH], szTo[MAX_PATH];
@ -254,7 +255,7 @@ index ea26745..e0d9b3e 100644
static const WCHAR wildCardFiles[] = {'*','.','*',0};
@@ -1119,17 +1118,16 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST
@@ -1113,17 +1112,16 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST
PathCombineW(szFrom, feFrom->szFullPath, wildCardFiles);
szFrom[lstrlenW(szFrom) + 1] = '\0';
@ -280,7 +281,7 @@ index ea26745..e0d9b3e 100644
}
static BOOL copy_file_to_file(FILE_OPERATION *op, const WCHAR *szFrom, const WCHAR *szTo)
@@ -1140,7 +1138,7 @@ static BOOL copy_file_to_file(FILE_OPERATION *op, const WCHAR *szFrom, const WCH
@@ -1134,7 +1132,7 @@ static BOOL copy_file_to_file(FILE_OPERATION *op, const WCHAR *szFrom, const WCH
return FALSE;
}
@ -289,7 +290,7 @@ index ea26745..e0d9b3e 100644
}
/* copy a file or directory to another directory */
@@ -1180,7 +1178,7 @@ static void create_dest_dirs(LPCWSTR szDestDir)
@@ -1174,7 +1172,7 @@ static void create_dest_dirs(LPCWSTR szDestDir)
}
/* the FO_COPY operation */
@ -298,7 +299,7 @@ index ea26745..e0d9b3e 100644
{
DWORD i;
const FILE_ENTRY *entryToCopy;
@@ -1203,7 +1201,7 @@ static int copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *fl
@@ -1197,7 +1195,7 @@ static int copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *fl
fileDest = &flTo->feFiles[0];
}
@ -307,7 +308,7 @@ index ea26745..e0d9b3e 100644
{
if (flFrom->bAnyFromWildcard)
return ERROR_CANCELLED;
@@ -1255,8 +1253,7 @@ static int copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *fl
@@ -1249,8 +1247,7 @@ static int copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *fl
{
entryToCopy = &flFrom->feFiles[i];
@ -317,7 +318,7 @@ index ea26745..e0d9b3e 100644
{
fileDest = &flTo->feFiles[i];
}
@@ -1328,7 +1325,7 @@ static BOOL confirm_delete_list(HWND hWnd, DWORD fFlags, BOOL fTrash, const FILE
@@ -1322,7 +1319,7 @@ static BOOL confirm_delete_list(HWND hWnd, DWORD fFlags, BOOL fTrash, const FILE
}
/* the FO_DELETE operation */
@ -326,7 +327,7 @@ index ea26745..e0d9b3e 100644
{
const FILE_ENTRY *fileEntry;
DWORD i;
@@ -1339,13 +1336,13 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
@@ -1333,13 +1330,13 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
return ERROR_SUCCESS;
/* Windows also checks only the first item */
@ -344,7 +345,7 @@ index ea26745..e0d9b3e 100644
return 0;
}
@@ -1354,7 +1351,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
@@ -1348,7 +1345,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
fileEntry = &flFrom->feFiles[i];
if (!IsAttribFile(fileEntry->attributes) &&
@ -353,7 +354,7 @@ index ea26745..e0d9b3e 100644
continue;
if (bTrash)
@@ -1364,14 +1361,14 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
@@ -1358,14 +1355,14 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
continue;
/* Note: Windows silently deletes the file in such a situation, we show a dialog */
@ -371,7 +372,7 @@ index ea26745..e0d9b3e 100644
break;
}
}
@@ -1381,7 +1378,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
@@ -1375,7 +1372,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
ret = DeleteFileW(fileEntry->szFullPath) ?
ERROR_SUCCESS : GetLastError();
else
@ -380,7 +381,7 @@ index ea26745..e0d9b3e 100644
if (ret)
return ret;
@@ -1391,16 +1388,16 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
@@ -1385,16 +1382,16 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom)
}
/* moves a file or directory to another directory */
@ -400,7 +401,7 @@ index ea26745..e0d9b3e 100644
{
DWORD i;
INT mismatched = 0;
@@ -1413,14 +1410,12 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
@@ -1407,14 +1404,12 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
if (!flTo->dwNumFiles)
return ERROR_FILE_NOT_FOUND;
@ -417,7 +418,7 @@ index ea26745..e0d9b3e 100644
flFrom->dwNumFiles > flTo->dwNumFiles)
{
return ERROR_CANCELLED;
@@ -1433,7 +1428,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
@@ -1427,7 +1422,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
return ret;
}
@ -426,7 +427,7 @@ index ea26745..e0d9b3e 100644
mismatched = flFrom->dwNumFiles - flTo->dwNumFiles;
fileDest = &flTo->feFiles[0];
@@ -1444,7 +1439,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
@@ -1438,7 +1433,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
if (!PathFileExistsW(fileDest->szDirectory))
return ERROR_CANCELLED;
@ -435,7 +436,7 @@ index ea26745..e0d9b3e 100644
{
if (i >= flTo->dwNumFiles)
break;
@@ -1458,9 +1453,9 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
@@ -1452,9 +1447,9 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
}
if (fileDest->bExists && IsAttribDir(fileDest->attributes))
@ -447,7 +448,7 @@ index ea26745..e0d9b3e 100644
}
if (mismatched > 0)
@@ -1475,7 +1470,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
@@ -1469,7 +1464,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
}
/* the FO_RENAME files */
@ -456,7 +457,7 @@ index ea26745..e0d9b3e 100644
{
const FILE_ENTRY *feFrom;
const FILE_ENTRY *feTo;
@@ -1497,7 +1492,7 @@ static int rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con
@@ -1491,7 +1486,7 @@ static int rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con
if (feTo->bExists)
return ERROR_ALREADY_EXISTS;
@ -465,7 +466,7 @@ index ea26745..e0d9b3e 100644
}
/* alert the user if an unsupported flag is used */
@@ -1544,16 +1539,16 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
@@ -1538,16 +1533,16 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
switch (lpFileOp->wFunc)
{
case FO_COPY:
@ -487,5 +488,5 @@ index ea26745..e0d9b3e 100644
default:
ret = ERROR_INVALID_PARAMETER;
--
2.5.0
1.9.1

View File

@ -1,14 +1,15 @@
From f4ffa65bb956b052aa50faa9d7854b67ced4ef0f Mon Sep 17 00:00:00 2001
From 357fccddcd9891844a0d973d39b1bde6f6163033 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 15 Aug 2015 21:09:22 +0200
Subject: shell32: Set SFGAO_HASSUBFOLDER correctly for unixfs.
Subject: [PATCH] shell32: Set SFGAO_HASSUBFOLDER correctly for
unixfs.
---
dlls/shell32/shfldr_unixfs.c | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/dlls/shell32/shfldr_unixfs.c b/dlls/shell32/shfldr_unixfs.c
index e74e4dbf55a..a57bc68a408 100644
index 92d1728..ac24871 100644
--- a/dlls/shell32/shfldr_unixfs.c
+++ b/dlls/shell32/shfldr_unixfs.c
@@ -1143,8 +1143,10 @@ static HRESULT WINAPI ShellFolder2_GetAttributesOf(IShellFolder2* iface, UINT ci
@ -25,7 +26,7 @@ index e74e4dbf55a..a57bc68a408 100644
if (!UNIXFS_filename_from_shitemid(apidl[i], pszRelativePath))
return E_INVALIDARG;
@@ -1154,8 +1156,23 @@ static HRESULT WINAPI ShellFolder2_GetAttributesOf(IShellFolder2* iface, UINT ci
HeapFree( GetProcessHeap(), 0, dos_name );
heap_free( dos_name );
}
if (_ILIsFolder(apidl[i]))
- *attrs |= SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_FILESYSANCESTOR |
@ -51,5 +52,5 @@ index e74e4dbf55a..a57bc68a408 100644
*attrs |= SFGAO_STREAM;
if ((*attrs & SFGAO_LINK))
--
2.14.1
1.9.1

View File

@ -1,8 +1,8 @@
From e2c2ef9325bede76a46a6bc557ba7bddce9ceab8 Mon Sep 17 00:00:00 2001
From 9f4fcf82f0a37cc856a191ec9d1f178b9df722c0 Mon Sep 17 00:00:00 2001
From: Mark Jansen <learn0more+wine@gmail.com>
Date: Sun, 4 Jun 2017 22:12:20 +0200
Subject: shell32: Properly fail when a data object cannot be instantiated and
expand environment strings in ShellExecute
Subject: [PATCH] shell32: Properly fail when a data object cannot be
instantiated and expand environment strings in ShellExecute
---
dlls/shell32/shlexec.c | 47 +++++++++++++++++++++++++++++++++++++++++++-
@ -10,10 +10,10 @@ Subject: shell32: Properly fail when a data object cannot be instantiated and
2 files changed, 53 insertions(+), 8 deletions(-)
diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c
index c0ef53ab8e7..0cf112b6373 100644
index 3034008..8d6364b 100644
--- a/dlls/shell32/shlexec.c
+++ b/dlls/shell32/shlexec.c
@@ -1299,6 +1299,7 @@ static HRESULT shellex_load_object_and_run( HKEY hkey, LPCGUID guid, LPSHELLEXEC
@@ -1317,6 +1317,7 @@ static HRESULT shellex_load_object_and_run( HKEY hkey, LPCGUID guid, LPSHELLEXEC
if ( !dataobj )
{
ERR("failed to get data object\n");
@ -21,7 +21,7 @@ index c0ef53ab8e7..0cf112b6373 100644
goto end;
}
@@ -1557,6 +1558,26 @@ static void do_error_dialog( UINT_PTR retval, HWND hwnd )
@@ -1575,6 +1576,26 @@ static void do_error_dialog( UINT_PTR retval, HWND hwnd )
MessageBoxW(hwnd, msg, NULL, MB_ICONERROR);
}
@ -48,7 +48,7 @@ index c0ef53ab8e7..0cf112b6373 100644
/*************************************************************************
* SHELL_execute [Internal]
*/
@@ -1570,7 +1591,7 @@ static BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
@@ -1588,7 +1609,7 @@ static BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
SEE_MASK_UNICODE | SEE_MASK_ASYNCOK | SEE_MASK_HMONITOR;
WCHAR parametersBuffer[1024], dirBuffer[MAX_PATH], wcmdBuffer[1024];
@ -57,7 +57,7 @@ index c0ef53ab8e7..0cf112b6373 100644
DWORD dwApplicationNameLen = MAX_PATH+2;
DWORD parametersLen = sizeof(parametersBuffer) / sizeof(WCHAR);
DWORD wcmdLen = sizeof(wcmdBuffer) / sizeof(WCHAR);
@@ -1676,6 +1697,29 @@ static BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
@@ -1694,6 +1715,29 @@ static BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
TRACE("-- idlist=%p (%s)\n", sei_tmp.lpIDList, debugstr_w(wszApplicationName));
}
@ -87,19 +87,19 @@ index c0ef53ab8e7..0cf112b6373 100644
if ( ERROR_SUCCESS == ShellExecute_FromContextMenu( &sei_tmp ) )
{
sei->hInstApp = (HINSTANCE) 33;
@@ -1846,6 +1890,7 @@ static BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
@@ -1864,6 +1908,7 @@ static BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
retval = (UINT_PTR)ShellExecuteW(sei_tmp.hwnd, sei_tmp.lpVerb, lpstrTmpFile, NULL, NULL, 0);
}
+end:
TRACE("retval %lu\n", retval);
HeapFree(GetProcessHeap(), 0, wszApplicationName);
heap_free(wszApplicationName);
diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index 9db12ce42a8..f0f51f54568 100644
index 7cdae87..f5f1d77 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -1827,7 +1827,7 @@ static fileurl_tests_t fileurl_tests[]=
@@ -1829,7 +1829,7 @@ static fileurl_tests_t fileurl_tests[]=
{"file:///", "%%TMPDIR%%\\test file.shlexec", 0, 0},
/* Test shortcuts vs. URLs */
@ -108,7 +108,7 @@ index 9db12ce42a8..f0f51f54568 100644
/* Confuse things by mixing protocols */
{"file://", "shlproto://foo/bar", USE_COLON, 0},
@@ -1973,11 +1973,11 @@ static void test_urls(void)
@@ -1975,11 +1975,11 @@ static void test_urls(void)
}
/* A .lnk ending does not turn a URL into a shortcut */
@ -123,7 +123,7 @@ index 9db12ce42a8..f0f51f54568 100644
/* Neither does a .exe extension */
rc = shell_execute(NULL, "shlproto://foo/bar.exe", NULL, NULL);
@@ -2180,13 +2180,13 @@ static void test_lnks(void)
@@ -2182,13 +2182,13 @@ static void test_lnks(void)
get_long_path_name(params, filename, sizeof(filename));
okChildPath("argvA4", filename);
@ -141,5 +141,5 @@ index 9db12ce42a8..f0f51f54568 100644
/* Should just run our executable */
--
2.13.1
1.9.1

View File

@ -1,27 +1,27 @@
From 838dbfc163ed83706e88e309201d84197e6ebee1 Mon Sep 17 00:00:00 2001
From 2100778b424bd396931a5315f8eb2360675e7e68 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 31 Jul 2014 04:52:01 +0200
Subject: shell32: Choose return value for SHFileOperationW depending on
windows version
Subject: [PATCH] shell32: Choose return value for SHFileOperationW
depending on windows version
---
dlls/shell32/shlfileop.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c
index cef2246..290102a 100644
index d64d1d1..8076a99 100644
--- a/dlls/shell32/shlfileop.c
+++ b/dlls/shell32/shlfileop.c
@@ -1060,7 +1060,7 @@ static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles)
@@ -1055,7 +1055,7 @@ static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles)
/* empty list */
if (!szFiles[0])
- return ERROR_ACCESS_DENIED;
+ return ERROR_ACCESS_DENIED; /* S_OK for Windows 95/98 */
flList->feFiles = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
flList->num_alloc * sizeof(FILE_ENTRY));
@@ -1606,7 +1606,19 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
flList->feFiles = heap_alloc_zero(flList->num_alloc * sizeof(FILE_ENTRY));
@@ -1571,7 +1571,19 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
ZeroMemory(&flTo, sizeof(FILE_LIST));
if ((ret = parse_file_list(&flFrom, lpFileOp->pFrom)))
@ -42,5 +42,5 @@ index cef2246..290102a 100644
if (lpFileOp->wFunc != FO_DELETE)
parse_file_list(&flTo, lpFileOp->pTo);
--
2.3.0
1.9.1

Some files were not shown because too many files have changed in this diff Show More