Piotr Caban : msvcrt: Add _ismbcpunct_l implementation.

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


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

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

msvcrt: Add _ismbcpunct_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/msvcr80/msvcr80.spec                                     |  2 +-
 dlls/msvcr90/msvcr90.spec                                     |  2 +-
 dlls/msvcrt/mbcs.c                                            | 11 +++++++++--
 dlls/msvcrt/msvcrt.h                                          |  1 +
 dlls/msvcrt/msvcrt.spec                                       |  2 +-
 dlls/ucrtbase/ucrtbase.spec                                   |  4 ++--
 11 files changed, 20 insertions(+), 12 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 4f6a1f7679..84ae0f449b 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
@@ -51,7 +51,7 @@
 @ cdecl _ismbcprint(long) ucrtbase._ismbcprint
 @ cdecl _ismbcprint_l(long ptr) ucrtbase._ismbcprint_l
 @ cdecl _ismbcpunct(long) ucrtbase._ismbcpunct
-@ stub _ismbcpunct_l
+@ cdecl _ismbcpunct_l(long ptr) ucrtbase._ismbcpunct_l
 @ cdecl _ismbcspace(long) ucrtbase._ismbcspace
 @ cdecl _ismbcspace_l(long ptr) ucrtbase._ismbcspace_l
 @ cdecl _ismbcsymbol(long) ucrtbase._ismbcsymbol
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 c6489ab976..af84ff943b 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
@@ -424,7 +424,7 @@
 @ cdecl _o__ismbcprint(long) ucrtbase._o__ismbcprint
 @ cdecl _o__ismbcprint_l(long ptr) ucrtbase._o__ismbcprint_l
 @ cdecl _o__ismbcpunct(long) ucrtbase._o__ismbcpunct
-@ stub _o__ismbcpunct_l
+@ cdecl _o__ismbcpunct_l(long ptr) ucrtbase._o__ismbcpunct_l
 @ cdecl _o__ismbcspace(long) ucrtbase._o__ismbcspace
 @ cdecl _o__ismbcspace_l(long ptr) ucrtbase._o__ismbcspace_l
 @ cdecl _o__ismbcsymbol(long) ucrtbase._o__ismbcsymbol
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index f054026dd9..6451fda152 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -999,7 +999,7 @@
 @ cdecl _ismbcprint(long)
 @ cdecl _ismbcprint_l(long ptr)
 @ cdecl _ismbcpunct(long)
-@ stub _ismbcpunct_l
+@ cdecl _ismbcpunct_l(long ptr)
 @ cdecl _ismbcspace(long)
 @ cdecl _ismbcspace_l(long ptr)
 @ cdecl _ismbcsymbol(long)
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 3a4ed8f6d1..abfbb846b3 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1345,7 +1345,7 @@
 @ stub _ismbcprint(long)
 @ cdecl _ismbcprint_l(long ptr)
 @ cdecl _ismbcpunct(long)
-@ stub _ismbcpunct_l
+@ cdecl _ismbcpunct_l(long ptr)
 @ cdecl _ismbcspace(long)
 @ cdecl _ismbcspace_l(long ptr)
 @ cdecl _ismbcsymbol(long)
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 3d295f8324..00a1c3e49e 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -1350,7 +1350,7 @@
 @ cdecl _ismbcprint(long)
 @ cdecl _ismbcprint_l(long ptr)
 @ cdecl _ismbcpunct(long)
-@ stub _ismbcpunct_l
+@ cdecl _ismbcpunct_l(long ptr)
 @ cdecl _ismbcspace(long)
 @ cdecl _ismbcspace_l(long ptr)
 @ cdecl _ismbcsymbol(long)
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 55e43e6c51..aaa1b499c5 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -671,7 +671,7 @@
 @ cdecl _ismbcprint(long)
 @ cdecl _ismbcprint_l(long ptr)
 @ cdecl _ismbcpunct(long)
-@ stub _ismbcpunct_l
+@ cdecl _ismbcpunct_l(long ptr)
 @ cdecl _ismbcspace(long)
 @ cdecl _ismbcspace_l(long ptr)
 @ cdecl _ismbcsymbol(long)
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 55df1046f5..9267c5b1dd 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -649,7 +649,7 @@
 @ cdecl _ismbcprint(long)
 @ cdecl _ismbcprint_l(long ptr)
 @ cdecl _ismbcpunct(long)
-@ stub _ismbcpunct_l
+@ cdecl _ismbcpunct_l(long ptr)
 @ cdecl _ismbcspace(long)
 @ cdecl _ismbcspace_l(long ptr)
 @ cdecl _ismbcsymbol(long)
diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c
index a6b5e6d4db..359ab6fdf4 100644
--- a/dlls/msvcrt/mbcs.c
+++ b/dlls/msvcrt/mbcs.c
@@ -1570,13 +1570,20 @@ int CDECL _ismbcprint(unsigned int ch)
     return _ismbcprint_l( ch, NULL );
 }
 
+/*********************************************************************
+ *              _ismbcpunct_l (MSVCRT.@)
+ */
+int CDECL _ismbcpunct_l(unsigned int ch, MSVCRT__locale_t locale)
+{
+    return MSVCRT__iswpunct_l( msvcrt_mbc_to_wc_l(ch, locale), locale );
+}
+
 /*********************************************************************
  *              _ismbcpunct(MSVCRT.@)
  */
 int CDECL _ismbcpunct(unsigned int ch)
 {
-    MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch );
-    return (get_char_typeW( wch ) & C1_PUNCT);
+    return _ismbcpunct_l( ch, NULL );
 }
 
 /*********************************************************************
diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h
index 68245f6fdc..9395b7ecac 100644
--- a/dlls/msvcrt/msvcrt.h
+++ b/dlls/msvcrt/msvcrt.h
@@ -1208,6 +1208,7 @@ int __cdecl MSVCRT__iswalpha_l(MSVCRT_wchar_t, MSVCRT__locale_t);
 int __cdecl MSVCRT__iswlower_l(MSVCRT_wchar_t, MSVCRT__locale_t);
 int __cdecl MSVCRT__iswupper_l(MSVCRT_wchar_t, MSVCRT__locale_t);
 int __cdecl MSVCRT__iswprint_l(MSVCRT_wchar_t, MSVCRT__locale_t);
+int __cdecl MSVCRT__iswpunct_l(MSVCRT_wchar_t, MSVCRT__locale_t);
 
 /* Maybe one day we'll enable the invalid parameter handlers with the full set of information (msvcrXXd)
  *      #define MSVCRT_INVALID_PMT(x) MSVCRT_call_invalid_parameter_handler(x, __FUNCTION__, __FILE__, __LINE__, 0)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 79918ae7ab..1d26169cc1 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -617,7 +617,7 @@
 @ cdecl _ismbcprint(long)
 @ cdecl _ismbcprint_l(long ptr)
 @ cdecl _ismbcpunct(long)
-# stub _ismbcpunct_l(long ptr)
+@ cdecl _ismbcpunct_l(long ptr)
 @ cdecl _ismbcspace(long)
 @ cdecl _ismbcspace_l(long ptr)
 @ cdecl _ismbcsymbol(long)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index c20e3f0b55..8493ae79ba 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -489,7 +489,7 @@
 @ cdecl _ismbcprint(long)
 @ cdecl _ismbcprint_l(long ptr)
 @ cdecl _ismbcpunct(long)
-@ stub _ismbcpunct_l
+@ cdecl _ismbcpunct_l(long ptr)
 @ cdecl _ismbcspace(long)
 @ cdecl _ismbcspace_l(long ptr)
 @ cdecl _ismbcsymbol(long)
@@ -1088,7 +1088,7 @@
 @ cdecl _o__ismbcprint(long) _ismbcprint
 @ cdecl _o__ismbcprint_l(long ptr) _ismbcprint_l
 @ cdecl _o__ismbcpunct(long) _ismbcpunct
-@ stub _o__ismbcpunct_l
+@ cdecl _o__ismbcpunct_l(long ptr) _ismbcpunct_l
 @ cdecl _o__ismbcspace(long) _ismbcspace
 @ cdecl _o__ismbcspace_l(long ptr) _ismbcspace_l
 @ cdecl _o__ismbcsymbol(long) _ismbcsymbol




More information about the wine-cvs mailing list