Piotr Caban : msvcrt: Add _ismbbkana_l implementation.

Alexandre Julliard julliard at winehq.org
Thu Jul 16 19:01:22 CDT 2020


Module: wine
Branch: master
Commit: fbbcd3f8f86bbf745f22b962f0825de3bb2eb2c9
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=fbbcd3f8f86bbf745f22b962f0825de3bb2eb2c9

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Jul 16 15:32:46 2020 +0200

msvcrt: Add _ismbbkana_l implementation.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 .../api-ms-win-crt-multibyte-l1-1-0.spec           |  2 +-
 .../api-ms-win-crt-private-l1-1-0.spec             |  2 +-
 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                                 | 30 ++++++++++++++++------
 dlls/msvcrt/msvcrt.spec                            |  2 +-
 dlls/ucrtbase/ucrtbase.spec                        |  4 +--
 11 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec b/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec
index f25dfb7d8f..2e20080ea3 100644
--- a/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec
@@ -11,7 +11,7 @@
 @ cdecl _ismbbkalnum(long) ucrtbase._ismbbkalnum
 @ stub _ismbbkalnum_l
 @ cdecl _ismbbkana(long) ucrtbase._ismbbkana
-@ stub _ismbbkana_l
+@ cdecl _ismbbkana_l(long ptr) ucrtbase._ismbbkana_l
 @ cdecl _ismbbkprint(long) ucrtbase._ismbbkprint
 @ stub _ismbbkprint_l
 @ cdecl _ismbbkpunct(long) ucrtbase._ismbbkpunct
diff --git a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
index c5ed1db00f..b428f26edb 100644
--- a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
@@ -384,7 +384,7 @@
 @ stub _o__ismbbkalnum
 @ stub _o__ismbbkalnum_l
 @ cdecl _o__ismbbkana(long) ucrtbase._o__ismbbkana
-@ stub _o__ismbbkana_l
+@ cdecl _o__ismbbkana_l(long ptr) ucrtbase._o__ismbbkana_l
 @ stub _o__ismbbkprint
 @ stub _o__ismbbkprint_l
 @ stub _o__ismbbkpunct
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 534889b195..5f38a7a3fb 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -961,7 +961,7 @@
 @ stub _ismbbkalnum(long)
 @ stub _ismbbkalnum_l
 @ cdecl _ismbbkana(long)
-@ stub _ismbbkana_l
+@ cdecl _ismbbkana_l(long ptr)
 @ stub _ismbbkprint(long)
 @ stub _ismbbkprint_l
 @ stub _ismbbkpunct(long)
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 820fb973f7..9589d62c71 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1307,7 +1307,7 @@
 @ stub _ismbbkalnum(long)
 @ stub _ismbbkalnum_l
 @ cdecl _ismbbkana(long)
-@ stub _ismbbkana_l
+@ cdecl _ismbbkana_l(long ptr)
 @ stub _ismbbkprint(long)
 @ stub _ismbbkprint_l
 @ stub _ismbbkpunct(long)
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 1d9662a5c2..2ca13a6cdc 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -1310,7 +1310,7 @@
 @ stub _ismbbkalnum(long)
 @ stub _ismbbkalnum_l
 @ cdecl _ismbbkana(long)
-@ stub _ismbbkana_l
+@ cdecl _ismbbkana_l(long ptr)
 @ stub _ismbbkprint(long)
 @ stub _ismbbkprint_l
 @ stub _ismbbkpunct(long)
diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec
index af3d1b5231..e622f95af1 100644
--- a/dlls/msvcr120_app/msvcr120_app.spec
+++ b/dlls/msvcr120_app/msvcr120_app.spec
@@ -1213,7 +1213,7 @@
 @ cdecl _ismbbkalnum(long) msvcr120._ismbbkalnum
 @ stub _ismbbkalnum_l
 @ cdecl _ismbbkana(long) msvcr120._ismbbkana
-@ stub _ismbbkana_l
+@ cdecl _ismbbkana_l(long ptr) msvcr120._ismbbkana_l
 @ cdecl _ismbbkprint(long) msvcr120._ismbbkprint
 @ stub _ismbbkprint_l
 @ cdecl _ismbbkpunct(long) msvcr120._ismbbkpunct
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 0d805c87b1..17376db528 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -633,7 +633,7 @@
 @ stub _ismbbkalnum(long)
 @ stub _ismbbkalnum_l
 @ cdecl _ismbbkana(long)
-@ stub _ismbbkana_l
+@ cdecl _ismbbkana_l(long ptr)
 @ stub _ismbbkprint(long)
 @ stub _ismbbkprint_l
 @ stub _ismbbkpunct(long)
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 460ae6cf89..602f1449ac 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -611,7 +611,7 @@
 @ stub _ismbbkalnum(long)
 @ stub _ismbbkalnum_l
 @ cdecl _ismbbkana(long)
-@ stub _ismbbkana_l
+@ cdecl _ismbbkana_l(long ptr)
 @ stub _ismbbkprint(long)
 @ stub _ismbbkprint_l
 @ stub _ismbbkpunct(long)
diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c
index f9868635e1..8376fe2098 100644
--- a/dlls/msvcrt/mbcs.c
+++ b/dlls/msvcrt/mbcs.c
@@ -1389,17 +1389,31 @@ int CDECL _mbbtype(unsigned char c, int type)
 }
 
 /*********************************************************************
- *		_ismbbkana(MSVCRT.@)
+ *		_ismbbkana_l(MSVCRT.@)
+ */
+int CDECL _ismbbkana_l(unsigned int c, MSVCRT__locale_t locale)
+{
+    MSVCRT_pthreadmbcinfo mbcinfo;
+
+    if(locale)
+        mbcinfo = locale->mbcinfo;
+    else
+        mbcinfo = get_mbcinfo();
+
+    if(mbcinfo->mbcodepage == 932)
+    {
+        /* Japanese/Katakana, CP 932 */
+        return (c >= 0xa1 && c <= 0xdf);
+    }
+    return 0;
+}
+
+/*********************************************************************
+ *              _ismbbkana(MSVCRT.@)
  */
 int CDECL _ismbbkana(unsigned int c)
 {
-  /* FIXME: use lc_ctype when supported, not lc_all */
-  if(get_mbcinfo()->mbcodepage == 932)
-  {
-    /* Japanese/Katakana, CP 932 */
-    return (c >= 0xa1 && c <= 0xdf);
-  }
-  return 0;
+    return _ismbbkana_l( c, NULL );
 }
 
 /*********************************************************************
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index cc2f257d6a..0d0221461a 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -579,7 +579,7 @@
 @ stub _ismbbkalnum(long)
 # stub _ismbbkalnum_l(long ptr)
 @ cdecl _ismbbkana(long)
-# stub _ismbbkana_l(long ptr)
+@ cdecl _ismbbkana_l(long ptr)
 @ stub _ismbbkprint(long)
 # stub _ismbbkprint_l(long ptr)
 @ stub _ismbbkpunct(long)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index 6a919a823f..5436d4cac2 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -449,7 +449,7 @@
 @ stub _ismbbkalnum(long)
 @ stub _ismbbkalnum_l
 @ cdecl _ismbbkana(long)
-@ stub _ismbbkana_l
+@ cdecl _ismbbkana_l(long ptr)
 @ stub _ismbbkprint(long)
 @ stub _ismbbkprint_l
 @ stub _ismbbkpunct(long)
@@ -1048,7 +1048,7 @@
 @ stub _o__ismbbkalnum
 @ stub _o__ismbbkalnum_l
 @ cdecl _o__ismbbkana(long) _ismbbkana
-@ stub _o__ismbbkana_l
+@ cdecl _o__ismbbkana_l(long ptr) _ismbbkana_l
 @ stub _o__ismbbkprint
 @ stub _o__ismbbkprint_l
 @ stub _o__ismbbkpunct




More information about the wine-cvs mailing list