From: Ziqing Hui <zhui(a)codeweavers.com> --- dlls/shell32/shlfileop.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c index ed3c7f46743..fb8c73fa83a 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -1012,6 +1012,11 @@ static void file_list_destroy(FILE_LIST *flList) free(flList->feFiles); } +static BOOL has_wildcard(const WCHAR *str) +{ + return !!wcspbrk(str, L"*?"); +} + static LPWSTR wildcard_to_file(LPCWSTR szWildCard, LPCWSTR szFileName) { LPCWSTR ptr; @@ -1074,7 +1079,7 @@ static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles, BOOL parse_wi while (*ptr) { - BOOL from_wildcard = !!wcspbrk(ptr, L"*?"); + BOOL from_wildcard = has_wildcard(ptr); /* change relative to absolute path */ if (PathIsRelativeW(ptr)) @@ -1198,7 +1203,7 @@ static DWORD do_copy(FILE_OPERATION *op, const FILE_ENTRY *from, const FILE_ENTR SHCreateDirectoryExW(NULL, target_dir, NULL); /* Source contains wildcard. */ - if (!!wcspbrk(from->szFullPath, L"*?")) + if (has_wildcard(from->szFullPath)) return copy_wildcard(op, from, to); /* Source is a dir. */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/7993