mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 797a8bb192d49a44b8cec468e3421444feb03f8a.
This commit is contained in:
parent
da76250fad
commit
fac630367d
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -1 +1 @@
|
||||
ec3b773872ead22731b494be31e784aedccfc129
|
||||
797a8bb192d49a44b8cec468e3421444feb03f8a
|
||||
|
Loading…
Reference in New Issue
Block a user