shell32: Fixed handling of null-terminated file list in SHFileOperation.
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_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 (!szFileList[0]) return -1;
+
+ while (*str)
{
- if (!*q)
- {
- if (StrPBrkW(str, wWildcardChars))
- dwCount += count_wildcard_files(str);
- else
- dwCount++;
+ if (StrPBrkW(str, wWildcardChars))
+ dwCount += count_wildcard_files(str);
+ else
+ dwCount++;
- str = q + 1;
- }
-
- p++;
- q++;
+ str += lstrlenW(str) + 1;
}
return dwCount;