Damjan Jovanovic : shell32: Deal better with spaces in ASSOCSTR_COMMAND values.
Module: wine Branch: master Commit: b585b24397f93b3a323b2f3674b4b5d61bc035a6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b585b24397f93b3a323b2f3674... Author: Damjan Jovanovic <damjan.jov(a)gmail.com> Date: Mon Nov 23 21:43:42 2009 +0200 shell32: Deal better with spaces in ASSOCSTR_COMMAND values. --- dlls/shell32/assoc.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) 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);
participants (1)
-
Alexandre Julliard