Module: wine Branch: refs/heads/master Commit: b222001defc8d9db67232aae68f2d3a83c4ecd5d URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=b222001defc8d9db67232aae...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Mar 6 16:42:34 2006 +0100
shell32: Fixed handling of null-terminated file list in SHFileOperation.
---
dlls/shell32/shlfileop.c | 28 +++++++++------------------- 1 files changed, 9 insertions(+), 19 deletions(-)
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c index 18d1133..d6c9159 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -791,29 +791,19 @@ static DWORD count_wildcard_files(LPCWST static DWORD count_files(LPCWSTR szFileList) { DWORD dwCount = 0; - LPCWSTR p = szFileList; - LPCWSTR q = p + 1; - LPCWSTR str = p; + LPCWSTR str = szFileList;
/* test empty list */ - if (!szFileList[0] && !szFileList[1]) - return -1; - - /* p,q search: stop when we reach double null terminator */ - while (*p || *q) - { - if (!*q) - { - if (StrPBrkW(str, wWildcardChars)) - dwCount += count_wildcard_files(str); - else - dwCount++; + if (!szFileList[0]) return -1;
- str = q + 1; - } + while (*str) + { + if (StrPBrkW(str, wWildcardChars)) + dwCount += count_wildcard_files(str); + else + dwCount++;
- p++; - q++; + str += lstrlenW(str) + 1; }
return dwCount;