From f0bdbc0421a3e260edd1e24f13701cac56f48901 Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Fri, 25 Jul 2008 11:16:54 -0700 Subject: [PATCH] Use CharNextA to iterate through characters in PathAddBackslashA. Fixes problems with MBCS paths. --- dlls/shlwapi/path.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/dlls/shlwapi/path.c b/dlls/shlwapi/path.c index d0d4e93..e06e027 100644 --- a/dlls/shlwapi/path.c +++ b/dlls/shlwapi/path.c @@ -235,6 +235,7 @@ LPWSTR WINAPI PathCombineW(LPWSTR lpszDe 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 lps 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; -- 1.4.1