Rebase against 797a8bb192d49a44b8cec468e3421444feb03f8a.

This commit is contained in:
Alistair Leslie-Hughes 2023-08-22 08:26:13 +10:00
parent da76250fad
commit fac630367d
4 changed files with 81 additions and 100 deletions

View File

@ -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?= <michael@fds-team.de>
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

View File

@ -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?= <michael@fds-team.de>
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

View File

@ -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?= <michael@fds-team.de>
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

View File

@ -1 +1 @@
ec3b773872ead22731b494be31e784aedccfc129
797a8bb192d49a44b8cec468e3421444feb03f8a