From 87c3df1578803f63ce68096c07c42c3af279077c Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Fri, 25 Jul 2008 11:16:54 -0700 Subject: [PATCH] shlwapi: Use CharNextA to iterate through characters in PathAddBackslashA. Fixes problems with MBCS paths. --- dlls/shlwapi/path.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dlls/shlwapi/path.c b/dlls/shlwapi/path.c index d0d4e93c3bc..e06e027aa25 100644 --- a/dlls/shlwapi/path.c +++ b/dlls/shlwapi/path.c @@ -235,6 +235,7 @@ LPWSTR WINAPI PathCombineW(LPWSTR lpszDest, LPCWSTR lpszDir, LPCWSTR lpszFile) LPSTR WINAPI PathAddBackslashA(LPSTR lpszPath) { size_t iLen; + LPSTR prev = lpszPath; TRACE("(%s)\n",debugstr_a(lpszPath)); @@ -243,11 +244,15 @@ LPSTR WINAPI PathAddBackslashA(LPSTR lpszPath) if (iLen) { - lpszPath += iLen; - if (lpszPath[-1] != '\\') + do { + lpszPath = CharNextA(prev); + if (*lpszPath) + prev = lpszPath; + } while (*lpszPath); + if (*prev != '\\') { - *lpszPath++ = '\\'; - *lpszPath = '\0'; + *lpszPath++ = '\\'; + *lpszPath = '\0'; } } return lpszPath;