* Copyright 2002 Andriy Palamarchuk
* Copyright 2004 Dietrich Teickner (from Odin)
* Copyright 2004 Rolf Kalbermatter
+ * Copyright 2019 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
{
DWORD dwLen = lstrlenW(szFile) + 1;
LPCWSTR ptr;
+ LPCWSTR ptr2;
feFile->szFullPath = (LPWSTR)HeapAlloc(GetProcessHeap(), 0, dwLen * sizeof(WCHAR));
lstrcpyW(feFile->szFullPath, szFile);
ptr = StrRChrW(szFile, NULL, '\\');
+ ptr2 = StrRChrW(szFile, NULL, '/');
+ if (!ptr || ptr < ptr2)
+ ptr = ptr2;
if (ptr)
{
dwLen = ptr - szFile + 1;
static LPWSTR wildcard_to_file(LPCWSTR szWildCard, LPCWSTR szFileName)
{
LPCWSTR ptr;
+ LPCWSTR ptr2;
LPWSTR szFullPath;
DWORD dwDirLen, dwFullLen;
ptr = StrRChrW(szWildCard, NULL, '\\');
+ ptr2 = StrRChrW(szWildCard, NULL, '/');
+ if (!ptr || ptr < ptr2)
+ ptr = ptr2;
dwDirLen = ptr - szWildCard + 1;
dwFullLen = dwDirLen + lstrlenW(szFileName) + 1;
destroy_file_list(&flFromNew);
destroy_file_list(&flToNew);
+
+ if (PathIsDirectoryEmptyW(feFrom->szFullPath))
+ Win32RemoveDirectoryW(feFrom->szFullPath);
}
/* moves a file or directory to another directory */
if (!(multiDest) &&
!flFrom->bAnyDirectories &&
- flFrom->dwNumFiles > flTo->dwNumFiles)
+ flFrom->dwNumFiles > flTo->dwNumFiles &&
+ !(flTo->bAnyDirectories && flTo->dwNumFiles == 1))
{
return ERROR_CANCELLED;
}
if (FAILED(ret))
return ret;
+ lpFileOp->fAnyOperationsAborted = FALSE;
check_flags(lpFileOp->fFlags);
ZeroMemory(&flFrom, sizeof(FILE_LIST));