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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 9e0cbe7a89f..2d34150c93a 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
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
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, 27 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 6e01f0555d6..85871c15868 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -609,17 +609,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; @@ -641,6 +646,16 @@ unsigned int CDECL _mbcjmstojis(unsigned int c) return c; }
+/********************************************************************* + * _mbcjmstojis(MSVCRT.@) + * + * Converts a sjis character to jis. + */ +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 0c7c9db73d9..c69bbe79bfb 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
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 85871c15868..4cd3cc08879 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 c69bbe79bfb..0d1510bc9a9 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 @ stub _o__mbctolower_l @ cdecl _o__mbctombb(long) _mbctombb -@ stub _o__mbctombb_l +@ cdecl _o__mbctombb_l(long ptr) _mbctombb_l @ cdecl _o__mbctoupper(long) _mbctoupper @ stub _o__mbctoupper_l @ stub _o__mblen_l
From: Bartosz Kosiorek gang65@poczta.onet.pl
--- dlls/ucrtbase/ucrtbase.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 0d1510bc9a9..29e0dc9a6e4 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -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 @ cdecl _o__mbctombb_l(long ptr) _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
Piotr Caban (@piotr) commented about dlls/ucrtbase/ucrtbase.spec:
@ 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
Since you need to update the MR (because of compilation failure) could you please merge this change to "msvcrt: Minor object function fixes." patch? Also please change commit message of the patch to something like: ucrtbase: Export more _o_* functions.
Piotr Caban (@piotr) commented about dlls/msvcrt/mbcs.c:
return c; }
+/*********************************************************************
_mbcjistojms(MSVCRT.@)
Converts a jis character to sjis.
Based on description from
http://www.slayers.ne.jp/~oouchi/code/jistosjis.html
There's no need to duplicate the comment in _mbcjistojms and _mbcjistojms_l functions.