From 769a4bb5864b49aa8af7c1047bb2d8c93061adbd Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 19 Apr 2004 03:05:07 +0000 Subject: [PATCH] Fixed ntdll_wcstoumbs and WideCharToMultiByte to set the 'used' flag for UTF-8 codepage too. This was causing DIR_nt_to_unix to fail in some cases (tracked down with help from Alex Pasadyn). --- dlls/kernel/locale.c | 1 + dlls/ntdll/rtlstr.c | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dlls/kernel/locale.c b/dlls/kernel/locale.c index 43ea7721621..a0a78baeedb 100644 --- a/dlls/kernel/locale.c +++ b/dlls/kernel/locale.c @@ -1535,6 +1535,7 @@ INT WINAPI WideCharToMultiByte( UINT page, DWORD flags, LPCWSTR src, INT srclen, } /* fall through */ case CP_UTF8: + if (used) *used = FALSE; /* all chars are valid for UTF-8 */ ret = wine_utf8_wcstombs( src, srclen, dst, dstlen ); break; default: diff --git a/dlls/ntdll/rtlstr.c b/dlls/ntdll/rtlstr.c index 7cd640e8c76..ccedf876b9b 100644 --- a/dlls/ntdll/rtlstr.c +++ b/dlls/ntdll/rtlstr.c @@ -71,10 +71,11 @@ int ntdll_umbstowcs(DWORD flags, const char* src, int srclen, WCHAR* dst, int ds int ntdll_wcstoumbs(DWORD flags, const WCHAR* src, int srclen, char* dst, int dstlen, const char* defchar, int *used ) -{ - return (unix_table) ? - wine_cp_wcstombs( unix_table, flags, src, srclen, dst, dstlen, defchar, used ) : - wine_utf8_wcstombs( src, srclen, dst, dstlen ); +{ + if (unix_table) + return wine_cp_wcstombs( unix_table, flags, src, srclen, dst, dstlen, defchar, used ); + if (used) *used = 0; /* all chars are valid for UTF-8 */ + return wine_utf8_wcstombs( src, srclen, dst, dstlen ); } /************************************************************************** -- 2.11.4.GIT