From d918a0ca3f8d7a0a3afa09382e359f35478e2723 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 16 Sep 2021 09:35:15 +1000 Subject: [PATCH] Rebase against f232252951fec637758f6b2c4eeda1c0e0650310. --- ...for-sys-eventfd.h-ppoll-and-shm_open.patch | 16 +-- patches/patchinstall.sh | 23 +--- ...meter-to-ISFHelper-DeleteItems-to-al.patch | 76 ++++--------- ...AO_HASSUBFOLDER-correctly-for-unixfs.patch | 56 ---------- ...se-unixfs-for-devices-without-mountp.patch | 101 ------------------ patches/shell32-UnixFS/definition | 4 - ...t-a-recursive-activation-loop-on-WM_.patch | 23 ++-- staging/upstream-commit | 2 +- 8 files changed, 41 insertions(+), 260 deletions(-) delete mode 100644 patches/shell32-SFGAO_HASSUBFOLDER/0001-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-unixfs.patch delete mode 100644 patches/shell32-UnixFS/0001-shell32-Do-not-use-unixfs-for-devices-without-mountp.patch delete mode 100644 patches/shell32-UnixFS/definition diff --git a/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch b/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch index f978cf85..8929a534 100644 --- a/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch +++ b/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch @@ -1,4 +1,4 @@ -From 33486bf9924ffb152e008ec662e2f9905d67c449 Mon Sep 17 00:00:00 2001 +From 4d8244be2c89fe601d75bd17631d87f504dcd63a Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 13 Jun 2018 10:44:49 -0500 Subject: [PATCH] configure: Check for sys/eventfd.h, ppoll(), and shm_open(). @@ -13,7 +13,7 @@ Although perhaps we shouldn't since the server doesn't do this. 3 files changed, 89 insertions(+) diff --git a/configure b/configure -index f2319159834..a3916efab32 100755 +index 97b5dcfb38b..367008886d7 100755 --- a/configure +++ b/configure @@ -7543,6 +7543,7 @@ for ac_header in \ @@ -25,9 +25,9 @@ index f2319159834..a3916efab32 100755 sys/ioctl.h \ sys/ipc.h \ @@ -18009,6 +18010,7 @@ for ac_func in \ - poll \ port_create \ posix_fadvise \ + posix_fallocate \ + ppoll \ prctl \ proc_pidinfo \ @@ -106,7 +106,7 @@ index f2319159834..a3916efab32 100755 then if ${LDAP_CFLAGS:+false} :; then : diff --git a/configure.ac b/configure.ac -index 73869723bd3..6cab92efd74 100644 +index 0e65c78a81d..a3c9a627117 100644 --- a/configure.ac +++ b/configure.ac @@ -510,6 +510,7 @@ AC_CHECK_HEADERS(\ @@ -118,9 +118,9 @@ index 73869723bd3..6cab92efd74 100644 sys/ioctl.h \ sys/ipc.h \ @@ -2212,6 +2213,7 @@ AC_CHECK_FUNCS(\ - poll \ port_create \ posix_fadvise \ + posix_fallocate \ + ppoll \ prctl \ proc_pidinfo \ @@ -143,12 +143,12 @@ index 73869723bd3..6cab92efd74 100644 if test "x$with_ldap" != "xno" then diff --git a/include/config.h.in b/include/config.h.in -index 9f8e7f34ada..5ecf57cde58 100644 +index f66444fd715..bf8fc85e6c5 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -507,6 +507,9 @@ - /* Define to 1 if you have the `posix_fadvise' function. */ - #undef HAVE_POSIX_FADVISE + /* Define to 1 if you have the `posix_fallocate' function. */ + #undef HAVE_POSIX_FALLOCATE +/* Define to 1 if you have the `ppoll' function. */ +#undef HAVE_PPOLL diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index a6050cdd..a6bb9f50 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "b5e17b669a90d961a93f6092ebc3736ff8ca9cd6" + echo "f232252951fec637758f6b2c4eeda1c0e0650310" } # Show version information @@ -204,7 +204,6 @@ patch_enable_all () enable_shell32_SHFileOperation_Move="$1" enable_shell32_SHGetStockIconInfo="$1" enable_shell32_Toolbar_Bitmaps="$1" - enable_shell32_UnixFS="$1" enable_shlwapi_AssocGetPerceivedType="$1" enable_shlwapi_UrlCanonicalize="$1" enable_shlwapi_UrlCombine="$1" @@ -651,9 +650,6 @@ patch_enable () shell32-Toolbar_Bitmaps) enable_shell32_Toolbar_Bitmaps="$2" ;; - shell32-UnixFS) - enable_shell32_UnixFS="$2" - ;; shlwapi-AssocGetPerceivedType) enable_shlwapi_AssocGetPerceivedType="$2" ;; @@ -3174,7 +3170,7 @@ fi # | Modified files: # | * dlls/shell32/brsfolder.c, dlls/shell32/clipboard.c, dlls/shell32/dataobject.c, dlls/shell32/recyclebin.c, # | dlls/shell32/shell32.rc, dlls/shell32/shell32_main.h, dlls/shell32/shellfolder.h, dlls/shell32/shfldr_fs.c, -# | dlls/shell32/shfldr_unixfs.c, dlls/shell32/shlview.c, dlls/shell32/shlview_cmenu.c +# | dlls/shell32/shlview.c, dlls/shell32/shlview_cmenu.c # | if test "$enable_shell32_Context_Menu" -eq 1; then patch_apply shell32-Context_Menu/0003-shell32-Implement-insert-paste-for-item-context-menu.patch @@ -3215,10 +3211,9 @@ fi # | * [#24851] Only set SFGAO_HASSUBFOLDER when there are really subfolders # | # | Modified files: -# | * dlls/shell32/shfldr_unixfs.c, dlls/shell32/shlfolder.c +# | * dlls/shell32/shlfolder.c # | if test "$enable_shell32_SFGAO_HASSUBFOLDER" -eq 1; then - patch_apply shell32-SFGAO_HASSUBFOLDER/0001-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-unixfs.patch patch_apply shell32-SFGAO_HASSUBFOLDER/0002-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-normal-.patch fi @@ -3248,18 +3243,6 @@ if test "$enable_shell32_Toolbar_Bitmaps" -eq 1; then patch_apply shell32-Toolbar_Bitmaps/0002-shell32-Add-more-Tango-icons-to-the-IE-toolbar.patch fi -# Patchset shell32-UnixFS -# | -# | This patchset fixes the following Wine bugs: -# | * [#43109] Do not use unixfs for devices without mountpoint -# | -# | Modified files: -# | * dlls/shell32/shfldr_desktop.c, dlls/shell32/tests/shlfolder.c -# | -if test "$enable_shell32_UnixFS" -eq 1; then - patch_apply shell32-UnixFS/0001-shell32-Do-not-use-unixfs-for-devices-without-mountp.patch -fi - # Patchset shlwapi-AssocGetPerceivedType # | # | Modified files: diff --git a/patches/shell32-Context_Menu/0006-shell32-Add-parameter-to-ISFHelper-DeleteItems-to-al.patch b/patches/shell32-Context_Menu/0006-shell32-Add-parameter-to-ISFHelper-DeleteItems-to-al.patch index 22740796..a3d9f4ed 100644 --- a/patches/shell32-Context_Menu/0006-shell32-Add-parameter-to-ISFHelper-DeleteItems-to-al.patch +++ b/patches/shell32-Context_Menu/0006-shell32-Add-parameter-to-ISFHelper-DeleteItems-to-al.patch @@ -1,24 +1,23 @@ -From c785e3546c79d3247a0bc3abb5deee8b36d65951 Mon Sep 17 00:00:00 2001 +From 912755a07e996e6178a749f8b344c71a9401d6d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 2 Apr 2016 04:17:19 +0200 -Subject: shell32: Add parameter to ISFHelper::DeleteItems to allow deleting - files without confirmation. +Subject: [PATCH] shell32: Add parameter to ISFHelper::DeleteItems to allow + deleting files without confirmation. --- dlls/shell32/brsfolder.c | 2 +- dlls/shell32/recyclebin.c | 6 +++--- dlls/shell32/shellfolder.h | 4 ++-- dlls/shell32/shfldr_fs.c | 3 ++- - dlls/shell32/shfldr_unixfs.c | 7 ++++--- dlls/shell32/shlview.c | 2 +- dlls/shell32/shlview_cmenu.c | 2 +- - 7 files changed, 14 insertions(+), 12 deletions(-) + 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c -index d771d0b..d8926e3 100644 +index 188524d6a99..d33d3f01009 100644 --- a/dlls/shell32/brsfolder.c +++ b/dlls/shell32/brsfolder.c -@@ -658,7 +658,7 @@ static LRESULT BrsFolder_Treeview_Keydown(browse_info *info, LPNMTVKEYDOWN keydo +@@ -657,7 +657,7 @@ static LRESULT BrsFolder_Treeview_Keydown(browse_info *info, LPNMTVKEYDOWN keydo return 0; /* perform the item deletion - tree view gets updated over shell notification */ @@ -28,10 +27,10 @@ index d771d0b..d8926e3 100644 } break; diff --git a/dlls/shell32/recyclebin.c b/dlls/shell32/recyclebin.c -index 0d80e63..66c5cc2 100644 +index 807cae3d81d..60462f9358f 100644 --- a/dlls/shell32/recyclebin.c +++ b/dlls/shell32/recyclebin.c -@@ -182,7 +182,7 @@ static void DoErase(RecycleBinMenu *This) +@@ -173,7 +173,7 @@ static void DoErase(RecycleBinMenu *This) ISFHelper *helper; IShellFolder2_QueryInterface(This->folder,&IID_ISFHelper,(void**)&helper); if(helper) @@ -40,7 +39,7 @@ index 0d80e63..66c5cc2 100644 } static void DoRestore(RecycleBinMenu *This) -@@ -815,10 +815,10 @@ static HRESULT erase_items(HWND parent,const LPCITEMIDLIST * apidl, UINT cidl, B +@@ -800,10 +800,10 @@ static HRESULT erase_items(HWND parent,const LPCITEMIDLIST * apidl, UINT cidl, B } static HRESULT WINAPI RecycleBin_DeleteItems(ISFHelper * iface, UINT cidl, @@ -54,7 +53,7 @@ index 0d80e63..66c5cc2 100644 static HRESULT WINAPI RecycleBin_CopyItems(ISFHelper * iface, diff --git a/dlls/shell32/shellfolder.h b/dlls/shell32/shellfolder.h -index 942e0e7..b8083a2 100644 +index 942e0e7ea28..b8083a2625a 100644 --- a/dlls/shell32/shellfolder.h +++ b/dlls/shell32/shellfolder.h @@ -48,7 +48,7 @@ DECLARE_INTERFACE_(ISFHelper,IUnknown) @@ -76,10 +75,10 @@ index 942e0e7..b8083a2 100644 #endif diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c -index 66150f4..32178be 100644 +index 2fa17dee1dc..8d5e016596f 100644 --- a/dlls/shell32/shfldr_fs.c +++ b/dlls/shell32/shfldr_fs.c -@@ -1225,7 +1225,7 @@ static WCHAR *build_paths_list(LPCWSTR wszBasePath, int cidl, const LPCITEMIDLIS +@@ -1285,7 +1285,7 @@ static WCHAR *build_paths_list(LPCWSTR wszBasePath, int cidl, const LPCITEMIDLIS * deletes items in folder */ static HRESULT WINAPI @@ -88,7 +87,7 @@ index 66150f4..32178be 100644 { IGenericSFImpl *This = impl_from_ISFHelper(iface); UINT i; -@@ -1250,6 +1250,7 @@ ISFHelper_fnDeleteItems (ISFHelper * iface, UINT cidl, LPCITEMIDLIST * apidl) +@@ -1310,6 +1310,7 @@ ISFHelper_fnDeleteItems (ISFHelper * iface, UINT cidl, LPCITEMIDLIST * apidl) op.wFunc = FO_DELETE; op.pFrom = wszPathsList; op.fFlags = FOF_ALLOWUNDO; @@ -96,50 +95,11 @@ index 66150f4..32178be 100644 if (SHFileOperationW(&op)) { WARN("SHFileOperation failed\n"); -diff --git a/dlls/shell32/shfldr_unixfs.c b/dlls/shell32/shfldr_unixfs.c -index 732a103..a2ca852 100644 ---- a/dlls/shell32/shfldr_unixfs.c -+++ b/dlls/shell32/shfldr_unixfs.c -@@ -1942,7 +1942,7 @@ static HRESULT WINAPI SFHelper_AddFolder(ISFHelper* iface, HWND hwnd, LPCWSTR pw - * be converted, S_FALSE is returned. In such situation DeleteItems will try to delete - * the files using syscalls - */ --static HRESULT UNIXFS_delete_with_shfileop(UnixFolder *This, UINT cidl, const LPCITEMIDLIST *apidl) -+static HRESULT UNIXFS_delete_with_shfileop(UnixFolder *This, UINT cidl, const LPCITEMIDLIST *apidl, BOOL confirm) - { - char szAbsolute[FILENAME_MAX], *pszRelative; - LPWSTR wszPathsList, wszListPos; -@@ -1984,6 +1984,7 @@ static HRESULT UNIXFS_delete_with_shfileop(UnixFolder *This, UINT cidl, const LP - op.wFunc = FO_DELETE; - op.pFrom = wszPathsList; - op.fFlags = FOF_ALLOWUNDO; -+ if (!confirm) op.fFlags |= FOF_NOCONFIRMATION; - if (SHFileOperationW(&op)) - { - WARN("SHFileOperationW failed\n"); -@@ -2022,7 +2023,7 @@ static HRESULT UNIXFS_delete_with_syscalls(UnixFolder *This, UINT cidl, const LP - return S_OK; - } - --static HRESULT WINAPI SFHelper_DeleteItems(ISFHelper* iface, UINT cidl, LPCITEMIDLIST* apidl) -+static HRESULT WINAPI SFHelper_DeleteItems(ISFHelper *iface, UINT cidl, LPCITEMIDLIST *apidl, BOOL confirm) - { - UnixFolder *This = impl_from_ISFHelper(iface); - char szAbsolute[FILENAME_MAX], *pszRelative; -@@ -2033,7 +2034,7 @@ static HRESULT WINAPI SFHelper_DeleteItems(ISFHelper* iface, UINT cidl, LPCITEMI - - TRACE("(%p)->(%d %p)\n", This, cidl, apidl); - -- hr = UNIXFS_delete_with_shfileop(This, cidl, apidl); -+ hr = UNIXFS_delete_with_shfileop(This, cidl, apidl, confirm); - if (hr == S_FALSE) - hr = UNIXFS_delete_with_syscalls(This, cidl, apidl); - diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c -index c0c027f..9f23bfe 100644 +index 63512deb4b2..59376fb905f 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c -@@ -1577,7 +1577,7 @@ static LRESULT ShellView_OnNotify(IShellViewImpl * This, UINT CtlID, LPNMHDR lpn +@@ -1573,7 +1573,7 @@ static LRESULT ShellView_OnNotify(IShellViewImpl * This, UINT CtlID, LPNMHDR lpn } /* perform the item deletion */ @@ -149,10 +109,10 @@ index c0c027f..9f23bfe 100644 /* free pidl array memory */ diff --git a/dlls/shell32/shlview_cmenu.c b/dlls/shell32/shlview_cmenu.c -index 0daa5ef..0d380a8 100644 +index 7ebdaff588b..8ea828942e0 100644 --- a/dlls/shell32/shlview_cmenu.c +++ b/dlls/shell32/shlview_cmenu.c -@@ -294,7 +294,7 @@ static void DoDelete(ContextMenu *This) +@@ -447,7 +447,7 @@ static void DoDelete(ContextMenu *This) IShellFolder_QueryInterface(This->parent, &IID_ISFHelper, (void**)&helper); if (helper) { @@ -162,5 +122,5 @@ index 0daa5ef..0d380a8 100644 } } -- -2.7.4 +2.33.0 diff --git a/patches/shell32-SFGAO_HASSUBFOLDER/0001-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-unixfs.patch b/patches/shell32-SFGAO_HASSUBFOLDER/0001-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-unixfs.patch deleted file mode 100644 index 73640a9a..00000000 --- a/patches/shell32-SFGAO_HASSUBFOLDER/0001-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-unixfs.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 357fccddcd9891844a0d973d39b1bde6f6163033 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sat, 15 Aug 2015 21:09:22 +0200 -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 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 - SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_FILESYSTEM | SFGAO_LINK; - lstrcpyA(szAbsolutePath, This->m_pszPath); - pszRelativePath = szAbsolutePath + lstrlenA(szAbsolutePath); -- for (i=0; im_dwAttributes & SFGAO_FILESYSTEM)) { -+ for (i=0; im_dwAttributes & SFGAO_FILESYSTEM)) -+ { - WCHAR *dos_name; - if (!UNIXFS_filename_from_shitemid(apidl[i], pszRelativePath)) - return E_INVALIDARG; -@@ -1154,8 +1156,23 @@ static HRESULT WINAPI ShellFolder2_GetAttributesOf(IShellFolder2* iface, UINT ci - heap_free( dos_name ); - } - if (_ILIsFolder(apidl[i])) -- *attrs |= SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_FILESYSANCESTOR | -- SFGAO_STORAGEANCESTOR | SFGAO_STORAGE; -+ { -+ IEnumIDList *enum_list; -+ IShellFolder2 *child; -+ -+ *attrs |= SFGAO_FOLDER | SFGAO_FILESYSANCESTOR | SFGAO_STORAGEANCESTOR | SFGAO_STORAGE; -+ -+ if (SUCCEEDED(IShellFolder2_BindToObject(iface, apidl[i], NULL, &IID_IShellFolder2, (void **)&child))) -+ { -+ if (IShellFolder2_EnumObjects(child, NULL, SHCONTF_FOLDERS|SHCONTF_INCLUDEHIDDEN, &enum_list) == S_OK) -+ { -+ if (IEnumIDList_Skip(enum_list, 1) == S_OK) -+ *attrs |= SFGAO_HASSUBFOLDER; -+ IEnumIDList_Release(enum_list); -+ } -+ IShellFolder2_Release(child); -+ } -+ } - else - *attrs |= SFGAO_STREAM; - if ((*attrs & SFGAO_LINK)) --- -1.9.1 - diff --git a/patches/shell32-UnixFS/0001-shell32-Do-not-use-unixfs-for-devices-without-mountp.patch b/patches/shell32-UnixFS/0001-shell32-Do-not-use-unixfs-for-devices-without-mountp.patch deleted file mode 100644 index 187b3618..00000000 --- a/patches/shell32-UnixFS/0001-shell32-Do-not-use-unixfs-for-devices-without-mountp.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 77d9da4571579004511b4328a34cdf575daf2139 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sat, 30 May 2015 23:31:34 +0200 -Subject: [PATCH] shell32: Do not use unixfs for devices without mountpoint. - ---- - dlls/shell32/shfldr_desktop.c | 17 ++++++++++++++++- - dlls/shell32/tests/shlfolder.c | 32 ++++++++++++++++++++++++++++++++ - 2 files changed, 48 insertions(+), 1 deletion(-) - -diff --git a/dlls/shell32/shfldr_desktop.c b/dlls/shell32/shfldr_desktop.c -index 880291c..fba7dd6 100644 ---- a/dlls/shell32/shfldr_desktop.c -+++ b/dlls/shell32/shfldr_desktop.c -@@ -186,11 +186,26 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface, - } - else if (PathGetDriveNumberW (lpszDisplayName) >= 0) - { -+ /* -+ * UNIXFS can't handle drives without a mount point yet. We fall back -+ * to use the MyComputer interface if we can't get the file attributes -+ * on the device. -+ */ -+ char drivePath[] = "A:\\"; -+ drivePath[0] = 'A' + PathGetDriveNumberW(lpszDisplayName); -+ - /* it's a filesystem path with a drive. Let MyComputer/UnixDosFolder parse it */ -- if (UNIXFS_is_rooted_at_desktop()) -+ if (UNIXFS_is_rooted_at_desktop() && -+ GetFileAttributesA(drivePath) != INVALID_FILE_ATTRIBUTES) -+ { - pidlTemp = _ILCreateGuid(PT_GUID, &CLSID_UnixDosFolder); -+ TRACE("Using unixfs for %s\n", debugstr_w(lpszDisplayName)); -+ } - else -+ { - pidlTemp = _ILCreateMyComputer (); -+ TRACE("Using MyComputer for %s\n", debugstr_w(lpszDisplayName)); -+ } - szNext = lpszDisplayName; - } - else if (PathIsUNCW(lpszDisplayName)) -diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c -index bd4bba2..5eb47e4 100644 ---- a/dlls/shell32/tests/shlfolder.c -+++ b/dlls/shell32/tests/shlfolder.c -@@ -4215,12 +4215,34 @@ static void test_ShellItemArrayGetAttributes(void) - Cleanup(); - } - -+static WCHAR *get_empty_cddrive(void) -+{ -+ static WCHAR cdrom_drive[] = {'A',':','\\',0}; -+ DWORD drives = GetLogicalDrives(); -+ -+ cdrom_drive[0] = 'A'; -+ while (drives) -+ { -+ if ((drives & 1) && -+ GetDriveTypeW(cdrom_drive) == DRIVE_CDROM && -+ GetFileAttributesW(cdrom_drive) == INVALID_FILE_ATTRIBUTES) -+ { -+ return cdrom_drive; -+ } -+ -+ drives = drives >> 1; -+ cdrom_drive[0]++; -+ } -+ return NULL; -+} -+ - static void test_SHParseDisplayName(void) - { - LPITEMIDLIST pidl1, pidl2; - IShellFolder *desktop; - WCHAR dirW[MAX_PATH]; - WCHAR nameW[10]; -+ WCHAR *cdrom; - HRESULT hr; - BOOL ret, is_wow64; - -@@ -4286,6 +4308,16 @@ if (0) - } - - IShellFolder_Release(desktop); -+ -+ cdrom = get_empty_cddrive(); -+ if (!cdrom) -+ skip("No empty cdrom drive found, skipping test\n"); -+ else -+ { -+ hr = SHParseDisplayName(cdrom, NULL, &pidl1, 0, NULL); -+ ok(hr == S_OK, "failed %08x\n", hr); -+ if (SUCCEEDED(hr)) ILFree(pidl1); -+ } - } - - static void test_desktop_IPersist(void) --- -1.9.1 - diff --git a/patches/shell32-UnixFS/definition b/patches/shell32-UnixFS/definition deleted file mode 100644 index 25f05f49..00000000 --- a/patches/shell32-UnixFS/definition +++ /dev/null @@ -1,4 +0,0 @@ -Fixes: Do not use unixfs for devices without mountpoint -Fixes: [43109] Do not use unixfs for devices without mountpoint -# Note: this patch was added by slackner in 2015 May, two years before this bug -# was filed. What was its original purpose? diff --git a/patches/user32-recursive-activation/0002-user32-tests-Test-a-recursive-activation-loop-on-WM_.patch b/patches/user32-recursive-activation/0002-user32-tests-Test-a-recursive-activation-loop-on-WM_.patch index c5a43ee0..cc25620d 100644 --- a/patches/user32-recursive-activation/0002-user32-tests-Test-a-recursive-activation-loop-on-WM_.patch +++ b/patches/user32-recursive-activation/0002-user32-tests-Test-a-recursive-activation-loop-on-WM_.patch @@ -1,8 +1,7 @@ -From 064570eb530a73e822bf19ccb9bc31cd3654c504 Mon Sep 17 00:00:00 2001 +From f8f70e240299a518c8ce6dec56b7f0c318a14e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= Date: Mon, 22 Jul 2019 15:29:26 +0300 -Subject: [PATCH 2/2] user32/tests: Test a recursive activation loop on - WM_ACTIVATE +Subject: [PATCH] user32/tests: Test a recursive activation loop on WM_ACTIVATE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -16,10 +15,10 @@ Signed-off-by: Gabriel Ivăncescu 1 file changed, 81 insertions(+) diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c -index 64f7eeecf3..191e7bfffb 100644 +index 37a31eefa89..ec85a07b28a 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c -@@ -4772,6 +4772,39 @@ static void test_showwindow(void) +@@ -5083,6 +5083,39 @@ static void test_showwindow(void) flush_sequence(); } @@ -59,7 +58,7 @@ index 64f7eeecf3..191e7bfffb 100644 static void test_sys_menu(void) { HWND hwnd; -@@ -9699,6 +9732,48 @@ static LRESULT WINAPI ShowWindowProcA(HWND hwnd, UINT message, WPARAM wParam, LP +@@ -10078,6 +10111,48 @@ static LRESULT WINAPI ShowWindowProcA(HWND hwnd, UINT message, WPARAM wParam, LP return ret; } @@ -108,7 +107,7 @@ index 64f7eeecf3..191e7bfffb 100644 static LRESULT WINAPI PaintLoopProcA(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) -@@ -9796,6 +9871,10 @@ static BOOL RegisterWindowClasses(void) +@@ -10175,6 +10250,10 @@ static BOOL RegisterWindowClasses(void) cls.lpszClassName = "ShowWindowClass"; if(!RegisterClassA(&cls)) return FALSE; @@ -119,7 +118,7 @@ index 64f7eeecf3..191e7bfffb 100644 cls.lpfnWndProc = PopupMsgCheckProcA; cls.lpszClassName = "TestPopupClass"; if(!RegisterClassA(&cls)) return FALSE; -@@ -9851,6 +9930,7 @@ static BOOL is_our_logged_class(HWND hwnd) +@@ -10230,6 +10309,7 @@ static BOOL is_our_logged_class(HWND hwnd) { if (!lstrcmpiA(buf, "TestWindowClass") || !lstrcmpiA(buf, "ShowWindowClass") || @@ -127,14 +126,14 @@ index 64f7eeecf3..191e7bfffb 100644 !lstrcmpiA(buf, "TestParentClass") || !lstrcmpiA(buf, "TestPopupClass") || !lstrcmpiA(buf, "SimpleWindowClass") || -@@ -17756,6 +17836,7 @@ START_TEST(msg) - test_messages(); - test_setwindowpos(); +@@ -18476,6 +18556,7 @@ START_TEST(msg) + hEvent_hook = 0; + test_showwindow(); + test_recursive_activation(); invisible_parent_tests(); test_mdi_messages(); test_button_messages(); -- -2.17.1 +2.33.0 diff --git a/staging/upstream-commit b/staging/upstream-commit index 22ad20c9..ab71aa57 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -b5e17b669a90d961a93f6092ebc3736ff8ca9cd6 +f232252951fec637758f6b2c4eeda1c0e0650310