shell32: deal better with spaces in ASSOCSTR_COMMAND values (try 3)
Damjan Jovanovic
damjan.jov at gmail.com
Mon Nov 23 13:43:42 CST 2009
Changelog:
* shell32: deal better with spaces in ASSOCSTR_COMMAND values
Damjan Jovanovic
-------------- next part --------------
diff --git a/dlls/shell32/assoc.c b/dlls/shell32/assoc.c
index bf9ccb9..85efa07 100644
--- a/dlls/shell32/assoc.c
+++ b/dlls/shell32/assoc.c
@@ -320,16 +320,25 @@ static HRESULT ASSOC_GetExecutable(IQueryAssociationsImpl *This,
{
pszStart = pszCommand + 1;
pszEnd = strchrW(pszStart, '"');
+ if (pszEnd)
+ *pszEnd = 0;
+ *len = SearchPathW(NULL, pszStart, NULL, pathlen, path, NULL);
}
else
{
pszStart = pszCommand;
- pszEnd = strchrW(pszStart, ' ');
+ for (pszEnd = pszStart; (pszEnd = strchrW(pszEnd, ' ')); pszEnd++)
+ {
+ WCHAR c = *pszEnd;
+ *pszEnd = 0;
+ if ((*len = SearchPathW(NULL, pszStart, NULL, pathlen, path, NULL)))
+ break;
+ *pszEnd = c;
+ }
+ if (!pszEnd)
+ *len = SearchPathW(NULL, pszStart, NULL, pathlen, path, NULL);
}
- if (pszEnd)
- *pszEnd = 0;
- *len = SearchPathW(NULL, pszStart, NULL, pathlen, path, NULL);
HeapFree(GetProcessHeap(), 0, pszCommand);
if (!*len)
return HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND);
More information about the wine-patches
mailing list