From fac630367d626c96fb78efafb89960c586ac4fa4 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 22 Aug 2023 08:26:13 +1000 Subject: [PATCH] Rebase against 797a8bb192d49a44b8cec468e3421444feb03f8a. --- ...02-shell32-Add-security-property-tab.patch | 15 ++- ...32-Correct-indentation-in-shfileop.c.patch | 92 ++++++++----------- ...E_INFORMATION-into-SHNotify-function.patch | 72 +++++++-------- staging/upstream-commit | 2 +- 4 files changed, 81 insertions(+), 100 deletions(-) diff --git a/patches/shell32-ACE_Viewer/0002-shell32-Add-security-property-tab.patch b/patches/shell32-ACE_Viewer/0002-shell32-Add-security-property-tab.patch index 0285b12b..0b44c8b2 100644 --- a/patches/shell32-ACE_Viewer/0002-shell32-Add-security-property-tab.patch +++ b/patches/shell32-ACE_Viewer/0002-shell32-Add-security-property-tab.patch @@ -1,4 +1,4 @@ -From de4cd156d5a676091d4a7e38265161819a69137e Mon Sep 17 00:00:00 2001 +From 4c2973947ad85bbed99b3149462eb73e823c977a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 8 May 2017 23:33:45 +0200 Subject: [PATCH] shell32: Add security property tab. @@ -62,17 +62,16 @@ index 264947d337d..90898b7ed98 100644 /* FIXME: Some will be unused until desktop.ini support is implemented */ IDS_PROGRAMS "Programs" diff --git a/dlls/shell32/shlview_cmenu.c b/dlls/shell32/shlview_cmenu.c -index 14cd9aeeebe..ed3a07c423d 100644 +index 181ff36787e..cc43b710c29 100644 --- a/dlls/shell32/shlview_cmenu.c +++ b/dlls/shell32/shlview_cmenu.c -@@ -38,14 +38,133 @@ +@@ -36,13 +36,132 @@ #include "shresdef.h" #include "shlwapi.h" +#include "aclui.h" +#include "aclapi.h" - #include "wine/heap.h" #include "wine/debug.h" +/* Small hack: We need to remove DECLSPEC_HIDDEN from the aclui export. */ @@ -199,8 +198,8 @@ index 14cd9aeeebe..ed3a07c423d 100644 typedef struct { IContextMenu3 IContextMenu3_iface; -@@ -637,6 +756,269 @@ error: - heap_free(props); +@@ -634,6 +753,269 @@ error: + free(props); } +static HRESULT WINAPI filesecurity_QueryInterface(ISecurityInformation *iface, REFIID riid, void **ppv) @@ -469,7 +468,7 @@ index 14cd9aeeebe..ed3a07c423d 100644 #define MAX_PROP_PAGES 99 static void DoOpenProperties(ContextMenu *This, HWND hwnd) -@@ -716,6 +1098,7 @@ static void DoOpenProperties(ContextMenu *This, HWND hwnd) +@@ -713,6 +1095,7 @@ static void DoOpenProperties(ContextMenu *This, HWND hwnd) if (SUCCEEDED(ret)) { init_file_properties_pages(lpDo, Properties_AddPropSheetCallback, (LPARAM)&psh); @@ -516,5 +515,5 @@ index 210046e729d..0f3a64f16d2 100644 #define IDS_RECYCLEBIN_FOLDER_NAME 8964 -- -2.35.1 +2.40.1 diff --git a/patches/shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch b/patches/shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch index aca4ba3d..fc6f63d4 100644 --- a/patches/shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch +++ b/patches/shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch @@ -1,17 +1,17 @@ -From e92e88f62a08e84a29395a5b3e1f461e33dc9aa0 Mon Sep 17 00:00:00 2001 +From 40a501fefa40ba5db4da635ecde908fb0d8b1a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Tue, 24 Feb 2015 04:25:29 +0100 Subject: [PATCH] shell32: Correct indentation in shfileop.c. --- - dlls/shell32/shlfileop.c | 660 +++++++++++++++++++-------------------- - 1 file changed, 329 insertions(+), 331 deletions(-) + dlls/shell32/shlfileop.c | 656 +++++++++++++++++++-------------------- + 1 file changed, 327 insertions(+), 329 deletions(-) diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c -index c454fcaa594..682af15e9d8 100644 +index 430be341085..4e40e9dd71b 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c -@@ -201,108 +201,107 @@ static int SHELL_ConfirmMsgBox(HWND hWnd, LPWSTR lpszText, LPWSTR lpszCaption, H +@@ -200,108 +200,107 @@ static int SHELL_ConfirmMsgBox(HWND hWnd, LPWSTR lpszText, LPWSTR lpszCaption, H /* confirmation dialogs content */ typedef struct { @@ -208,7 +208,7 @@ index c454fcaa594..682af15e9d8 100644 } BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir) -@@ -312,18 +311,18 @@ BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir) +@@ -311,18 +310,18 @@ BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir) static DWORD SHELL32_AnsiToUnicodeBuf(LPCSTR aPath, LPWSTR *wPath, DWORD minChars) { @@ -220,14 +220,14 @@ index c454fcaa594..682af15e9d8 100644 + if (len < minChars) + len = minChars; -- *wPath = heap_alloc(len * sizeof(WCHAR)); +- *wPath = malloc(len * sizeof(WCHAR)); - if (*wPath) - { - MultiByteToWideChar(CP_ACP, 0, aPath, -1, *wPath, len); - return NO_ERROR; - } - return E_OUTOFMEMORY; -+ *wPath = heap_alloc(len * sizeof(WCHAR)); ++ *wPath = malloc(len * sizeof(WCHAR)); + if (*wPath) + { + MultiByteToWideChar(CP_ACP, 0, aPath, -1, *wPath, len); @@ -237,7 +237,7 @@ index c454fcaa594..682af15e9d8 100644 } HRESULT WINAPI SHIsFileAvailableOffline(LPCWSTR path, LPDWORD status) -@@ -366,8 +365,8 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI) +@@ -365,8 +364,8 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI) ret = SHNotifyRemoveDirectoryW(pszDir); return ret == ERROR_PATH_NOT_FOUND ? @@ -248,7 +248,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************** -@@ -387,41 +386,41 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI) +@@ -386,41 +385,41 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI) */ static DWORD SHNotifyCreateDirectoryA(LPCSTR path, LPSECURITY_ATTRIBUTES sec) { @@ -264,14 +264,14 @@ index c454fcaa594..682af15e9d8 100644 - if (!retCode) - { - retCode = SHNotifyCreateDirectoryW(wPath, sec); -- heap_free(wPath); +- free(wPath); - } - return retCode; + retCode = SHELL32_AnsiToUnicodeBuf(path, &wPath, 0); + if (!retCode) + { + retCode = SHNotifyCreateDirectoryW(wPath, sec); -+ heap_free(wPath); ++ free(wPath); + } + return retCode; } @@ -310,7 +310,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************ -@@ -441,51 +440,51 @@ BOOL WINAPI Win32CreateDirectoryAW(LPCVOID path, LPSECURITY_ATTRIBUTES sec) +@@ -440,51 +439,51 @@ BOOL WINAPI Win32CreateDirectoryAW(LPCVOID path, LPSECURITY_ATTRIBUTES sec) */ static DWORD SHNotifyRemoveDirectoryA(LPCSTR path) { @@ -326,14 +326,14 @@ index c454fcaa594..682af15e9d8 100644 - if (!retCode) - { - retCode = SHNotifyRemoveDirectoryW(wPath); -- heap_free(wPath); +- free(wPath); - } - return retCode; + retCode = SHELL32_AnsiToUnicodeBuf(path, &wPath, 0); + if (!retCode) + { + retCode = SHNotifyRemoveDirectoryW(wPath); -+ heap_free(wPath); ++ free(wPath); + } + return retCode; } @@ -392,7 +392,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************ -@@ -505,52 +504,52 @@ BOOL WINAPI Win32RemoveDirectoryAW(LPCVOID path) +@@ -504,52 +503,52 @@ BOOL WINAPI Win32RemoveDirectoryAW(LPCVOID path) */ static DWORD SHNotifyDeleteFileA(LPCSTR path) { @@ -408,14 +408,14 @@ index c454fcaa594..682af15e9d8 100644 - if (!retCode) - { - retCode = SHNotifyDeleteFileW(wPath); -- heap_free(wPath); +- free(wPath); - } - return retCode; + retCode = SHELL32_AnsiToUnicodeBuf(path, &wPath, 0); + if (!retCode) + { + retCode = SHNotifyDeleteFileW(wPath); -+ heap_free(wPath); ++ free(wPath); + } + return retCode; } @@ -475,7 +475,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************ -@@ -567,36 +566,36 @@ DWORD WINAPI Win32DeleteFileAW(LPCVOID path) +@@ -566,36 +565,36 @@ DWORD WINAPI Win32DeleteFileAW(LPCVOID path) */ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest) { @@ -537,7 +537,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************ -@@ -615,24 +614,24 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest) +@@ -614,24 +613,24 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest) */ static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists) { @@ -576,7 +576,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************* -@@ -662,9 +661,9 @@ static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists) +@@ -661,9 +660,9 @@ static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists) */ DWORD WINAPI SHCreateDirectory(HWND hWnd, LPCVOID path) { @@ -589,7 +589,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************* -@@ -701,18 +700,18 @@ DWORD WINAPI SHCreateDirectory(HWND hWnd, LPCVOID path) +@@ -700,18 +699,18 @@ DWORD WINAPI SHCreateDirectory(HWND hWnd, LPCVOID path) */ int WINAPI SHCreateDirectoryExA(HWND hWnd, LPCSTR path, LPSECURITY_ATTRIBUTES sec) { @@ -605,20 +605,20 @@ index c454fcaa594..682af15e9d8 100644 - if (!retCode) - { - retCode = SHCreateDirectoryExW(hWnd, wPath, sec); -- heap_free(wPath); +- free(wPath); - } - return retCode; + retCode = SHELL32_AnsiToUnicodeBuf(path, &wPath, 0); + if (!retCode) + { + retCode = SHCreateDirectoryExW(hWnd, wPath, sec); -+ heap_free(wPath); ++ free(wPath); + } + return retCode; } /************************************************************************* -@@ -786,25 +785,25 @@ int WINAPI SHCreateDirectoryExW(HWND hWnd, LPCWSTR path, LPSECURITY_ATTRIBUTES s +@@ -785,25 +784,25 @@ int WINAPI SHCreateDirectoryExW(HWND hWnd, LPCWSTR path, LPSECURITY_ATTRIBUTES s */ static DWORD SHFindAttrW(LPCWSTR pName, BOOL fileOnly) { @@ -662,7 +662,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************* -@@ -818,27 +817,27 @@ static DWORD SHFindAttrW(LPCWSTR pName, BOOL fileOnly) +@@ -817,27 +816,27 @@ static DWORD SHFindAttrW(LPCWSTR pName, BOOL fileOnly) */ static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more) { @@ -710,7 +710,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************* * SHFileOperationA [SHELL32.@] -@@ -858,46 +857,45 @@ static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more) +@@ -857,46 +856,45 @@ static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more) */ int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp) { @@ -754,12 +754,12 @@ index c454fcaa594..682af15e9d8 100644 + size += SHNameTranslate(&wString, &nFileOp.pFrom, TRUE); /* internal loop */ + size += SHNameTranslate(&wString, &nFileOp.pTo, TRUE); /* internal loop */ -- heap_free(ForFree); /* we cannot use wString, it was changed */ +- free(ForFree); /* we cannot use wString, it was changed */ - break; - } - else - { -- wString = ForFree = heap_alloc(size * sizeof(WCHAR)); +- wString = ForFree = malloc(size * sizeof(WCHAR)); - if (ForFree) continue; - retCode = ERROR_OUTOFMEMORY; - nFileOp.fAnyOperationsAborted = TRUE; @@ -772,12 +772,12 @@ index c454fcaa594..682af15e9d8 100644 + /* Windows 95/98 returns S_OK for this case. */ + if (retCode == ERROR_ACCESS_DENIED && (GetVersion() & 0x80000000)) + retCode = S_OK; -+ heap_free(ForFree); /* we cannot use wString, it was changed */ ++ free(ForFree); /* we cannot use wString, it was changed */ + break; + } + else + { -+ wString = ForFree = heap_alloc(size * sizeof(WCHAR)); ++ wString = ForFree = malloc(size * sizeof(WCHAR)); + if (ForFree) continue; + retCode = ERROR_OUTOFMEMORY; + nFileOp.fAnyOperationsAborted = TRUE; @@ -794,25 +794,7 @@ index c454fcaa594..682af15e9d8 100644 } #define ERROR_SHELL_INTERNAL_FILE_NOT_FOUND 1026 -@@ -927,7 +925,7 @@ typedef struct - static inline void grow_list(FILE_LIST *list) - { - FILE_ENTRY *new = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, list->feFiles, -- list->num_alloc * 2 * sizeof(*new) ); -+ list->num_alloc * 2 * sizeof(*new) ); - list->feFiles = new; - list->num_alloc *= 2; - } -@@ -1020,7 +1018,7 @@ static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles) - /* empty list */ - if (!szFiles[0]) - return ERROR_ACCESS_DENIED; -- -+ - flList->feFiles = heap_alloc_zero(flList->num_alloc * sizeof(FILE_ENTRY)); - - while (*ptr) -@@ -1123,7 +1121,7 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST +@@ -1121,7 +1119,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 */ @@ -821,7 +803,7 @@ index c454fcaa594..682af15e9d8 100644 SHFileOperationW(&fileOp); } -@@ -1369,11 +1367,11 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) +@@ -1367,11 +1365,11 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) break; } } @@ -835,7 +817,7 @@ index c454fcaa594..682af15e9d8 100644 else ret = SHELL_DeleteDirectoryW(lpFileOp->hwnd, fileEntry->szFullPath, FALSE); -@@ -1498,8 +1496,8 @@ static int rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con +@@ -1496,8 +1494,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 | @@ -846,7 +828,7 @@ index c454fcaa594..682af15e9d8 100644 if (fFlags & wUnsupportedFlags) FIXME("Unsupported flags: %04x\n", fFlags); -@@ -1582,19 +1580,19 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) +@@ -1580,19 +1578,19 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) */ void WINAPI SHFreeNameMappings(HANDLE hNameMapping) { @@ -876,7 +858,7 @@ index c454fcaa594..682af15e9d8 100644 } /************************************************************************* -@@ -1700,14 +1698,14 @@ DWORD WINAPI SheChangeDirW(LPWSTR path) +@@ -1698,14 +1696,14 @@ DWORD WINAPI SheChangeDirW(LPWSTR path) } /************************************************************************* @@ -897,5 +879,5 @@ index c454fcaa594..682af15e9d8 100644 -- -2.33.0 +2.40.1 diff --git a/patches/shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch b/patches/shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch index e0a19090..17fd756d 100644 --- a/patches/shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch +++ b/patches/shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch @@ -1,4 +1,4 @@ -From a810107bb8baf40586def0905ef3bd98fe6c852f Mon Sep 17 00:00:00 2001 +From 7b8a67910d0a0f962e505ab73be75789432807ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 26 Feb 2015 23:21:26 +0100 Subject: [PATCH] shell32: Pass FILE_INFORMATION into SHNotify* functions. @@ -9,10 +9,10 @@ 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 f0cadc67f8f..1ad2af6dd58 100644 +index 4e40e9dd71b..a64cc0d7f8d 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c -@@ -56,16 +56,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); +@@ -55,16 +55,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); #define DE_SAMEFILE 0x71 #define DE_DESTSAMETREE 0x7D @@ -29,7 +29,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 typedef struct { SHFILEOPSTRUCTW *req; -@@ -74,6 +64,42 @@ typedef struct +@@ -73,6 +63,42 @@ typedef struct BOOL bCancelled; } FILE_OPERATION; @@ -72,7 +72,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 /* Confirm dialogs with an optional "Yes To All" as used in file operations confirmations */ struct confirm_msg_info -@@ -337,7 +363,7 @@ HRESULT WINAPI SHIsFileAvailableOffline(LPCWSTR path, LPDWORD status) +@@ -336,7 +362,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 +81,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 { DWORD ret = 0; HANDLE hFind; -@@ -347,16 +373,18 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI) +@@ -346,16 +372,18 @@ static DWORD SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI) PathCombineW(szTemp, pszDir, L"*"); hFind = FindFirstFileW(szTemp, &wfd); @@ -104,7 +104,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 } while (!ret && FindNextFileW(hFind, &wfd)); } FindClose(hFind); -@@ -487,22 +515,9 @@ BOOL WINAPI Win32RemoveDirectoryAW(LPCVOID path) +@@ -486,22 +514,9 @@ BOOL WINAPI Win32RemoveDirectoryAW(LPCVOID path) return (SHNotifyRemoveDirectoryA(path) == ERROR_SUCCESS); } @@ -130,16 +130,16 @@ index f0cadc67f8f..1ad2af6dd58 100644 { LPWSTR wPath; DWORD retCode; -@@ -512,7 +527,7 @@ static DWORD SHNotifyDeleteFileA(LPCSTR path) +@@ -511,7 +526,7 @@ static DWORD SHNotifyDeleteFileA(LPCSTR path) retCode = SHELL32_AnsiToUnicodeBuf(path, &wPath, 0); if (!retCode) { - retCode = SHNotifyDeleteFileW(wPath); + retCode = SHNotifyDeleteFileW(op, wPath); - heap_free(wPath); + free(wPath); } return retCode; -@@ -520,12 +535,14 @@ static DWORD SHNotifyDeleteFileA(LPCSTR path) +@@ -519,12 +534,14 @@ static DWORD SHNotifyDeleteFileA(LPCSTR path) /***********************************************************************/ @@ -155,7 +155,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 ret = DeleteFileW(path); if (!ret) { -@@ -548,8 +565,8 @@ static DWORD SHNotifyDeleteFileW(LPCWSTR path) +@@ -547,8 +564,8 @@ static DWORD SHNotifyDeleteFileW(LPCWSTR path) DWORD WINAPI Win32DeleteFileAW(LPCVOID path) { if (SHELL_OsIsUnicode()) @@ -166,7 +166,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 } /************************************************************************ -@@ -558,18 +575,21 @@ DWORD WINAPI Win32DeleteFileAW(LPCVOID path) +@@ -557,18 +574,21 @@ DWORD WINAPI Win32DeleteFileAW(LPCVOID path) * Moves a file. Also triggers a change notify if one exists. * * PARAMS @@ -189,7 +189,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 ret = MoveFileExW(src, dest, MOVEFILE_REPLACE_EXISTING); /* MOVEFILE_REPLACE_EXISTING fails with dirs, so try MoveFile */ -@@ -604,6 +624,7 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest) +@@ -603,6 +623,7 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest) * Copies a file. Also triggers a change notify if one exists. * * PARAMS @@ -197,7 +197,7 @@ index f0cadc67f8f..1ad2af6dd58 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 -@@ -612,13 +633,15 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest) +@@ -611,13 +632,15 @@ static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest) * RETURNS * ERROR_SUCCESS if successful */ @@ -214,7 +214,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 /* Destination file may already exist with read only attribute */ attribs = GetFileAttributesW(dest); if (IsAttrib(attribs, FILE_ATTRIBUTE_READONLY)) -@@ -898,30 +921,6 @@ int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp) +@@ -897,30 +920,6 @@ int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp) return retCode; } @@ -244,8 +244,8 @@ index f0cadc67f8f..1ad2af6dd58 100644 - static inline void grow_list(FILE_LIST *list) { - FILE_ENTRY *new = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, list->feFiles, -@@ -1087,7 +1086,7 @@ static void destroy_file_list(FILE_LIST *flList) + FILE_ENTRY *new = _recalloc(list->feFiles, list->num_alloc * 2, sizeof(*new)); +@@ -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 +254,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 if (IsDotDir(feFrom->szFilename)) return; -@@ -1113,17 +1112,16 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST +@@ -1111,17 +1110,16 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST PathCombineW(szFrom, feFrom->szFullPath, L"*.*"); szFrom[lstrlenW(szFrom) + 1] = '\0'; @@ -280,7 +280,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 } static BOOL copy_file_to_file(FILE_OPERATION *op, const WCHAR *szFrom, const WCHAR *szTo) -@@ -1134,7 +1132,7 @@ static BOOL copy_file_to_file(FILE_OPERATION *op, const WCHAR *szFrom, const WCH +@@ -1132,7 +1130,7 @@ static BOOL copy_file_to_file(FILE_OPERATION *op, const WCHAR *szFrom, const WCH return FALSE; } @@ -289,7 +289,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 } /* copy a file or directory to another directory */ -@@ -1174,7 +1172,7 @@ static void create_dest_dirs(LPCWSTR szDestDir) +@@ -1172,7 +1170,7 @@ static void create_dest_dirs(LPCWSTR szDestDir) } /* the FO_COPY operation */ @@ -298,7 +298,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 { DWORD i; const FILE_ENTRY *entryToCopy; -@@ -1197,7 +1195,7 @@ static int copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *fl +@@ -1195,7 +1193,7 @@ static int copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *fl fileDest = &flTo->feFiles[0]; } @@ -307,7 +307,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 { if (flFrom->bAnyFromWildcard) return ERROR_CANCELLED; -@@ -1249,8 +1247,7 @@ static int copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *fl +@@ -1247,8 +1245,7 @@ static int copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *fl { entryToCopy = &flFrom->feFiles[i]; @@ -317,7 +317,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 { fileDest = &flTo->feFiles[i]; } -@@ -1321,7 +1318,7 @@ static BOOL confirm_delete_list(HWND hWnd, DWORD fFlags, BOOL fTrash, const FILE +@@ -1319,7 +1316,7 @@ static BOOL confirm_delete_list(HWND hWnd, DWORD fFlags, BOOL fTrash, const FILE } /* the FO_DELETE operation */ @@ -326,7 +326,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 { const FILE_ENTRY *fileEntry; DWORD i; -@@ -1332,12 +1329,12 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) +@@ -1330,12 +1327,12 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) return ERROR_SUCCESS; /* Windows also checks only the first item */ @@ -343,7 +343,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 return 0; } -@@ -1346,7 +1343,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) +@@ -1344,7 +1341,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) fileEntry = &flFrom->feFiles[i]; if (!IsAttribFile(fileEntry->attributes) && @@ -352,7 +352,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 continue; if (bTrash) -@@ -1356,14 +1353,14 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) +@@ -1354,14 +1351,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 */ @@ -370,7 +370,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 break; } } -@@ -1373,7 +1370,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) +@@ -1371,7 +1368,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) ret = DeleteFileW(fileEntry->szFullPath) ? ERROR_SUCCESS : GetLastError(); else @@ -379,7 +379,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 if (ret) return ret; -@@ -1383,16 +1380,16 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) +@@ -1381,16 +1378,16 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) } /* moves a file or directory to another directory */ @@ -399,7 +399,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 { DWORD i; INT mismatched = 0; -@@ -1405,14 +1402,12 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const +@@ -1403,14 +1400,12 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const if (!flTo->dwNumFiles) return ERROR_FILE_NOT_FOUND; @@ -416,7 +416,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 flFrom->dwNumFiles > flTo->dwNumFiles) { return ERROR_CANCELLED; -@@ -1425,7 +1420,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const +@@ -1423,7 +1418,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const return ret; } @@ -425,7 +425,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 mismatched = flFrom->dwNumFiles - flTo->dwNumFiles; fileDest = &flTo->feFiles[0]; -@@ -1436,7 +1431,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const +@@ -1434,7 +1429,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const if (!PathFileExistsW(fileDest->szDirectory)) return ERROR_CANCELLED; @@ -434,7 +434,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 { if (i >= flTo->dwNumFiles) break; -@@ -1450,9 +1445,9 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const +@@ -1448,9 +1443,9 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const } if (fileDest->bExists && IsAttribDir(fileDest->attributes)) @@ -446,7 +446,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 } if (mismatched > 0) -@@ -1467,7 +1462,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const +@@ -1465,7 +1460,7 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const } /* the FO_RENAME files */ @@ -455,7 +455,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 { const FILE_ENTRY *feFrom; const FILE_ENTRY *feTo; -@@ -1489,7 +1484,7 @@ static int rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con +@@ -1487,7 +1482,7 @@ static int rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con if (feTo->bExists) return ERROR_ALREADY_EXISTS; @@ -464,7 +464,7 @@ index f0cadc67f8f..1ad2af6dd58 100644 } /* alert the user if an unsupported flag is used */ -@@ -1536,16 +1531,16 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) +@@ -1534,16 +1529,16 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) switch (lpFileOp->wFunc) { case FO_COPY: @@ -486,5 +486,5 @@ index f0cadc67f8f..1ad2af6dd58 100644 default: ret = ERROR_INVALID_PARAMETER; -- -2.33.0 +2.40.1 diff --git a/staging/upstream-commit b/staging/upstream-commit index f2c05186..20204161 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -ec3b773872ead22731b494be31e784aedccfc129 +797a8bb192d49a44b8cec468e3421444feb03f8a