From 0eb112aa6e91454e279cc44cfb87c8155707fe41 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Mon, 6 Jul 2015 19:40:01 +0200 Subject: [PATCH] msvcrt: Add ismbblead_l implementation. --- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr120_app/msvcr120_app.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/mbcs.c | 18 +++++++++++++++++- dlls/msvcrt/msvcrt.spec | 2 +- 8 files changed, 24 insertions(+), 8 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index b41037ae18f..986e3724a9f 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -966,7 +966,7 @@ @ stub _ismbbkpunct(long) @ stub _ismbbkpunct_l @ cdecl _ismbblead(long) -@ stub _ismbblead_l +@ cdecl _ismbblead_l(long ptr) @ stub _ismbbprint(long) @ stub _ismbbprint_l @ stub _ismbbpunct(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index e5ef1bb0a60..78131aa82eb 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1313,7 +1313,7 @@ @ stub _ismbbkpunct(long) @ stub _ismbbkpunct_l @ cdecl _ismbblead(long) -@ stub _ismbblead_l +@ cdecl _ismbblead_l(long ptr) @ stub _ismbbprint(long) @ stub _ismbbprint_l @ stub _ismbbpunct(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index ff034b7f8f6..9fb8d932f03 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1314,7 +1314,7 @@ @ stub _ismbbkpunct(long) @ stub _ismbbkpunct_l @ cdecl _ismbblead(long) -@ stub _ismbblead_l +@ cdecl _ismbblead_l(long ptr) @ stub _ismbbprint(long) @ stub _ismbbprint_l @ stub _ismbbpunct(long) diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index 0b8a15a4fb5..3ff423d2468 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -1219,7 +1219,7 @@ @ cdecl _ismbbkpunct(long) msvcr120._ismbbkpunct @ stub _ismbbkpunct_l @ cdecl _ismbblead(long) msvcr120._ismbblead -@ stub _ismbblead_l +@ cdecl _ismbblead_l(long ptr) msvcr120._ismbblead_l @ cdecl _ismbbprint(long) msvcr120._ismbbprint @ stub _ismbbprint_l @ cdecl _ismbbpunct(long) msvcr120._ismbbpunct diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 23bded4ae57..ef24b911f37 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -639,7 +639,7 @@ @ stub _ismbbkpunct(long) @ stub _ismbbkpunct_l @ cdecl _ismbblead(long) -@ stub _ismbblead_l +@ cdecl _ismbblead_l(long ptr) @ stub _ismbbprint(long) @ stub _ismbbprint_l @ stub _ismbbpunct(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 32d850a2a96..e58b8f964e6 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -616,7 +616,7 @@ @ stub _ismbbkpunct(long) @ stub _ismbbkpunct_l @ cdecl _ismbblead(long) -@ stub _ismbblead_l +@ cdecl _ismbblead_l(long ptr) @ stub _ismbbprint(long) @ stub _ismbbprint_l @ stub _ismbbpunct(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 4c85b901334..8c4bc02e98b 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1374,12 +1374,28 @@ int CDECL _ismbckata(unsigned int c) return 0; } + +/********************************************************************* + * _ismbblead_l(MSVCRT.@) + */ +int CDECL _ismbblead_l(unsigned int c, MSVCRT__locale_t locale) +{ + MSVCRT_pthreadmbcinfo mbcinfo; + + if(!locale) + mbcinfo = get_mbcinfo(); + else + mbcinfo = locale->mbcinfo; + + return (mbcinfo->mbctype[(c&0xff) + 1] & _M1) != 0; +} + /********************************************************************* * _ismbblead(MSVCRT.@) */ int CDECL _ismbblead(unsigned int c) { - return (get_mbcinfo()->mbctype[(c&0xff) + 1] & _M1) != 0; + return _ismbblead_l(c, NULL); } diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index d7a58781c17..7fb13a6b783 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -585,7 +585,7 @@ @ stub _ismbbkpunct(long) # stub _ismbbkpunct_l(long ptr) @ cdecl _ismbblead(long) -# stub _ismbblead_l(long ptr) +@ cdecl _ismbblead_l(long ptr) @ stub _ismbbprint(long) # stub _ismbbprint_l(long ptr) @ stub _ismbbpunct(long)