Piotr Caban : msvcrt: Add _ismbcupper_l implementation.

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


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

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

msvcrt: Add _ismbcupper_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 1131c6876e..1034c20970 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
@@ -57,7 +57,7 @@
 @ cdecl _ismbcsymbol(long) ucrtbase._ismbcsymbol
 @ stub _ismbcsymbol_l
 @ cdecl _ismbcupper(long) ucrtbase._ismbcupper
-@ stub _ismbcupper_l
+@ cdecl _ismbcupper_l(long ptr) ucrtbase._ismbcupper_l
 @ cdecl _ismbslead(ptr ptr) ucrtbase._ismbslead
 @ stub _ismbslead_l
 @ cdecl _ismbstrail(ptr ptr) ucrtbase._ismbstrail
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 b5b2aa783a..61992d3a46 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
@@ -430,7 +430,7 @@
 @ cdecl _o__ismbcsymbol(long) ucrtbase._o__ismbcsymbol
 @ stub _o__ismbcsymbol_l
 @ cdecl _o__ismbcupper(long) ucrtbase._o__ismbcupper
-@ stub _o__ismbcupper_l
+@ cdecl _o__ismbcupper_l(long ptr) ucrtbase._o__ismbcupper_l
 @ cdecl _o__ismbslead(ptr ptr) ucrtbase._o__ismbslead
 @ stub _o__ismbslead_l
 @ cdecl _o__ismbstrail(ptr ptr) ucrtbase._o__ismbstrail
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index cf1b51a4a9..43d92304aa 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1005,7 +1005,7 @@
 @ cdecl _ismbcsymbol(long)
 @ stub _ismbcsymbol_l
 @ cdecl _ismbcupper(long)
-@ stub _ismbcupper_l
+@ cdecl _ismbcupper_l(long ptr)
 @ cdecl _ismbslead(ptr ptr)
 @ stub _ismbslead_l
 @ cdecl _ismbstrail(ptr ptr)
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index d3bd29417c..0acb77474e 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1351,7 +1351,7 @@
 @ cdecl _ismbcsymbol(long)
 @ stub _ismbcsymbol_l
 @ cdecl _ismbcupper(long)
-@ stub _ismbcupper_l
+@ cdecl _ismbcupper_l(long ptr)
 @ cdecl _ismbslead(ptr ptr)
 @ stub _ismbslead_l
 @ cdecl _ismbstrail(ptr ptr)
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 604830ac60..26ebdd2445 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -1356,7 +1356,7 @@
 @ cdecl _ismbcsymbol(long)
 @ stub _ismbcsymbol_l
 @ cdecl _ismbcupper(long)
-@ stub _ismbcupper_l
+@ cdecl _ismbcupper_l(long ptr)
 @ cdecl _ismbslead(ptr ptr)
 @ stub _ismbslead_l
 @ cdecl _ismbstrail(ptr ptr)
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index ca668cda12..93b5be804d 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -677,7 +677,7 @@
 @ cdecl _ismbcsymbol(long)
 @ stub _ismbcsymbol_l
 @ cdecl _ismbcupper(long)
-@ stub _ismbcupper_l
+@ cdecl _ismbcupper_l(long ptr)
 @ cdecl _ismbslead(ptr ptr)
 @ stub _ismbslead_l
 @ cdecl _ismbstrail(ptr ptr)
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 77a9514271..5dccd7cf30 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -655,7 +655,7 @@
 @ cdecl _ismbcsymbol(long)
 @ stub _ismbcsymbol_l
 @ cdecl _ismbcupper(long)
-@ stub _ismbcupper_l
+@ cdecl _ismbcupper_l(long ptr)
 @ cdecl _ismbslead(ptr ptr)
 @ stub _ismbslead_l
 @ cdecl _ismbstrail(ptr ptr)
diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c
index dccfce4448..59dcbcc4fe 100644
--- a/dlls/msvcrt/mbcs.c
+++ b/dlls/msvcrt/mbcs.c
@@ -1491,13 +1491,20 @@ int CDECL _ismbclower(unsigned int ch)
     return _ismbclower_l( ch, NULL );
 }
 
+/*********************************************************************
+ *              _ismbcupper_l (MSVCRT.@)
+ */
+int CDECL _ismbcupper_l(unsigned int ch, MSVCRT__locale_t locale)
+{
+    return MSVCRT__iswupper_l( msvcrt_mbc_to_wc_l(ch, locale), locale );
+}
+
 /*********************************************************************
  *              _ismbcupper (MSVCRT.@)
  */
 int CDECL _ismbcupper(unsigned int ch)
 {
-    MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch );
-    return (get_char_typeW( wch ) & C1_LOWER);
+    return _ismbcupper_l( ch, NULL );
 }
 
 /*********************************************************************
diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h
index a5a1bf64bc..492fdf26bc 100644
--- a/dlls/msvcrt/msvcrt.h
+++ b/dlls/msvcrt/msvcrt.h
@@ -1206,6 +1206,7 @@ int __cdecl MSVCRT__iswdigit_l(MSVCRT_wchar_t, MSVCRT__locale_t);
 int __cdecl MSVCRT__iswgraph_l(MSVCRT_wchar_t, MSVCRT__locale_t);
 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);
 
 /* 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 bcea57a7e3..5f68220d4b 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -623,7 +623,7 @@
 @ cdecl _ismbcsymbol(long)
 # stub _ismbcsymbol_l(long ptr)
 @ cdecl _ismbcupper(long)
-# stub _ismbcupper_l(long ptr)
+@ cdecl _ismbcupper_l(long ptr)
 @ cdecl _ismbslead(ptr ptr)
 # stub _ismbslead_l(long ptr)
 @ cdecl _ismbstrail(ptr ptr)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index 68b61fece9..2492fec1e6 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -495,7 +495,7 @@
 @ cdecl _ismbcsymbol(long)
 @ stub _ismbcsymbol_l
 @ cdecl _ismbcupper(long)
-@ stub _ismbcupper_l
+@ cdecl _ismbcupper_l(long ptr)
 @ cdecl _ismbslead(ptr ptr)
 @ stub _ismbslead_l
 @ cdecl _ismbstrail(ptr ptr)
@@ -1094,7 +1094,7 @@
 @ cdecl _o__ismbcsymbol(long) _ismbcsymbol
 @ stub _o__ismbcsymbol_l
 @ cdecl _o__ismbcupper(long) _ismbcupper
-@ stub _o__ismbcupper_l
+@ cdecl _o__ismbcupper_l(long ptr) _ismbcupper_l
 @ cdecl _o__ismbslead(ptr ptr) _ismbslead
 @ stub _o__ismbslead_l
 @ cdecl _o__ismbstrail(ptr ptr) _ismbstrail




More information about the wine-cvs mailing list