-- v4: msvcrt: Add _mbctokata_l implementation. msvcrt: Add _mbctohira_l implementation.
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 | 20 +++++++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index e56913feaeb..a4aff0cf408 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -983,7 +983,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) -@ stub _ismbchira_l +@ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) @ stub _ismbckata_l @ cdecl _ismbcl0(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index f64c6cf30b5..00d8104af2c 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1329,7 +1329,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) -@ stub _ismbchira_l +@ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) @ stub _ismbckata_l @ cdecl _ismbcl0(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 8e6a169a187..5ac9c2bec2b 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1335,7 +1335,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) -@ stub _ismbchira_l +@ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) @ stub _ismbckata_l @ cdecl _ismbcl0(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 4bef365a7c8..1677b431da7 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -655,7 +655,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) -@ stub _ismbchira_l +@ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) @ stub _ismbckata_l @ cdecl _ismbcl0(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 19f9335f545..d760d57f490 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -633,7 +633,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) -@ stub _ismbchira_l +@ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) @ stub _ismbckata_l @ cdecl _ismbcl0(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index e8194a690ad..2d78b49e291 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1730,11 +1730,17 @@ int CDECL _ismbcpunct(unsigned int ch) }
/********************************************************************* - * _ismbchira(MSVCRT.@) + * _ismbchira_l(MSVCRT.@) */ -int CDECL _ismbchira(unsigned int c) +int CDECL _ismbchira_l(unsigned int c, _locale_t locale) { - if(get_mbcinfo()->mbcodepage == 932) + pthreadmbcinfo mbcinfo; + + if(locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + if(mbcinfo->mbcodepage == 932) { /* Japanese/Hiragana, CP 932 */ return (c >= 0x829f && c <= 0x82f1); @@ -1742,6 +1748,14 @@ int CDECL _ismbchira(unsigned int c) return 0; }
+/********************************************************************* + * _ismbchira(MSVCRT.@) + */ +int CDECL _ismbchira(unsigned int c) +{ + return _ismbchira_l(c, NULL); +} + /********************************************************************* * _ismbckata(MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 5ed054df51f..4d59cad4f26 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -604,7 +604,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) -# stub _ismbchira_l(long ptr) +@ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) # stub _ismbckata_l(long ptr) @ cdecl _ismbcl0(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index e40a4ccaea5..14729c68eda 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -475,7 +475,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) -@ stub _ismbchira_l +@ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) @ stub _ismbckata_l @ cdecl _ismbcl0(long) @@ -1074,7 +1074,7 @@ @ cdecl _o__ismbcgraph(long) _ismbcgraph @ cdecl _o__ismbcgraph_l(long ptr) _ismbcgraph_l @ cdecl _o__ismbchira(long) _ismbchira -@ stub _o__ismbchira_l +@ cdecl _o__ismbchira_l(long ptr) _ismbchira_l @ cdecl _o__ismbckata(long) _ismbckata @ stub _o__ismbckata_l @ cdecl _o__ismbcl0(long) _ismbcl0
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 | 19 ++++++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index a4aff0cf408..34e8a98b146 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -985,7 +985,7 @@ @ cdecl _ismbchira(long) @ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) -@ stub _ismbckata_l +@ cdecl _ismbckata_l(long ptr) @ cdecl _ismbcl0(long) @ cdecl _ismbcl0_l(long ptr) @ cdecl _ismbcl1(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 00d8104af2c..738adcb5ced 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1331,7 +1331,7 @@ @ cdecl _ismbchira(long) @ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) -@ stub _ismbckata_l +@ cdecl _ismbckata_l(long ptr) @ cdecl _ismbcl0(long) @ cdecl _ismbcl0_l(long ptr) @ cdecl _ismbcl1(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 5ac9c2bec2b..8aa35a0243b 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1337,7 +1337,7 @@ @ cdecl _ismbchira(long) @ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) -@ stub _ismbckata_l +@ cdecl _ismbckata_l(long ptr) @ cdecl _ismbcl0(long) @ cdecl _ismbcl0_l(long ptr) @ cdecl _ismbcl1(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 1677b431da7..962a7bd5c63 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -657,7 +657,7 @@ @ cdecl _ismbchira(long) @ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) -@ stub _ismbckata_l +@ cdecl _ismbckata_l(long ptr) @ cdecl _ismbcl0(long) @ cdecl _ismbcl0_l(long ptr) @ cdecl _ismbcl1(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index d760d57f490..52bd096d5d4 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -635,7 +635,7 @@ @ cdecl _ismbchira(long) @ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) -@ stub _ismbckata_l +@ cdecl _ismbckata_l(long ptr) @ cdecl _ismbcl0(long) @ cdecl _ismbcl0_l(long ptr) @ cdecl _ismbcl1(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 2d78b49e291..f07183d1f1a 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1757,11 +1757,17 @@ int CDECL _ismbchira(unsigned int c) }
/********************************************************************* - * _ismbckata(MSVCRT.@) + * _ismbckata_l(MSVCRT.@) */ -int CDECL _ismbckata(unsigned int c) +int CDECL _ismbckata_l(unsigned int c, _locale_t locale) { - if(get_mbcinfo()->mbcodepage == 932) + pthreadmbcinfo mbcinfo; + + if(locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + if(mbcinfo->mbcodepage == 932) { /* Japanese/Katakana, CP 932 */ return (c >= 0x8340 && c <= 0x8396 && c != 0x837f); @@ -1769,6 +1775,13 @@ int CDECL _ismbckata(unsigned int c) return 0; }
+/********************************************************************* + * _ismbckata(MSVCRT.@) + */ +int CDECL _ismbckata(unsigned int c) +{ + return _ismbckata_l(c, NULL); +}
/********************************************************************* * _ismbblead_l(MSVCRT.@) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 4d59cad4f26..cec5cb9c5f3 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -606,7 +606,7 @@ @ cdecl _ismbchira(long) @ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) -# stub _ismbckata_l(long ptr) +# cdecl _ismbckata_l(long ptr) @ cdecl _ismbcl0(long) @ cdecl _ismbcl0_l(long ptr) @ cdecl _ismbcl1(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 14729c68eda..75ef6446635 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -477,7 +477,7 @@ @ cdecl _ismbchira(long) @ cdecl _ismbchira_l(long ptr) @ cdecl _ismbckata(long) -@ stub _ismbckata_l +@ cdecl _ismbckata_l(long ptr) @ cdecl _ismbcl0(long) @ cdecl _ismbcl0_l(long ptr) @ cdecl _ismbcl1(long) @@ -1076,7 +1076,7 @@ @ cdecl _o__ismbchira(long) _ismbchira @ cdecl _o__ismbchira_l(long ptr) _ismbchira_l @ cdecl _o__ismbckata(long) _ismbckata -@ stub _o__ismbckata_l +@ cdecl _o__ismbckata_l(long ptr) _ismbckata_l @ cdecl _o__ismbcl0(long) _ismbcl0 @ cdecl _o__ismbcl0_l(long ptr) _ismbcl0_l @ cdecl _o__ismbcl1(long) _ismbcl1
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 | 21 ++++++++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 2 +- 8 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 34e8a98b146..f8d88e44f63 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1069,7 +1069,7 @@ @ cdecl _makepath_s(ptr long str str str str) @ cdecl _malloc_crt(long) malloc @ cdecl _mbbtombc(long) -@ stub _mbbtombc_l +@ cdecl _mbbtombc_l(long ptr) @ cdecl _mbbtype(long long) @ cdecl _mbbtype_l(long long ptr) # extern _mbcasemap diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 738adcb5ced..e7ebd746619 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1426,7 +1426,7 @@ @ cdecl _makepath_s(ptr long str str str str) @ cdecl _malloc_crt(long) malloc @ cdecl _mbbtombc(long) -@ stub _mbbtombc_l +@ cdecl _mbbtombc_l(long ptr) @ cdecl _mbbtype(long long) @ cdecl _mbbtype_l(long long ptr) # extern _mbcasemap diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 8aa35a0243b..721f4ec44d9 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1437,7 +1437,7 @@ @ cdecl _makepath_s(ptr long str str str str) @ cdecl _malloc_crt(long) malloc @ cdecl _mbbtombc(long) -@ stub _mbbtombc_l +@ cdecl _mbbtombc_l(long ptr) @ cdecl _mbbtype(long long) @ cdecl _mbbtype_l(long long ptr) # extern _mbcasemap diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 962a7bd5c63..b20b680ddb8 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -741,7 +741,7 @@ @ cdecl _makepath_s(ptr long str str str str) @ cdecl _malloc_crt(long) malloc @ cdecl _mbbtombc(long) -@ stub _mbbtombc_l +@ cdecl _mbbtombc_l(long ptr) @ cdecl _mbbtype(long long) @ cdecl _mbbtype_l(long long ptr) # extern _mbcasemap diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 52bd096d5d4..cd83242f574 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -719,7 +719,7 @@ @ cdecl _makepath_s(ptr long str str str str) @ cdecl _malloc_crt(long) malloc @ cdecl _mbbtombc(long) -@ stub _mbbtombc_l +@ cdecl _mbbtombc_l(long ptr) @ cdecl _mbbtype(long long) @ cdecl _mbbtype_l(long long ptr) # extern _mbcasemap diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index f07183d1f1a..b78e57bcdd3 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1512,11 +1512,18 @@ unsigned char* CDECL _mbstok(unsigned char *str, const unsigned char *delim) }
/********************************************************************* - * _mbbtombc(MSVCRT.@) + * _mbbtombc_l(MSVCRT.@) */ -unsigned int CDECL _mbbtombc(unsigned int c) +unsigned int CDECL _mbbtombc_l(unsigned int c, _locale_t locale) { - if(get_mbcinfo()->mbcodepage == 932) + pthreadmbcinfo mbcinfo; + + if(locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + + if(mbcinfo->mbcodepage == 932) { if(c >= 0x20 && c <= 0x7e) { if((c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a) || (c >= 0x30 && c <= 0x39)) @@ -1534,6 +1541,14 @@ unsigned int CDECL _mbbtombc(unsigned int c) return c; /* not Japanese or no MB char */ }
+/********************************************************************* + * _mbbtombc(MSVCRT.@) + */ +unsigned int CDECL _mbbtombc(unsigned int c) +{ + return _mbbtombc_l(c, NULL); +} + /********************************************************************* * _ismbbkana_l(MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index cec5cb9c5f3..a78bed13e31 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -687,7 +687,7 @@ @ cdecl _makepath_s(ptr long str str str str) # stub _malloc_dbg(long long str long) @ cdecl _mbbtombc(long) -# stub _mbbtombc_l(long ptr) +# cdecl _mbbtombc_l(long ptr) @ cdecl _mbbtype(long long) # extern _mbcasemap @ cdecl _mbccpy(ptr ptr) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 75ef6446635..9e0cbe7a89f 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -584,7 +584,7 @@ @ cdecl _makepath_s(ptr long str str str str) @ cdecl _malloc_base(long) @ cdecl _mbbtombc(long) -@ stub _mbbtombc_l +@ cdecl _mbbtombc_l(long ptr) @ cdecl _mbbtype(long long) @ cdecl _mbbtype_l(long long ptr) @ stub _mbcasemap
From: Bartosz Kosiorek gang65@poczta.onet.pl
--- dlls/ucrtbase/ucrtbase.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 9e0cbe7a89f..fe30ed63d3d 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -1155,7 +1155,7 @@ @ cdecl _o__makepath_s(ptr long str str str str) _makepath_s @ cdecl _o__malloc_base(long) _malloc_base @ cdecl _o__mbbtombc(long) _mbbtombc -@ stub _o__mbbtombc_l +@ cdecl _o__mbbtombc_l(long ptr) _mbbtombc_l @ cdecl _o__mbbtype(long long) _mbbtype @ cdecl _o__mbbtype_l(long long ptr) _mbbtype_l @ cdecl _o__mbccpy(ptr ptr) _mbccpy @@ -1173,11 +1173,11 @@ @ cdecl _o__mbctokata(long) _mbctokata @ stub _o__mbctokata_l @ cdecl _o__mbctolower(long) _mbctolower -@ stub _o__mbctolower_l +@ cdecl _o__mbctolower_l(long ptr) _mbctolower_l @ cdecl _o__mbctombb(long) _mbctombb @ stub _o__mbctombb_l @ cdecl _o__mbctoupper(long) _mbctoupper -@ stub _o__mbctoupper_l +@ cdecl _o__mbctoupper_l(long ptr) _mbctoupper_l @ stub _o__mblen_l @ cdecl _o__mbsbtype(str long) _mbsbtype @ stub _o__mbsbtype_l @@ -1206,7 +1206,7 @@ @ cdecl _o__mbslwr(str) _mbslwr @ stub _o__mbslwr_l @ cdecl _o__mbslwr_s(str long) _mbslwr_s -@ stub _o__mbslwr_s_l +@ cdecl _o__mbslwr_s_l(str long ptr) _mbslwr_s_l @ cdecl _o__mbsnbcat(str str long) _mbsnbcat @ stub _o__mbsnbcat_l @ cdecl _o__mbsnbcat_s(str long ptr long) _mbsnbcat_s @@ -1286,7 +1286,7 @@ @ cdecl _o__mbsupr(str) _mbsupr @ stub _o__mbsupr_l @ cdecl _o__mbsupr_s(str long) _mbsupr_s -@ stub _o__mbsupr_s_l +@ cdecl _o__mbsupr_s_l(str long ptr) _mbsupr_s_l @ cdecl _o__mbtowc_l(ptr str long ptr) _mbtowc_l @ cdecl _o__memicmp(str str long) _memicmp @ cdecl _o__memicmp_l(str str long ptr) _memicmp_l
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 | 19 ++++++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 24 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..51bbaf1d47a 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,14 @@ unsigned int CDECL _mbcjistojms(unsigned int c) return c; }
+/********************************************************************* + * _mbcjistojms(MSVCRT.@) + */ +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 fe30ed63d3d..819240a5015 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
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 | 21 +++++++++++++++++---- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- include/msvcrt/mbstring.h | 1 + 9 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index b8539d8161c..fe5a97dace3 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1080,7 +1080,7 @@ @ cdecl _mbcjistojms(long) @ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) -@ stub _mbcjmstojis_l +@ cdecl _mbcjmstojis_l(long ptr) @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index f2c8f79bc0e..401161fb0f9 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1437,7 +1437,7 @@ @ cdecl _mbcjistojms(long) @ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) -@ stub _mbcjmstojis_l +@ cdecl _mbcjmstojis_l(long ptr) @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 80d1345d2c8..191dcc49407 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1448,7 +1448,7 @@ @ cdecl _mbcjistojms(long) @ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) -@ stub _mbcjmstojis_l +@ cdecl _mbcjmstojis_l(long ptr) @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 04141960357..05312dcf158 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -752,7 +752,7 @@ @ cdecl _mbcjistojms(long) @ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) -@ stub _mbcjmstojis_l +@ cdecl _mbcjmstojis_l(long ptr) @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 2e486c85a6d..92e55266ba5 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -730,7 +730,7 @@ @ cdecl _mbcjistojms(long) @ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) -@ stub _mbcjmstojis_l +@ cdecl _mbcjmstojis_l(long ptr) @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 51bbaf1d47a..e54e7135aff 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -605,17 +605,22 @@ unsigned int CDECL _mbcjistojms(unsigned int c) }
/********************************************************************* - * _mbcjmstojis(MSVCRT.@) + * _mbcjmstojis_l(MSVCRT.@) * * Converts a sjis character to jis. */ -unsigned int CDECL _mbcjmstojis(unsigned int c) +unsigned int CDECL _mbcjmstojis_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(_ismbclegal(c) && HIBYTE(c) < 0xf0) + if(_ismbclegal_l(c, locale) && HIBYTE(c) < 0xf0) { if(HIBYTE(c) >= 0xe0) c -= 0x4000; @@ -637,6 +642,14 @@ unsigned int CDECL _mbcjmstojis(unsigned int c) return c; }
+/********************************************************************* + * _mbcjmstojis(MSVCRT.@) + */ +unsigned int CDECL _mbcjmstojis(unsigned int c) +{ + return _mbcjmstojis_l(c, NULL); +} + /********************************************************************* * _mbsdec(MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index ab3659afa69..84a010abe42 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -697,7 +697,7 @@ @ cdecl _mbcjistojms (long) @ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) -# stub _mbcjmstojis_l(long ptr) +@ cdecl _mbcjmstojis_l(long ptr) @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 819240a5015..77d6fea014a 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -595,7 +595,7 @@ @ cdecl _mbcjistojms(long) @ cdecl _mbcjistojms_l(long ptr) @ cdecl _mbcjmstojis(long) -@ stub _mbcjmstojis_l +@ cdecl _mbcjmstojis_l(long ptr) @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) @@ -1165,7 +1165,7 @@ @ cdecl _o__mbcjistojms(long) _mbcjistojms @ cdecl _o__mbcjistojms_l(long ptr) _mbcjistojms_l @ cdecl _o__mbcjmstojis(long) _mbcjmstojis -@ stub _o__mbcjmstojis_l +@ cdecl _o__mbcjmstojis_l(long ptr) _mbcjmstojis_l @ cdecl _o__mbclen(ptr) _mbclen @ cdecl _o__mbclen_l(ptr ptr) _mbclen_l @ cdecl _o__mbctohira(long) _mbctohira diff --git a/include/msvcrt/mbstring.h b/include/msvcrt/mbstring.h index 1de3307326f..28a0e41f10d 100644 --- a/include/msvcrt/mbstring.h +++ b/include/msvcrt/mbstring.h @@ -43,6 +43,7 @@ _ACRTIMP int __cdecl _ismbcl0(unsigned int); _ACRTIMP int __cdecl _ismbcl1(unsigned int); _ACRTIMP int __cdecl _ismbcl2(unsigned int); _ACRTIMP int __cdecl _ismbclegal(unsigned int); +_ACRTIMP int __cdecl _ismbclegal_l(unsigned int, _locale_t); _ACRTIMP int __cdecl _ismbclower(unsigned int); _ACRTIMP int __cdecl _ismbcprint(unsigned int); _ACRTIMP int __cdecl _ismbcpunct(unsigned int);
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 | 19 ++++++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index fe5a97dace3..ae73fdb0835 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1090,7 +1090,7 @@ @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) -@ stub _mbctombb_l +@ cdecl _mbctombb_l(long ptr) @ cdecl _mbctoupper(long) @ cdecl _mbctoupper_l(long ptr) @ extern _mbctype MSVCRT_mbctype diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 401161fb0f9..180986405c8 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1447,7 +1447,7 @@ @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) -@ stub _mbctombb_l +@ cdecl _mbctombb_l(long ptr) @ cdecl _mbctoupper(long) @ cdecl _mbctoupper_l(long ptr) @ extern _mbctype MSVCRT_mbctype diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 191dcc49407..751f7701046 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1458,7 +1458,7 @@ @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) -@ stub _mbctombb_l +@ cdecl _mbctombb_l(long ptr) @ cdecl _mbctoupper(long) @ cdecl _mbctoupper_l(long ptr) @ extern _mbctype MSVCRT_mbctype diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 05312dcf158..d84b4faf265 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -762,7 +762,7 @@ @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) -@ stub _mbctombb_l +@ cdecl _mbctombb_l(long ptr) @ cdecl _mbctoupper(long) @ cdecl _mbctoupper_l(long ptr) @ extern _mbctype MSVCRT_mbctype diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 92e55266ba5..27593fbcaef 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -740,7 +740,7 @@ @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) -@ stub _mbctombb_l +@ cdecl _mbctombb_l(long ptr) @ cdecl _mbctoupper(long) @ cdecl _mbctoupper_l(long ptr) @ extern _mbctype MSVCRT_mbctype diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index e54e7135aff..3b653cfff23 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -528,13 +528,18 @@ unsigned int CDECL _mbctoupper(unsigned int c) }
/********************************************************************* - * _mbctombb (MSVCRT.@) + * _mbctombb_l (MSVCRT.@) */ -unsigned int CDECL _mbctombb(unsigned int c) +unsigned int CDECL _mbctombb_l(unsigned int c, _locale_t locale) { unsigned int value; + pthreadmbcinfo mbcinfo;
- if(get_mbcinfo()->mbcodepage == 932) + if(locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + if(mbcinfo->mbcodepage == 932) { if(c >= 0x829f && c <= 0x82f1) /* Hiragana */ return mbctombb_932_kana[c - 0x829f]; @@ -555,6 +560,14 @@ unsigned int CDECL _mbctombb(unsigned int c) return c; }
+/********************************************************************* + * _mbctombb (MSVCRT.@) + */ +unsigned int CDECL _mbctombb(unsigned int c) +{ + return _mbctombb_l(c, NULL); +} + /********************************************************************* * _mbcjistojms_l(MSVCRT.@) * diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 84a010abe42..90e54cab83c 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -707,7 +707,7 @@ @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) -# stub _mbctombb_l(long ptr) +@ cdecl _mbctombb_l(long ptr) @ cdecl _mbctoupper(long) @ cdecl _mbctoupper_l(long ptr) @ extern _mbctype MSVCRT_mbctype diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 77d6fea014a..29e0dc9a6e4 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -605,7 +605,7 @@ @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) -@ stub _mbctombb_l +@ cdecl _mbctombb_l(long ptr) @ cdecl _mbctoupper(long) @ cdecl _mbctoupper_l(long ptr) @ stub _mblen_l @@ -1175,7 +1175,7 @@ @ cdecl _o__mbctolower(long) _mbctolower @ cdecl _o__mbctolower_l(long ptr) _mbctolower_l @ cdecl _o__mbctombb(long) _mbctombb -@ stub _o__mbctombb_l +@ cdecl _o__mbctombb_l(long ptr) _mbctombb_l @ cdecl _o__mbctoupper(long) _mbctoupper @ cdecl _o__mbctoupper_l(long ptr) _mbctoupper_l @ stub _o__mblen_l
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 | 14 +++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index ae73fdb0835..d32bed81d18 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1084,7 +1084,7 @@ @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) -@ stub _mbctohira_l +@ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) @ stub _mbctokata_l @ cdecl _mbctolower(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 180986405c8..d3c6760ee75 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1441,7 +1441,7 @@ @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) -@ stub _mbctohira_l +@ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) @ stub _mbctokata_l @ cdecl _mbctolower(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 751f7701046..b54edaf48d4 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1452,7 +1452,7 @@ @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) -@ stub _mbctohira_l +@ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) @ stub _mbctokata_l @ cdecl _mbctolower(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index d84b4faf265..5c11c5d871c 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -756,7 +756,7 @@ @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) -@ stub _mbctohira_l +@ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) @ stub _mbctokata_l @ cdecl _mbctolower(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 27593fbcaef..9c25f566a96 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -734,7 +734,7 @@ @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) -@ stub _mbctohira_l +@ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) @ stub _mbctokata_l @ cdecl _mbctolower(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 3b653cfff23..32ed7a56c45 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2943,17 +2943,25 @@ int CDECL mbsrtowcs_s(size_t *ret, wchar_t *wcstr, size_t len, }
/********************************************************************* - * _mbctohira (MSVCRT.@) + * _mbctohira_l (MSVCRT.@) * * Converts a sjis katakana character to hiragana. */ -unsigned int CDECL _mbctohira(unsigned int c) +unsigned int CDECL _mbctohira_l(unsigned int c, _locale_t locale) { - if(_ismbckata(c) && c <= 0x8393) + if(_ismbckata_l(c, locale) && c <= 0x8393) return (c - 0x8340 - (c >= 0x837f ? 1 : 0)) + 0x829f; return c; }
+/********************************************************************* + * _mbctohira (MSVCRT.@) + */ +unsigned int CDECL _mbctohira(unsigned int c) +{ + return _mbctohira_l(c, NULL); +} + /********************************************************************* * _mbctokata (MSVCRT.@) * diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 90e54cab83c..3c8476f8b61 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -701,7 +701,7 @@ @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) -# stub _mbctohira_l(long ptr) +@ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) # stub _mbctokata_l(long ptr) @ cdecl _mbctolower(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 29e0dc9a6e4..ea017cbffcd 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -599,7 +599,7 @@ @ cdecl _mbclen(ptr) @ cdecl _mbclen_l(ptr ptr) @ cdecl _mbctohira(long) -@ stub _mbctohira_l +@ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) @ stub _mbctokata_l @ cdecl _mbctolower(long) @@ -1169,7 +1169,7 @@ @ cdecl _o__mbclen(ptr) _mbclen @ cdecl _o__mbclen_l(ptr ptr) _mbclen_l @ cdecl _o__mbctohira(long) _mbctohira -@ stub _o__mbctohira_l +@ cdecl _o__mbctohira_l(long ptr) _mbctohira_l @ cdecl _o__mbctokata(long) _mbctokata @ stub _o__mbctokata_l @ cdecl _o__mbctolower(long) _mbctolower
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 | 15 ++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index d32bed81d18..4be6144ca7e 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1086,7 +1086,7 @@ @ cdecl _mbctohira(long) @ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) -@ stub _mbctokata_l +@ cdecl _mbctokata_l(long ptr) @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index d3c6760ee75..aee92ec232f 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1443,7 +1443,7 @@ @ cdecl _mbctohira(long) @ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) -@ stub _mbctokata_l +@ cdecl _mbctokata_l(long ptr) @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index b54edaf48d4..6c0d560b67f 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1454,7 +1454,7 @@ @ cdecl _mbctohira(long) @ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) -@ stub _mbctokata_l +@ cdecl _mbctokata_l(long ptr) @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 5c11c5d871c..f3981ed3dea 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -758,7 +758,7 @@ @ cdecl _mbctohira(long) @ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) -@ stub _mbctokata_l +@ cdecl _mbctokata_l(long ptr) @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 9c25f566a96..3e581b911e2 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -736,7 +736,7 @@ @ cdecl _mbctohira(long) @ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) -@ stub _mbctokata_l +@ cdecl _mbctokata_l(long ptr) @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 32ed7a56c45..d53f26b3ca4 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2963,17 +2963,26 @@ unsigned int CDECL _mbctohira(unsigned int c) }
/********************************************************************* - * _mbctokata (MSVCRT.@) + * _mbctokata_l (MSVCRT.@) * * Converts a sjis hiragana character to katakana. */ -unsigned int CDECL _mbctokata(unsigned int c) +unsigned int CDECL _mbctokata_l(unsigned int c, _locale_t locale) { - if(_ismbchira(c)) + if(_ismbchira_l(c, locale)) return (c - 0x829f) + 0x8340 + (c >= 0x82de ? 1 : 0); return c; }
+ +/********************************************************************* + * _mbctokata (MSVCRT.@) + */ +unsigned int CDECL _mbctokata(unsigned int c) +{ + return _mbctokata_l(c, NULL); +} + /********************************************************************* * _ismbcl0_l (MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 3c8476f8b61..a862732dd34 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -703,7 +703,7 @@ @ cdecl _mbctohira(long) @ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) -# stub _mbctokata_l(long ptr) +@ cdecl _mbctokata_l(long ptr) @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index ea017cbffcd..c7bff96ee26 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -601,7 +601,7 @@ @ cdecl _mbctohira(long) @ cdecl _mbctohira_l(long ptr) @ cdecl _mbctokata(long) -@ stub _mbctokata_l +@ cdecl _mbctokata_l(long ptr) @ cdecl _mbctolower(long) @ cdecl _mbctolower_l(long ptr) @ cdecl _mbctombb(long) @@ -1171,7 +1171,7 @@ @ cdecl _o__mbctohira(long) _mbctohira @ cdecl _o__mbctohira_l(long ptr) _mbctohira_l @ cdecl _o__mbctokata(long) _mbctokata -@ stub _o__mbctokata_l +@ cdecl _o__mbctokata_l(long ptr) _mbctokata_l @ cdecl _o__mbctolower(long) _mbctolower @ cdecl _o__mbctolower_l(long ptr) _mbctolower_l @ cdecl _o__mbctombb(long) _mbctombb