Rebase against 8348c0ebe00752af2afbabc78315f9e07e43ee09.

This commit is contained in:
Sebastian Lackner
2015-09-01 16:22:33 +02:00
parent 7e58e7e2d4
commit 2aee7a7ac1
3 changed files with 33 additions and 42 deletions

View File

@@ -1,34 +1,25 @@
From cfa714bac4c6610bbeeb540041ff327a78fca47f Mon Sep 17 00:00:00 2001
From 7c3743c12f6b8a7fa015da3c231d1b0817978e4b Mon Sep 17 00:00:00 2001
From: Zhenbo Li <litimetal@gmail.com>
Date: Fri, 14 Aug 2015 21:18:43 +0800
Subject: shell32: Fix SHFileOperation(FO_MOVE) for creating subdirectories.
This patch fixes bug 25207.
---
dlls/shell32/shlfileop.c | 8 ++++++--
dlls/shell32/shlfileop.c | 6 +++++-
dlls/shell32/tests/shlfileop.c | 4 ++--
2 files changed, 8 insertions(+), 4 deletions(-)
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c
index 0b096b1..4d2ebb4 100644
index c843dd7..e7f8107 100644
--- a/dlls/shell32/shlfileop.c
+++ b/dlls/shell32/shlfileop.c
@@ -1401,7 +1401,7 @@ static void move_to_dir(LPSHFILEOPSTRUCTW lpFileOp, const FILE_ENTRY *feFrom, co
/* the FO_MOVE operation */
static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const FILE_LIST *flTo)
{
- DWORD i;
+ DWORD i, ret;
INT mismatched = 0;
const FILE_ENTRY *entryToMove;
const FILE_ENTRY *fileDest;
@@ -1426,7 +1426,11 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con
@@ -1427,7 +1427,11 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const
}
if (!PathFileExistsW(flTo->feFiles[0].szDirectory))
- return ERROR_CANCELLED;
+ {
+ ret = SHCreateDirectoryExW(NULL, flTo->feFiles[0].szDirectory, NULL);
+ int ret = SHCreateDirectoryExW(NULL, flTo->feFiles[0].szDirectory, NULL);
+ if (ret)
+ return ret;
+ }