winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
July 2020
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
1 participants
826 discussions
Start a n
N
ew thread
Piotr Caban : msvcrt: Add _ismbcpunct_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: 986aa52fc41e1cf022cc72a0f40996937bb567dc URL:
https://source.winehq.org/git/wine.git/?a=commit;h=986aa52fc41e1cf022cc72a0…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:33:38 2020 +0200 msvcrt: Add _ismbcpunct_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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
1
0
0
0
Piotr Caban : msvcrt: Add _ismbcprint_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: 1750a6969becfb02f0fee9447878d4374db652ab URL:
https://source.winehq.org/git/wine.git/?a=commit;h=1750a6969becfb02f0fee944…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:33:32 2020 +0200 msvcrt: Add _ismbcprint_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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 3ab70829ca..4f6a1f7679 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 @@ -49,7 +49,7 @@ @ cdecl _ismbclower(long) ucrtbase._ismbclower @ cdecl _ismbclower_l(long ptr) ucrtbase._ismbclower_l @ cdecl _ismbcprint(long) ucrtbase._ismbcprint -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) ucrtbase._ismbcprint_l @ cdecl _ismbcpunct(long) ucrtbase._ismbcpunct @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) ucrtbase._ismbcspace 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 22ac50e14a..c6489ab976 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 @@ -422,7 +422,7 @@ @ stub _o__ismbclower @ cdecl _o__ismbclower_l(long ptr) ucrtbase._o__ismbclower_l @ cdecl _o__ismbcprint(long) ucrtbase._o__ismbcprint -@ stub _o__ismbcprint_l +@ cdecl _o__ismbcprint_l(long ptr) ucrtbase._o__ismbcprint_l @ cdecl _o__ismbcpunct(long) ucrtbase._o__ismbcpunct @ stub _o__ismbcpunct_l @ cdecl _o__ismbcspace(long) ucrtbase._o__ismbcspace diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 30aaa302ef..f054026dd9 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -997,7 +997,7 @@ @ cdecl _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 6bf022ac74..3a4ed8f6d1 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1343,7 +1343,7 @@ @ stub _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ stub _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 48d58977a7..3d295f8324 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1348,7 +1348,7 @@ @ stub _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index ddf81b4858..55e43e6c51 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -669,7 +669,7 @@ @ cdecl _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 9a86afb37c..55df1046f5 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -647,7 +647,7 @@ @ cdecl _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index e93aafc44a..a6b5e6d4db 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1554,13 +1554,20 @@ int CDECL _ismbcspace(unsigned int ch) return _ismbcspace_l( ch, NULL ); } +/********************************************************************* + * _ismbcprint_l (MSVCRT.@) + */ +int CDECL _ismbcprint_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswprint_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcprint (MSVCRT.@) */ int CDECL _ismbcprint(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & (C1_UPPER | C1_LOWER | C1_DIGIT | C1_PUNCT | C1_ALPHA | C1_SPACE)); + return _ismbcprint_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 492fdf26bc..68245f6fdc 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1207,6 +1207,7 @@ 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); +int __cdecl MSVCRT__iswprint_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 12c4a718e8..79918ae7ab 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -615,7 +615,7 @@ @ cdecl _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -# stub _ismbcprint_l(long ptr) +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) # stub _ismbcpunct_l(long ptr) @ cdecl _ismbcspace(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index c93d0cee04..c20e3f0b55 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -487,7 +487,7 @@ @ stub _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) @@ -1086,7 +1086,7 @@ @ stub _o__ismbclower @ cdecl _o__ismbclower_l(long ptr) _ismbclower_l @ cdecl _o__ismbcprint(long) _ismbcprint -@ stub _o__ismbcprint_l +@ cdecl _o__ismbcprint_l(long ptr) _ismbcprint_l @ cdecl _o__ismbcpunct(long) _ismbcpunct @ stub _o__ismbcpunct_l @ cdecl _o__ismbcspace(long) _ismbcspace
1
0
0
0
Piotr Caban : msvcrt: Add _ismbcspace_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: 4bca5b9f51886279c650b724e61bd5dd4d71f71b URL:
https://source.winehq.org/git/wine.git/?a=commit;h=4bca5b9f51886279c650b724…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:33:25 2020 +0200 msvcrt: Add _ismbcspace_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 10 files changed, 19 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 1034c20970..3ab70829ca 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 @@ -53,7 +53,7 @@ @ cdecl _ismbcpunct(long) ucrtbase._ismbcpunct @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) ucrtbase._ismbcspace -@ stub _ismbcspace_l +@ cdecl _ismbcspace_l(long ptr) ucrtbase._ismbcspace_l @ cdecl _ismbcsymbol(long) ucrtbase._ismbcsymbol @ stub _ismbcsymbol_l @ cdecl _ismbcupper(long) ucrtbase._ismbcupper 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 61992d3a46..22ac50e14a 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 @@ -426,7 +426,7 @@ @ cdecl _o__ismbcpunct(long) ucrtbase._o__ismbcpunct @ stub _o__ismbcpunct_l @ cdecl _o__ismbcspace(long) ucrtbase._o__ismbcspace -@ stub _o__ismbcspace_l +@ cdecl _o__ismbcspace_l(long ptr) ucrtbase._o__ismbcspace_l @ cdecl _o__ismbcsymbol(long) ucrtbase._o__ismbcsymbol @ stub _o__ismbcsymbol_l @ cdecl _o__ismbcupper(long) ucrtbase._o__ismbcupper diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 43d92304aa..30aaa302ef 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1001,7 +1001,7 @@ @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) -@ stub _ismbcspace_l +@ cdecl _ismbcspace_l(long ptr) @ cdecl _ismbcsymbol(long) @ stub _ismbcsymbol_l @ cdecl _ismbcupper(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 0acb77474e..6bf022ac74 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1347,7 +1347,7 @@ @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) -@ stub _ismbcspace_l +@ cdecl _ismbcspace_l(long ptr) @ cdecl _ismbcsymbol(long) @ stub _ismbcsymbol_l @ cdecl _ismbcupper(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 26ebdd2445..48d58977a7 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1352,7 +1352,7 @@ @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) -@ stub _ismbcspace_l +@ cdecl _ismbcspace_l(long ptr) @ cdecl _ismbcsymbol(long) @ stub _ismbcsymbol_l @ cdecl _ismbcupper(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 93b5be804d..ddf81b4858 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -673,7 +673,7 @@ @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) -@ stub _ismbcspace_l +@ cdecl _ismbcspace_l(long ptr) @ cdecl _ismbcsymbol(long) @ stub _ismbcsymbol_l @ cdecl _ismbcupper(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 5dccd7cf30..9a86afb37c 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -651,7 +651,7 @@ @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) -@ stub _ismbcspace_l +@ cdecl _ismbcspace_l(long ptr) @ cdecl _ismbcsymbol(long) @ stub _ismbcsymbol_l @ cdecl _ismbcupper(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 59dcbcc4fe..e93aafc44a 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1538,13 +1538,20 @@ int CDECL _ismbcalnum(unsigned int ch) return _ismbcalnum_l( ch, NULL ); } +/********************************************************************* + * _ismbcspace_l (MSVCRT.@) + */ +int CDECL _ismbcspace_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswspace_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcspace (MSVCRT.@) */ int CDECL _ismbcspace(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & C1_SPACE); + return _ismbcspace_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 5f68220d4b..12c4a718e8 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -619,7 +619,7 @@ @ cdecl _ismbcpunct(long) # stub _ismbcpunct_l(long ptr) @ cdecl _ismbcspace(long) -# stub _ismbcspace_l(long ptr) +@ cdecl _ismbcspace_l(long ptr) @ cdecl _ismbcsymbol(long) # stub _ismbcsymbol_l(long ptr) @ cdecl _ismbcupper(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 2492fec1e6..c93d0cee04 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -491,7 +491,7 @@ @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) -@ stub _ismbcspace_l +@ cdecl _ismbcspace_l(long ptr) @ cdecl _ismbcsymbol(long) @ stub _ismbcsymbol_l @ cdecl _ismbcupper(long) @@ -1090,7 +1090,7 @@ @ cdecl _o__ismbcpunct(long) _ismbcpunct @ stub _o__ismbcpunct_l @ cdecl _o__ismbcspace(long) _ismbcspace -@ stub _o__ismbcspace_l +@ cdecl _o__ismbcspace_l(long ptr) _ismbcspace_l @ cdecl _o__ismbcsymbol(long) _ismbcsymbol @ stub _o__ismbcsymbol_l @ cdecl _o__ismbcupper(long) _ismbcupper
1
0
0
0
Piotr Caban : msvcrt: Add _ismbcupper_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: 95b3ff9f74ada220295128ceee34a8e191b93baa URL:
https://source.winehq.org/git/wine.git/?a=commit;h=95b3ff9f74ada220295128ce…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:33:19 2020 +0200 msvcrt: Add _ismbcupper_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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
1
0
0
0
Piotr Caban : msvcrt: Add _ismbclower_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: 1ad209428442e5c571b8a8478c3821e6c303b3a9 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=1ad209428442e5c571b8a847…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:33:15 2020 +0200 msvcrt: Add _ismbclower_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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 4d63b2fa59..1131c6876e 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 @@ -47,7 +47,7 @@ @ cdecl _ismbclegal(long) ucrtbase._ismbclegal @ cdecl _ismbclegal_l(long ptr) ucrtbase._ismbclegal_l @ cdecl _ismbclower(long) ucrtbase._ismbclower -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) ucrtbase._ismbclower_l @ cdecl _ismbcprint(long) ucrtbase._ismbcprint @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) ucrtbase._ismbcpunct 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 264d695496..b5b2aa783a 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 @@ -420,7 +420,7 @@ @ cdecl _o__ismbclegal(long) ucrtbase._o__ismbclegal @ cdecl _o__ismbclegal_l(long ptr) ucrtbase._o__ismbclegal_l @ stub _o__ismbclower -@ stub _o__ismbclower_l +@ cdecl _o__ismbclower_l(long ptr) ucrtbase._o__ismbclower_l @ cdecl _o__ismbcprint(long) ucrtbase._o__ismbcprint @ stub _o__ismbcprint_l @ cdecl _o__ismbcpunct(long) ucrtbase._o__ismbcpunct diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index c308e0d9ae..cf1b51a4a9 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -995,7 +995,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ cdecl _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 1d01c624a6..d3bd29417c 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1341,7 +1341,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ stub _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ stub _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 7548f62b6d..604830ac60 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1346,7 +1346,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ stub _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 322fcfb679..ca668cda12 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -667,7 +667,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ cdecl _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index d6bd5fbfa5..77a9514271 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -645,7 +645,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ cdecl _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 73bc45c63b..dccfce4448 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1475,13 +1475,20 @@ int CDECL _ismbcalpha(unsigned int ch) return _ismbcalpha_l( ch, NULL ); } +/********************************************************************* + * _ismbclower_l (MSVCRT.@) + */ +int CDECL _ismbclower_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswlower_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbclower (MSVCRT.@) */ int CDECL _ismbclower(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & C1_UPPER); + return _ismbclower_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index dc51dfa926..a5a1bf64bc 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1205,6 +1205,7 @@ int __cdecl MSVCRT__iswalnum_l(MSVCRT_wchar_t, MSVCRT__locale_t); 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); /* 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 e347367c75..bcea57a7e3 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -613,7 +613,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ cdecl _ismbclower(long) -# stub _ismbclower_l(long ptr) +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) # stub _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 55bca3c414..68b61fece9 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -485,7 +485,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ stub _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) @@ -1084,7 +1084,7 @@ @ cdecl _o__ismbclegal(long) _ismbclegal @ cdecl _o__ismbclegal_l(long ptr) _ismbclegal_l @ stub _o__ismbclower -@ stub _o__ismbclower_l +@ cdecl _o__ismbclower_l(long ptr) _ismbclower_l @ cdecl _o__ismbcprint(long) _ismbcprint @ stub _o__ismbcprint_l @ cdecl _o__ismbcpunct(long) _ismbcpunct
1
0
0
0
Piotr Caban : msvcrt: Add _ismbcalpha_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: 5f294e34d6eab6a217991994443c347aa44684b7 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5f294e34d6eab6a217991994…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:33:09 2020 +0200 msvcrt: Add _ismbcalpha_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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 0137c7e649..4d63b2fa59 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 @@ -27,7 +27,7 @@ @ cdecl _ismbcalnum(long) ucrtbase._ismbcalnum @ cdecl _ismbcalnum_l(long ptr) ucrtbase._ismbcalnum_l @ cdecl _ismbcalpha(long) ucrtbase._ismbcalpha -@ stub _ismbcalpha_l +@ cdecl _ismbcalpha_l(long ptr) ucrtbase._ismbcalpha_l @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) ucrtbase._ismbcdigit 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 6ddcbe2c7a..264d695496 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 @@ -400,7 +400,7 @@ @ cdecl _o__ismbcalnum(long) ucrtbase._o__ismbcalnum @ cdecl _o__ismbcalnum_l(long ptr) ucrtbase._o__ismbcalnum_l @ cdecl _o__ismbcalpha(long) ucrtbase._o__ismbcalpha -@ stub _o__ismbcalpha_l +@ cdecl _o__ismbcalpha_l(long ptr) ucrtbase._o__ismbcalpha_l @ stub _o__ismbcblank @ stub _o__ismbcblank_l @ cdecl _o__ismbcdigit(long) ucrtbase._o__ismbcdigit diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 9d78aa042f..c308e0d9ae 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -977,7 +977,7 @@ @ cdecl _ismbcalnum(long) @ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) -@ stub _ismbcalpha_l +@ cdecl _ismbcalpha_l(long ptr) @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 1512804543..1d01c624a6 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1323,7 +1323,7 @@ @ cdecl _ismbcalnum(long) @ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) -@ stub _ismbcalpha_l +@ cdecl _ismbcalpha_l(long ptr) @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index d8be0af00d..7548f62b6d 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1326,7 +1326,7 @@ @ cdecl _ismbcalnum(long) @ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) -@ stub _ismbcalpha_l +@ cdecl _ismbcalpha_l(long ptr) @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 513ed375e1..322fcfb679 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -649,7 +649,7 @@ @ cdecl _ismbcalnum(long) @ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) -@ stub _ismbcalpha_l +@ cdecl _ismbcalpha_l(long ptr) @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index e39ecb900d..d6bd5fbfa5 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -627,7 +627,7 @@ @ cdecl _ismbcalnum(long) @ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) -@ stub _ismbcalpha_l +@ cdecl _ismbcalpha_l(long ptr) @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 813092a12f..73bc45c63b 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1459,13 +1459,20 @@ int CDECL _ismbcgraph(unsigned int ch) return _ismbcgraph_l( ch, NULL ); } +/********************************************************************* + * _ismbcalpha_l (MSVCRT.@) + */ +int CDECL _ismbcalpha_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswalpha_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcalpha (MSVCRT.@) */ int CDECL _ismbcalpha(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & C1_ALPHA); + return _ismbcalpha_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index ffd417be4e..dc51dfa926 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1204,6 +1204,7 @@ int __cdecl MSVCRT_towupper(MSVCRT_wint_t); int __cdecl MSVCRT__iswalnum_l(MSVCRT_wchar_t, MSVCRT__locale_t); 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); /* 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 477afdd252..e347367c75 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -595,7 +595,7 @@ @ cdecl _ismbcalnum(long) @ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) -# stub _ismbcalpha_l(long ptr) +@ cdecl _ismbcalpha_l(long ptr) @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 9d4f557c32..55bca3c414 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -465,7 +465,7 @@ @ cdecl _ismbcalnum(long) @ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) -@ stub _ismbcalpha_l +@ cdecl _ismbcalpha_l(long ptr) @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) @@ -1064,7 +1064,7 @@ @ cdecl _o__ismbcalnum(long) _ismbcalnum @ cdecl _o__ismbcalnum_l(long ptr) _ismbcalnum_l @ cdecl _o__ismbcalpha(long) _ismbcalpha -@ stub _o__ismbcalpha_l +@ cdecl _o__ismbcalpha_l(long ptr) _ismbcalpha_l @ stub _o__ismbcblank @ stub _o__ismbcblank_l @ cdecl _o__ismbcdigit(long) _ismbcdigit
1
0
0
0
Piotr Caban : msvcrt: Add _ismbcgraph_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: 71cd3d5e8ce831abe5f601671b307ecff8692f01 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=71cd3d5e8ce831abe5f60167…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:33:03 2020 +0200 msvcrt: Add _ismbcgraph_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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 06467a76d2..0137c7e649 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 @@ -33,7 +33,7 @@ @ cdecl _ismbcdigit(long) ucrtbase._ismbcdigit @ cdecl _ismbcdigit_l(long ptr) ucrtbase._ismbcdigit_l @ cdecl _ismbcgraph(long) ucrtbase._ismbcgraph -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) ucrtbase._ismbcgraph_l @ cdecl _ismbchira(long) ucrtbase._ismbchira @ stub _ismbchira_l @ cdecl _ismbckata(long) ucrtbase._ismbckata 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 90ae182635..6ddcbe2c7a 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 @@ -406,7 +406,7 @@ @ cdecl _o__ismbcdigit(long) ucrtbase._o__ismbcdigit @ cdecl _o__ismbcdigit_l(long ptr) ucrtbase._o__ismbcdigit_l @ cdecl _o__ismbcgraph(long) ucrtbase._o__ismbcgraph -@ stub _o__ismbcgraph_l +@ cdecl _o__ismbcgraph_l(long ptr) ucrtbase._o__ismbcgraph_l @ cdecl _o__ismbchira(long) ucrtbase._o__ismbchira @ stub _o__ismbchira_l @ cdecl _o__ismbckata(long) ucrtbase._o__ismbckata diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 6a0a54aee2..9d78aa042f 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -981,7 +981,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index a2e63aab46..1512804543 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1327,7 +1327,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 073741e76f..d8be0af00d 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1332,7 +1332,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 5280a38b87..513ed375e1 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -653,7 +653,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index fefcfa76b0..e39ecb900d 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -631,7 +631,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index c6caab19f8..813092a12f 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1443,13 +1443,20 @@ int CDECL _ismbcdigit(unsigned int ch) return _ismbcdigit_l( ch, NULL ); } +/********************************************************************* + * _ismbcgraph_l(MSVCRT.@) + */ +int CDECL _ismbcgraph_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswgraph_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcgraph(MSVCRT.@) */ int CDECL _ismbcgraph(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & (C1_UPPER | C1_LOWER | C1_DIGIT | C1_PUNCT | C1_ALPHA)); + return _ismbcgraph_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 973b928888..ffd417be4e 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1203,6 +1203,7 @@ int __cdecl MSVCRT_towlower(MSVCRT_wint_t); int __cdecl MSVCRT_towupper(MSVCRT_wint_t); int __cdecl MSVCRT__iswalnum_l(MSVCRT_wchar_t, MSVCRT__locale_t); int __cdecl MSVCRT__iswdigit_l(MSVCRT_wchar_t, MSVCRT__locale_t); +int __cdecl MSVCRT__iswgraph_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 273ced9cd7..477afdd252 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -599,7 +599,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -# stub _ismbcgraph_l(long ptr) +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) # stub _ismbchira_l(long ptr) @ cdecl _ismbckata(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 9bd4832443..9d4f557c32 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -471,7 +471,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) @@ -1070,7 +1070,7 @@ @ cdecl _o__ismbcdigit(long) _ismbcdigit @ cdecl _o__ismbcdigit_l(long ptr) _ismbcdigit_l @ cdecl _o__ismbcgraph(long) _ismbcgraph -@ stub _o__ismbcgraph_l +@ cdecl _o__ismbcgraph_l(long ptr) _ismbcgraph_l @ cdecl _o__ismbchira(long) _ismbchira @ stub _o__ismbchira_l @ cdecl _o__ismbckata(long) _ismbckata
1
0
0
0
Piotr Caban : msvcrt: Add _ismbcdigit_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: fd74aeb726e65c62a9e110bdbf282549cb8afce0 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=fd74aeb726e65c62a9e110bd…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:32:58 2020 +0200 msvcrt: Add _ismbcdigit_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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 991ad90a92..06467a76d2 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 @@ -31,7 +31,7 @@ @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) ucrtbase._ismbcdigit -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) ucrtbase._ismbcdigit_l @ cdecl _ismbcgraph(long) ucrtbase._ismbcgraph @ stub _ismbcgraph_l @ cdecl _ismbchira(long) ucrtbase._ismbchira 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 afcac3bacb..90ae182635 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 @@ -404,7 +404,7 @@ @ stub _o__ismbcblank @ stub _o__ismbcblank_l @ cdecl _o__ismbcdigit(long) ucrtbase._o__ismbcdigit -@ stub _o__ismbcdigit_l +@ cdecl _o__ismbcdigit_l(long ptr) ucrtbase._o__ismbcdigit_l @ cdecl _o__ismbcgraph(long) ucrtbase._o__ismbcgraph @ stub _o__ismbcgraph_l @ cdecl _o__ismbchira(long) ucrtbase._o__ismbchira diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index acf8601def..6a0a54aee2 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -979,7 +979,7 @@ @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 477b5a4a00..a2e63aab46 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1325,7 +1325,7 @@ @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index b3207ad086..073741e76f 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1330,7 +1330,7 @@ @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index fa6c7186f7..5280a38b87 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -651,7 +651,7 @@ @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 566e9431be..fefcfa76b0 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -629,7 +629,7 @@ @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 5b07e13bba..c6caab19f8 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1427,13 +1427,20 @@ int CDECL _ismbbkana(unsigned int c) return _ismbbkana_l( c, NULL ); } +/********************************************************************* + * _ismbcdigit_l(MSVCRT.@) + */ +int CDECL _ismbcdigit_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswdigit_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcdigit(MSVCRT.@) */ int CDECL _ismbcdigit(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & C1_DIGIT); + return _ismbcdigit_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index a0fbeb7ebe..973b928888 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1202,6 +1202,7 @@ int __cdecl MSVCRT__wcsnicmp(const MSVCRT_wchar_t*, const MSVCRT_wchar_t*, MSVCR int __cdecl MSVCRT_towlower(MSVCRT_wint_t); int __cdecl MSVCRT_towupper(MSVCRT_wint_t); int __cdecl MSVCRT__iswalnum_l(MSVCRT_wchar_t, MSVCRT__locale_t); +int __cdecl MSVCRT__iswdigit_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 dc3048469d..273ced9cd7 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -597,7 +597,7 @@ @ cdecl _ismbcalpha(long) # stub _ismbcalpha_l(long ptr) @ cdecl _ismbcdigit(long) -# stub _ismbcdigit_l(long ptr) +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) # stub _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index b6d3a033e5..9bd4832443 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -469,7 +469,7 @@ @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) @@ -1068,7 +1068,7 @@ @ stub _o__ismbcblank @ stub _o__ismbcblank_l @ cdecl _o__ismbcdigit(long) _ismbcdigit -@ stub _o__ismbcdigit_l +@ cdecl _o__ismbcdigit_l(long ptr) _ismbcdigit_l @ cdecl _o__ismbcgraph(long) _ismbcgraph @ stub _o__ismbcgraph_l @ cdecl _o__ismbchira(long) _ismbchira
1
0
0
0
Piotr Caban : msvcrt: Add _ismbcalnum_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: 19c05e60a3cbb7dfa040b919e8783d571fc6ae01 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=19c05e60a3cbb7dfa040b919…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:32:53 2020 +0200 msvcrt: Add _ismbcalnum_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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 | 58 ++++++++++++++-------- dlls/msvcrt/msvcrt.h | 1 + dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 +- 11 files changed, 49 insertions(+), 30 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 2e20080ea3..991ad90a92 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 @@ -25,7 +25,7 @@ @ cdecl _ismbbtrail(long) ucrtbase._ismbbtrail @ cdecl _ismbbtrail_l(long ptr) ucrtbase._ismbbtrail_l @ cdecl _ismbcalnum(long) ucrtbase._ismbcalnum -@ stub _ismbcalnum_l +@ cdecl _ismbcalnum_l(long ptr) ucrtbase._ismbcalnum_l @ cdecl _ismbcalpha(long) ucrtbase._ismbcalpha @ stub _ismbcalpha_l @ stub _ismbcblank 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 b428f26edb..afcac3bacb 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 @@ -398,7 +398,7 @@ @ cdecl _o__ismbbtrail(long) ucrtbase._o__ismbbtrail @ cdecl _o__ismbbtrail_l(long ptr) ucrtbase._o__ismbbtrail_l @ cdecl _o__ismbcalnum(long) ucrtbase._o__ismbcalnum -@ stub _o__ismbcalnum_l +@ cdecl _o__ismbcalnum_l(long ptr) ucrtbase._o__ismbcalnum_l @ cdecl _o__ismbcalpha(long) ucrtbase._o__ismbcalpha @ stub _o__ismbcalpha_l @ stub _o__ismbcblank diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 5f38a7a3fb..acf8601def 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -975,7 +975,7 @@ @ cdecl _ismbbtrail(long) @ cdecl _ismbbtrail_l(long ptr) @ cdecl _ismbcalnum(long) -@ stub _ismbcalnum_l +@ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 9589d62c71..477b5a4a00 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1321,7 +1321,7 @@ @ cdecl _ismbbtrail(long) @ cdecl _ismbbtrail_l(long ptr) @ cdecl _ismbcalnum(long) -@ stub _ismbcalnum_l +@ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 2ca13a6cdc..b3207ad086 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1324,7 +1324,7 @@ @ cdecl _ismbbtrail(long) @ cdecl _ismbbtrail_l(long ptr) @ cdecl _ismbcalnum(long) -@ stub _ismbcalnum_l +@ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ stub _ismbcblank diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 17376db528..fa6c7186f7 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -647,7 +647,7 @@ @ cdecl _ismbbtrail(long) @ cdecl _ismbbtrail_l(long ptr) @ cdecl _ismbcalnum(long) -@ stub _ismbcalnum_l +@ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 602f1449ac..566e9431be 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -625,7 +625,7 @@ @ cdecl _ismbbtrail(long) @ cdecl _ismbbtrail_l(long ptr) @ cdecl _ismbcalnum(long) -@ stub _ismbcalnum_l +@ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 8376fe2098..5b07e13bba 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -84,26 +84,37 @@ static const unsigned char mbctombb_932_kana[] = { 0xd2,0xd3,0xac,0xd4,0xad,0xd5,0xae,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdc,0xb2, 0xb4,0xa6,0xdd,0xb3,0xb6,0xb9}; -static MSVCRT_wchar_t msvcrt_mbc_to_wc(unsigned int ch) +static MSVCRT_wchar_t msvcrt_mbc_to_wc_l(unsigned int ch, MSVCRT__locale_t locale) { - MSVCRT_wchar_t chW; - char mbch[2]; - int n_chars; + MSVCRT_pthreadmbcinfo mbcinfo; + MSVCRT_wchar_t chW; + char mbch[2]; + int n_chars; - if (ch <= 0xff) { - mbch[0] = ch; - n_chars = 1; - } else { - mbch[0] = (ch >> 8) & 0xff; - mbch[1] = ch & 0xff; - n_chars = 2; - } - if (!MultiByteToWideChar(get_mbcinfo()->mbcodepage, 0, mbch, n_chars, &chW, 1)) - { - WARN("MultiByteToWideChar failed on %x\n", ch); - return 0; - } - return chW; + if(locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + + if (ch <= 0xff) { + mbch[0] = ch; + n_chars = 1; + } else { + mbch[0] = (ch >> 8) & 0xff; + mbch[1] = ch & 0xff; + n_chars = 2; + } + if (!MultiByteToWideChar(mbcinfo->mbcodepage, 0, mbch, n_chars, &chW, 1)) + { + WARN("MultiByteToWideChar failed on %x\n", ch); + return 0; + } + return chW; +} + +static MSVCRT_wchar_t msvcrt_mbc_to_wc(unsigned int ch) +{ + return msvcrt_mbc_to_wc_l(ch, NULL); } static inline MSVCRT_size_t u_strlen( const unsigned char *str ) @@ -1476,13 +1487,20 @@ int CDECL _ismbcsymbol(unsigned int ch) return ((ctype & C3_SYMBOL) != 0); } +/********************************************************************* + * _ismbcalnum_l (MSVCRT.@) + */ +int CDECL _ismbcalnum_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswalnum_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcalnum (MSVCRT.@) */ int CDECL _ismbcalnum(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & (C1_ALPHA | C1_DIGIT)); + return _ismbcalnum_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 4a13501993..a0fbeb7ebe 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1201,6 +1201,7 @@ int __cdecl MSVCRT_wcsncmp(const MSVCRT_wchar_t*, const MSVCRT_wchar_t*, MSVCRT_ int __cdecl MSVCRT__wcsnicmp(const MSVCRT_wchar_t*, const MSVCRT_wchar_t*, MSVCRT_size_t); int __cdecl MSVCRT_towlower(MSVCRT_wint_t); int __cdecl MSVCRT_towupper(MSVCRT_wint_t); +int __cdecl MSVCRT__iswalnum_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 0d0221461a..dc3048469d 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -593,7 +593,7 @@ @ cdecl _ismbbtrail(long) @ cdecl _ismbbtrail_l(long ptr) @ cdecl _ismbcalnum(long) -# stub _ismbcalnum_l(long ptr) +@ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) # stub _ismbcalpha_l(long ptr) @ cdecl _ismbcdigit(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 5436d4cac2..b6d3a033e5 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -463,7 +463,7 @@ @ cdecl _ismbbtrail(long) @ cdecl _ismbbtrail_l(long ptr) @ cdecl _ismbcalnum(long) -@ stub _ismbcalnum_l +@ cdecl _ismbcalnum_l(long ptr) @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ stub _ismbcblank @@ -1062,7 +1062,7 @@ @ cdecl _o__ismbbtrail(long) _ismbbtrail @ cdecl _o__ismbbtrail_l(long ptr) _ismbbtrail_l @ cdecl _o__ismbcalnum(long) _ismbcalnum -@ stub _o__ismbcalnum_l +@ cdecl _o__ismbcalnum_l(long ptr) _ismbcalnum_l @ cdecl _o__ismbcalpha(long) _ismbcalpha @ stub _o__ismbcalpha_l @ stub _o__ismbcblank
1
0
0
0
Piotr Caban : msvcrt: Add _ismbbkana_l implementation.
by Alexandre Julliard
17 Jul '20
17 Jul '20
Module: wine Branch: master Commit: fbbcd3f8f86bbf745f22b962f0825de3bb2eb2c9 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=fbbcd3f8f86bbf745f22b962…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Jul 16 15:32:46 2020 +0200 msvcrt: Add _ismbbkana_l implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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
1
0
0
0
← Newer
1
...
35
36
37
38
39
40
41
...
83
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Results per page:
10
25
50
100
200