Module: wine Branch: master Commit: 28f7e4615d9a02b6f556434e51568aab68edc35e URL: https://source.winehq.org/git/wine.git/?a=commit;h=28f7e4615d9a02b6f556434e5...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Apr 4 16:01:03 2019 +0200
shlwapi: Fix PathIsContentTypeA implementation.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/shlwapi/path.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/dlls/shlwapi/path.c b/dlls/shlwapi/path.c index ad78c5d..1c4af7e 100644 --- a/dlls/shlwapi/path.c +++ b/dlls/shlwapi/path.c @@ -2027,22 +2027,18 @@ BOOL WINAPI PathIsSameRootW(LPCWSTR lpszPath1, LPCWSTR lpszPath2) * a content type is registered, it is compared (case insensitively) to * lpszContentType. Only if this matches does the function succeed. */ -BOOL WINAPI PathIsContentTypeA(LPCSTR lpszPath, LPCSTR lpszContentType) +BOOL WINAPI PathIsContentTypeA(LPCSTR path, LPCSTR content_type) { - LPCSTR szExt; - DWORD dwDummy; - char szBuff[MAX_PATH]; + char buf[MAX_PATH]; + DWORD size = sizeof(buf); + LPCSTR ext;
- TRACE("(%s,%s)\n", debugstr_a(lpszPath), debugstr_a(lpszContentType)); + TRACE("(%s,%s)\n", debugstr_a(path), debugstr_a(content_type));
- if (lpszPath && (szExt = PathFindExtensionA(lpszPath)) && *szExt && - !SHGetValueA(HKEY_CLASSES_ROOT, szExt, "Content Type", - REG_NONE, szBuff, &dwDummy) && - !strcasecmp(lpszContentType, szBuff)) - { - return TRUE; - } - return FALSE; + if(!path) return FALSE; + if(!(ext = PathFindExtensionA(path)) || !*ext) return FALSE; + if(SHGetValueA(HKEY_CLASSES_ROOT, ext, "Content Type", NULL, buf, &size)) return FALSE; + return !lstrcmpiA(content_type, buf); }
/*************************************************************************