From: Bartosz Kosiorek gang65@poczta.onet.pl
--- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/mbcs.c | 23 ++++++++++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index f8d88e44f63..b8539d8161c 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1078,7 +1078,7 @@ @ cdecl _mbccpy_s(ptr long ptr ptr) @ cdecl _mbccpy_s_l(ptr long ptr ptr ptr) @ cdecl _mbcjistojms(long) -@ stub _mbcjistojms_l +@ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) @ stub _mbcjmstojis_l @ cdecl _mbclen(ptr) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index e7ebd746619..f2c8f79bc0e 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1435,7 +1435,7 @@ @ cdecl _mbccpy_s(ptr long ptr ptr) @ cdecl _mbccpy_s_l(ptr long ptr ptr ptr) @ cdecl _mbcjistojms(long) -@ stub _mbcjistojms_l +@ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) @ stub _mbcjmstojis_l @ cdecl _mbclen(ptr) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 721f4ec44d9..80d1345d2c8 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1446,7 +1446,7 @@ @ cdecl _mbccpy_s(ptr long ptr ptr) @ cdecl _mbccpy_s_l(ptr long ptr ptr ptr) @ cdecl _mbcjistojms(long) -@ stub _mbcjistojms_l +@ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) @ stub _mbcjmstojis_l @ cdecl _mbclen(ptr) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index b20b680ddb8..04141960357 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -750,7 +750,7 @@ @ cdecl _mbccpy_s(ptr long ptr ptr) @ cdecl _mbccpy_s_l(ptr long ptr ptr ptr) @ cdecl _mbcjistojms(long) -@ stub _mbcjistojms_l +@ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) @ stub _mbcjmstojis_l @ cdecl _mbclen(ptr) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index cd83242f574..2e486c85a6d 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -728,7 +728,7 @@ @ cdecl _mbccpy_s(ptr long ptr ptr) @ cdecl _mbccpy_s_l(ptr long ptr ptr ptr) @ cdecl _mbcjistojms(long) -@ stub _mbcjistojms_l +@ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) @ stub _mbcjmstojis_l @ cdecl _mbclen(ptr) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index b78e57bcdd3..6e01f0555d6 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -556,17 +556,22 @@ unsigned int CDECL _mbctombb(unsigned int c) }
/********************************************************************* - * _mbcjistojms(MSVCRT.@) + * _mbcjistojms_l(MSVCRT.@) * * Converts a jis character to sjis. * Based on description from * http://www.slayers.ne.jp/~oouchi/code/jistosjis.html */ -unsigned int CDECL _mbcjistojms(unsigned int c) +unsigned int CDECL _mbcjistojms_l(unsigned int c, _locale_t locale) { + pthreadmbcinfo mbcinfo; + if(locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); /* Conversion takes place only when codepage is 932. In all other cases, c is returned unchanged */ - if(get_mbcinfo()->mbcodepage == 932) + if(mbcinfo->mbcodepage == 932) { if(HIBYTE(c) >= 0x21 && HIBYTE(c) <= 0x7e && LOBYTE(c) >= 0x21 && LOBYTE(c) <= 0x7e) @@ -591,6 +596,18 @@ unsigned int CDECL _mbcjistojms(unsigned int c) return c; }
+/********************************************************************* + * _mbcjistojms(MSVCRT.@) + * + * Converts a jis character to sjis. + * Based on description from + * http://www.slayers.ne.jp/~oouchi/code/jistosjis.html + */ +unsigned int CDECL _mbcjistojms(unsigned int c) +{ + return _mbcjistojms_l(c, NULL); +} + /********************************************************************* * _mbcjmstojis(MSVCRT.@) * diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index a78bed13e31..ab3659afa69 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -695,7 +695,7 @@ @ cdecl _mbccpy_s(ptr long ptr ptr) @ cdecl _mbccpy_s_l(ptr long ptr ptr ptr) @ cdecl _mbcjistojms (long) -# stub _mbcjistojms_l(long ptr) +@ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) # stub _mbcjmstojis_l(long ptr) @ cdecl _mbclen(ptr) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 2d34150c93a..0c7c9db73d9 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -593,7 +593,7 @@ @ cdecl _mbccpy_s(ptr long ptr ptr) @ cdecl _mbccpy_s_l(ptr long ptr ptr ptr) @ cdecl _mbcjistojms(long) -@ stub _mbcjistojms_l +@ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) @ stub _mbcjmstojis_l @ cdecl _mbclen(ptr) @@ -1163,7 +1163,7 @@ @ cdecl _o__mbccpy_s(ptr long ptr ptr) _mbccpy_s @ cdecl _o__mbccpy_s_l(ptr long ptr ptr ptr) _mbccpy_s_l @ cdecl _o__mbcjistojms(long) _mbcjistojms -@ stub _o__mbcjistojms_l +@ cdecl _o__mbcjistojms_l(long ptr) _mbcjistojms_l @ cdecl _o__mbcjmstojis(long) _mbcjmstojis @ stub _o__mbcjmstojis_l @ cdecl _o__mbclen(ptr) _mbclen