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
November 2023
----- 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
989 discussions
Start a n
N
ew thread
Bartosz Kosiorek : msvcrt: Add _mbsnccnt_l implementation.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: fa2248ccf9be79b331c4b241362967d8b430da0d URL:
https://gitlab.winehq.org/wine/wine/-/commit/fa2248ccf9be79b331c4b241362967…
Author: Bartosz Kosiorek <gang65(a)poczta.onet.pl> Date: Mon Nov 6 20:54:32 2023 +0100 msvcrt: Add _mbsnccnt_l implementation. --- 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 | 61 ++++++++++++++++++++++++++++++--------------- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 +-- 8 files changed, 49 insertions(+), 28 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 565689ac6ab..4f84a92d712 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1150,7 +1150,7 @@ @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) -@ stub _mbsnccnt_l +@ cdecl _mbsnccnt_l(str long ptr) @ cdecl _mbsncmp(str str long) @ stub _mbsncmp_l @ stub _mbsncoll(str str long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index bc143f34505..c65a154c77d 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1507,7 +1507,7 @@ @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) -@ stub _mbsnccnt_l +@ cdecl _mbsnccnt_l(str long ptr) @ cdecl _mbsncmp(str str long) @ stub _mbsncmp_l @ stub _mbsncoll(str str long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index cd76f568557..19814e9dc6b 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1518,7 +1518,7 @@ @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) -@ stub _mbsnccnt_l +@ cdecl _mbsnccnt_l(str long ptr) @ cdecl _mbsncmp(str str long) @ stub _mbsncmp_l @ stub _mbsncoll(str str long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 5bc963edf57..be691c2a4e9 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -822,7 +822,7 @@ @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) -@ stub _mbsnccnt_l +@ cdecl _mbsnccnt_l(str long ptr) @ cdecl _mbsncmp(str str long) @ stub _mbsncmp_l @ stub _mbsncoll(str str long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index a7f47e568c7..ba0ff67b362 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -800,7 +800,7 @@ @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) -@ stub _mbsnccnt_l +@ cdecl _mbsnccnt_l(str long ptr) @ cdecl _mbsncmp(str str long) @ stub _mbsncmp_l @ stub _mbsncoll(str str long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 77ced6e8a3e..f8b0d238f4f 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2273,31 +2273,52 @@ unsigned char* CDECL _mbsnset(unsigned char* str, unsigned int c, size_t len) } /********************************************************************* - * _mbsnccnt(MSVCRT.@) + * _mbsnccnt_l(MSVCRT.@) * 'c' is for 'character'. */ -size_t CDECL _mbsnccnt(const unsigned char* str, size_t len) +size_t CDECL _mbsnccnt_l(const unsigned char* str, size_t len, _locale_t locale) { - size_t ret; - if(get_mbcinfo()->ismbcodepage) - { - ret=0; - while(*str && len-- > 0) + size_t ret; + pthreadmbcinfo mbcinfo; + + if (!len) + return 0; + if (!MSVCRT_CHECK_PMT(str)) + return 0; + + if (locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + + if (mbcinfo->ismbcodepage) { - if(_ismbblead(*str)) - { - if (!len) - break; - len--; - str++; - } - str++; - ret++; + ret = 0; + while (*str && len-- > 0) + { + if (_ismbblead_l(*str, locale)) + { + if (!len) + break; + len--; + str++; + } + str++; + ret++; + } + return ret; } - return ret; - } - ret=u_strlen(str); - return min(ret, len); /* ASCII CP */ + ret = u_strlen(str); + return min(ret, len); /* ASCII CP */ +} + +/********************************************************************* + * _mbsnccnt(MSVCRT.@) + * 'c' is for 'character'. + */ +size_t CDECL _mbsnccnt(const unsigned char* str, size_t len) +{ + return _mbsnccnt_l(str, len, NULL); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index ff6f14b884f..f316e4f3885 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -771,7 +771,7 @@ # stub _mbsncat_s(str long str long) # stub _mbsncat_s_l(str long str long ptr) @ cdecl _mbsnccnt(str long) -# stub _mbsnccnt_l(str long ptr) +@ cdecl _mbsnccnt_l(str long ptr) @ cdecl _mbsncmp(str str long) # stub _mbsncmp_l(str str long ptr) @ stub _mbsncoll(str str long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 91c54e1a31c..45a92bdf94f 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -666,7 +666,7 @@ @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) -@ stub _mbsnccnt_l +@ cdecl _mbsnccnt_l(str long ptr) @ cdecl _mbsncmp(str str long) @ stub _mbsncmp_l @ stub _mbsncoll(str str long) @@ -1235,7 +1235,7 @@ @ stub _o__mbsncat_s @ stub _o__mbsncat_s_l @ cdecl _o__mbsnccnt(str long) _mbsnccnt -@ stub _o__mbsnccnt_l +@ cdecl _o__mbsnccnt_l(str long ptr) _mbsnccnt_l @ cdecl _o__mbsncmp(str str long) _mbsncmp @ stub _o__mbsncmp_l @ stub _o__mbsncoll
1
0
0
0
Bartosz Kosiorek : msvcrt: Add _mbsncat_l implementation.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: a67a08895f7ae6e44543bfa4a05b10df7c253f08 URL:
https://gitlab.winehq.org/wine/wine/-/commit/a67a08895f7ae6e44543bfa4a05b10…
Author: Bartosz Kosiorek <gang65(a)poczta.onet.pl> Date: Mon Nov 6 20:47:19 2023 +0100 msvcrt: Add _mbsncat_l implementation. --- 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 | 56 ++++++++++++++++++++++++++++++--------------- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 46 insertions(+), 26 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 121ff766807..565689ac6ab 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1146,7 +1146,7 @@ @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) -@ stub _mbsncat_l +@ cdecl _mbsncat_l(str str long ptr) @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index b14ed43cb3b..bc143f34505 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1503,7 +1503,7 @@ @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) -@ stub _mbsncat_l +@ cdecl _mbsncat_l(str str long ptr) @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 0aa7cafb660..cd76f568557 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1514,7 +1514,7 @@ @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) -@ stub _mbsncat_l +@ cdecl _mbsncat_l(str str long ptr) @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 52a9fbce0dc..5bc963edf57 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -818,7 +818,7 @@ @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) -@ stub _mbsncat_l +@ cdecl _mbsncat_l(str str long ptr) @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 78521a857ae..a7f47e568c7 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -796,7 +796,7 @@ @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) -@ stub _mbsncat_l +@ cdecl _mbsncat_l(str str long ptr) @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 2d492197452..77ced6e8a3e 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2457,30 +2457,50 @@ int CDECL _mbsnbcat_s(unsigned char *dst, size_t size, const unsigned char *src, } /********************************************************************* - * _mbsncat(MSVCRT.@) + * _mbsncat_l(MSVCRT.@) */ -unsigned char* CDECL _mbsncat(unsigned char* dst, const unsigned char* src, size_t len) +unsigned char* CDECL _mbsncat_l(unsigned char* dst, const unsigned char* src, size_t len, _locale_t locale) { - if(get_mbcinfo()->ismbcodepage) - { - unsigned char *res = dst; - while (*dst) - { - if (_ismbblead(*dst++)) - dst++; - } - while (*src && len--) + pthreadmbcinfo mbcinfo; + + if (!len) + return dst; + + if (!MSVCRT_CHECK_PMT(dst && src)) + return NULL; + + if (locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + + if (mbcinfo->ismbcodepage) { - *dst++ = *src; - if(_ismbblead(*src++)) - *dst++ = *src++; + unsigned char *res = dst; + while (*dst) + { + if (_ismbblead_l(*dst++, locale)) + dst++; + } + while (*src && len--) + { + *dst++ = *src; + if (_ismbblead_l(*src++, locale)) + *dst++ = *src++; + } + *dst = '\0'; + return res; } - *dst = '\0'; - return res; - } - return u_strncat(dst, src, len); /* ASCII CP */ + return u_strncat(dst, src, len); /* ASCII CP */ } +/********************************************************************* + * _mbsncat(MSVCRT.@) + */ +unsigned char* CDECL _mbsncat(unsigned char* dst, const unsigned char* src, size_t len) +{ + return _mbsncat_l(dst, src, len, NULL); +} /********************************************************************* * _mbslwr_l(MSVCRT.@) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index de58dd39a93..ff6f14b884f 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -767,7 +767,7 @@ # stub _mbsnbset_s(ptr long long long) # stub _mbsnbset_s_l(ptr long long long ptr) @ cdecl _mbsncat(str str long) -# stub _mbsncat_l(str str long ptr) +@ cdecl _mbsncat_l(str str long ptr) # stub _mbsncat_s(str long str long) # stub _mbsncat_s_l(str long str long ptr) @ cdecl _mbsnccnt(str long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index a18f5d6e397..91c54e1a31c 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -662,7 +662,7 @@ @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) -@ stub _mbsncat_l +@ cdecl _mbsncat_l(str str long ptr) @ stub _mbsncat_s @ stub _mbsncat_s_l @ cdecl _mbsnccnt(str long) @@ -1231,7 +1231,7 @@ @ stub _o__mbsnbset_s @ stub _o__mbsnbset_s_l @ cdecl _o__mbsncat(str str long) _mbsncat -@ stub _o__mbsncat_l +@ cdecl _o__mbsncat_l(str str long ptr) _mbsncat_l @ stub _o__mbsncat_s @ stub _o__mbsncat_s_l @ cdecl _o__mbsnccnt(str long) _mbsnccnt
1
0
0
0
Bartosz Kosiorek : msvcrt: Add _mbsnbset_l implementation.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: 12a00363f68fd12f3a1319eba7ccbce95df4e275 URL:
https://gitlab.winehq.org/wine/wine/-/commit/12a00363f68fd12f3a1319eba7ccbc…
Author: Bartosz Kosiorek <gang65(a)poczta.onet.pl> Date: Mon Nov 6 20:35:53 2023 +0100 msvcrt: Add _mbsnbset_l implementation. --- 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 | 45 +++++++++++++++++++++++++++++++-------------- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 39 insertions(+), 22 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 2e607207780..121ff766807 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1142,7 +1142,7 @@ @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) -@ stub _mbsnbset_l +@ cdecl _mbsnbset_l(str long long ptr) @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 4c552a2a80f..b14ed43cb3b 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1499,7 +1499,7 @@ @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) -@ stub _mbsnbset_l +@ cdecl _mbsnbset_l(str long long ptr) @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index d60c97a53fc..0aa7cafb660 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1510,7 +1510,7 @@ @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) -@ stub _mbsnbset_l +@ cdecl _mbsnbset_l(str long long ptr) @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index d718ec58cb4..52a9fbce0dc 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -814,7 +814,7 @@ @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) -@ stub _mbsnbset_l +@ cdecl _mbsnbset_l(str long long ptr) @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index d3b51e6cdac..78521a857ae 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -792,7 +792,7 @@ @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) -@ stub _mbsnbset_l +@ cdecl _mbsnbset_l(str long long ptr) @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index e75a02e0193..2d492197452 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2200,35 +2200,52 @@ unsigned char* CDECL _mbsset(unsigned char* str, unsigned int c) } /********************************************************************* - * _mbsnbset(MSVCRT.@) + * _mbsnbset_l(MSVCRT.@) */ -unsigned char* CDECL _mbsnbset(unsigned char *str, unsigned int c, size_t len) +unsigned char* CDECL _mbsnbset_l(unsigned char *str, unsigned int c, size_t len, _locale_t locale) { unsigned char *ret = str; + pthreadmbcinfo mbcinfo; - if(!len) - return ret; + if (!len) + return ret; + if (!MSVCRT_CHECK_PMT(str)) + return NULL; + + if (locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); - if(!get_mbcinfo()->ismbcodepage || c < 256) - return u__strnset(str, c, len); /* ASCII CP or SB char */ + if (!mbcinfo->ismbcodepage || c < 256) + return u__strnset(str, c, len); /* ASCII CP or SB char */ c &= 0xffff; /* Strip high bits */ - while(str[0] && str[1] && (len > 1)) + while (str[0] && str[1] && (len > 1)) { - *str++ = c >> 8; - len--; - *str++ = c & 0xff; - len--; + *str++ = c >> 8; + len--; + *str++ = c & 0xff; + len--; } - if(len && str[0]) { - /* as per msdn pad with a blank character */ - str[0] = ' '; + if (len && str[0]) + { + /* as per msdn pad with a blank character */ + str[0] = ' '; } return ret; } +/********************************************************************* + * _mbsnbset(MSVCRT.@) + */ +unsigned char* CDECL _mbsnbset(unsigned char *str, unsigned int c, size_t len) +{ + return _mbsnbset_l(str, c, len, NULL); +} + /********************************************************************* * _mbsnset(MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index e62e221b2b3..de58dd39a93 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -763,7 +763,7 @@ @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) -# stub _mbsnbset_l(str long long ptr) +@ cdecl _mbsnbset_l(str long long ptr) # stub _mbsnbset_s(ptr long long long) # stub _mbsnbset_s_l(ptr long long long ptr) @ cdecl _mbsncat(str str long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 1ed734b76d8..a18f5d6e397 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -658,7 +658,7 @@ @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) -@ stub _mbsnbset_l +@ cdecl _mbsnbset_l(str long long ptr) @ stub _mbsnbset_s @ stub _mbsnbset_s_l @ cdecl _mbsncat(str str long) @@ -1227,7 +1227,7 @@ @ cdecl _o__mbsnbicoll(str str long) _mbsnbicoll @ cdecl _o__mbsnbicoll_l(str str long ptr) _mbsnbicoll_l @ cdecl _o__mbsnbset(ptr long long) _mbsnbset -@ stub _o__mbsnbset_l +@ cdecl _o__mbsnbset_l(str long long ptr) _mbsnbset_l @ stub _o__mbsnbset_s @ stub _o__mbsnbset_s_l @ cdecl _o__mbsncat(str str long) _mbsncat
1
0
0
0
Bartosz Kosiorek : msvcrt: Add _mbsnbicmp_l implementation.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: 62ba4a826102aed2f513ed7e0f812a44a4d62dd7 URL:
https://gitlab.winehq.org/wine/wine/-/commit/62ba4a826102aed2f513ed7e0f812a…
Author: Bartosz Kosiorek <gang65(a)poczta.onet.pl> Date: Mon Nov 6 20:22:53 2023 +0100 msvcrt: Add _mbsnbicmp_l implementation. --- 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 | 93 +++++++++++++++++++++++++++------------------ dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 +- 8 files changed, 64 insertions(+), 45 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 884289175c0..2e607207780 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1138,7 +1138,7 @@ @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) -@ stub _mbsnbicmp_l +@ cdecl _mbsnbicmp_l(str str long ptr) @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 89bb35c7dba..4c552a2a80f 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1495,7 +1495,7 @@ @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) -@ stub _mbsnbicmp_l +@ cdecl _mbsnbicmp_l(str str long ptr) @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 1be83715d23..d60c97a53fc 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1506,7 +1506,7 @@ @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) -@ stub _mbsnbicmp_l +@ cdecl _mbsnbicmp_l(str str long ptr) @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 78172dbc104..d718ec58cb4 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -810,7 +810,7 @@ @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) -@ stub _mbsnbicmp_l +@ cdecl _mbsnbicmp_l(str str long ptr) @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index c1736877ff5..d3b51e6cdac 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -788,7 +788,7 @@ @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) -@ stub _mbsnbicmp_l +@ cdecl _mbsnbicmp_l(str str long ptr) @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 38ace70cd7e..e75a02e0193 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1362,47 +1362,66 @@ int CDECL _mbsnicmp(const unsigned char* str, const unsigned char* cmp, size_t l } /********************************************************************* - * _mbsnbicmp(MSVCRT.@) + * _mbsnbicmp_l(MSVCRT.@) */ -int CDECL _mbsnbicmp(const unsigned char* str, const unsigned char* cmp, size_t len) +int CDECL _mbsnbicmp_l(const unsigned char* str, const unsigned char* cmp, size_t len, _locale_t locale) { - if (!len) - return 0; - if(get_mbcinfo()->ismbcodepage) - { - unsigned int strc, cmpc; - while (len) + + pthreadmbcinfo mbcinfo; + + if (!len) + return 0; + if (!MSVCRT_CHECK_PMT(str && cmp)) + return _NLSCMPERROR; + + if (locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + + if (mbcinfo->ismbcodepage) { - int clen; - if(!*str) - return *cmp ? -1 : 0; - if(!*cmp) - return 1; - if (_ismbblead(*str)) - { - strc=(len>=2)?_mbsnextc(str):0; - clen=2; - } - else - { - strc=*str; - clen=1; - } - if (_ismbblead(*cmp)) - cmpc=(len>=2)?_mbsnextc(cmp):0; - else - cmpc=*cmp; - strc = _mbctolower(strc); - cmpc = _mbctolower(cmpc); - if(strc != cmpc) - return strc < cmpc ? -1 : 1; - len -= clen; - str += clen; - cmp += clen; + unsigned int strc, cmpc; + while (len) + { + int clen; + if (!*str) + return *cmp ? -1 : 0; + if (!*cmp) + return 1; + if (_ismbblead_l(*str, locale)) + { + strc = (len >= 2) ? _mbsnextc_l(str, locale) : 0; + clen = 2; + } + else + { + strc = *str; + clen = 1; + } + if (_ismbblead_l(*cmp, locale)) + cmpc = (len >= 2) ? _mbsnextc_l(cmp, locale) : 0; + else + cmpc = *cmp; + strc = _mbctolower_l(strc, locale); + cmpc = _mbctolower_l(cmpc, locale); + if (strc != cmpc) + return strc < cmpc ? -1 : 1; + len -= clen; + str += clen; + cmp += clen; + } + return 0; /* Matched len bytes */ } - return 0; /* Matched len bytes */ - } - return u_strncasecmp(str,cmp,len); + return u_strncasecmp(str, cmp, len); +} + +/********************************************************************* + * _mbsnbicmp(MSVCRT.@) + */ +int CDECL _mbsnbicmp(const unsigned char* str, const unsigned char* cmp, size_t len) +{ + return _mbsnbicmp_l(str, cmp, len, NULL); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 998bd7268ca..e62e221b2b3 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -759,7 +759,7 @@ @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) -# stub _mbsnbicmp_l(str str long ptr) +@ cdecl _mbsnbicmp_l(str str long ptr) @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 25c3e5ac766..1ed734b76d8 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -654,7 +654,7 @@ @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) -@ stub _mbsnbicmp_l +@ cdecl _mbsnbicmp_l(str str long ptr) @ cdecl _mbsnbicoll(str str long) @ cdecl _mbsnbicoll_l(str str long ptr) @ cdecl _mbsnbset(ptr long long) @@ -1223,7 +1223,7 @@ @ cdecl _o__mbsnbcpy_s(ptr long str long) _mbsnbcpy_s @ cdecl _o__mbsnbcpy_s_l(ptr long str long ptr) _mbsnbcpy_s_l @ cdecl _o__mbsnbicmp(str str long) _mbsnbicmp -@ stub _o__mbsnbicmp_l +@ cdecl _o__mbsnbicmp_l(str str long ptr) _mbsnbicmp_l @ cdecl _o__mbsnbicoll(str str long) _mbsnbicoll @ cdecl _o__mbsnbicoll_l(str str long ptr) _mbsnbicoll_l @ cdecl _o__mbsnbset(ptr long long) _mbsnbset
1
0
0
0
Bartosz Kosiorek : msvcrt: Add _mbsnbcpy_l implementation.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: bf9ac906e5041d7ab766f63858b04f719f832a5d URL:
https://gitlab.winehq.org/wine/wine/-/commit/bf9ac906e5041d7ab766f63858b04f…
Author: Bartosz Kosiorek <gang65(a)poczta.onet.pl> Date: Mon Nov 6 20:15:48 2023 +0100 msvcrt: Add _mbsnbcpy_l implementation. --- 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 | 67 +++++++++++++++++++++++++++++---------------- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 +-- 8 files changed, 51 insertions(+), 32 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 0f57555e454..884289175c0 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1134,7 +1134,7 @@ @ cdecl _mbsnbcoll(str str long) @ cdecl _mbsnbcoll_l(str str long ptr) @ cdecl _mbsnbcpy(ptr str long) -@ stub _mbsnbcpy_l +@ cdecl _mbsnbcpy_l(ptr str long ptr) @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 072cef0f0c9..89bb35c7dba 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1491,7 +1491,7 @@ @ cdecl _mbsnbcoll(str str long) @ cdecl _mbsnbcoll_l(str str long ptr) @ cdecl _mbsnbcpy(ptr str long) -@ stub _mbsnbcpy_l +@ cdecl _mbsnbcpy_l(ptr str long ptr) @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 55a0a4b1d2d..1be83715d23 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1502,7 +1502,7 @@ @ cdecl _mbsnbcoll(str str long) @ cdecl _mbsnbcoll_l(str str long ptr) @ cdecl _mbsnbcpy(ptr str long) -@ stub _mbsnbcpy_l +@ cdecl _mbsnbcpy_l(ptr str long ptr) @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 38d157f8a9a..78172dbc104 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -806,7 +806,7 @@ @ cdecl _mbsnbcoll(str str long) @ cdecl _mbsnbcoll_l(str str long ptr) @ cdecl _mbsnbcpy(ptr str long) -@ stub _mbsnbcpy_l +@ cdecl _mbsnbcpy_l(ptr str long ptr) @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 58cb3ef2e92..c1736877ff5 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -784,7 +784,7 @@ @ cdecl _mbsnbcoll(str str long) @ cdecl _mbsnbcoll_l(str str long ptr) @ cdecl _mbsnbcpy(ptr str long) -@ stub _mbsnbcpy_l +@ cdecl _mbsnbcpy_l(ptr str long ptr) @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 245dc843ba2..38ace70cd7e 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -993,39 +993,58 @@ int CDECL _mbscpy_s(unsigned char *dst, size_t size, const unsigned char *src) } /********************************************************************* - * _mbsnbcpy(MSVCRT.@) + * _mbsnbcpy_l(MSVCRT.@) * REMARKS * Like strncpy this function doesn't enforce the string to be * NUL-terminated */ -unsigned char* CDECL _mbsnbcpy(unsigned char* dst, const unsigned char* src, size_t n) +unsigned char* CDECL _mbsnbcpy_l(unsigned char* dst, const unsigned char* src, size_t n, _locale_t locale) { - unsigned char* ret = dst; - if(!n) - return dst; - if(get_mbcinfo()->ismbcodepage) - { - BOOL is_lead = FALSE; - while (*src && n) + unsigned char* ret = dst; + pthreadmbcinfo mbcinfo; + + if (!n) + return dst; + if (!MSVCRT_CHECK_PMT(dst && src)) + return NULL; + if (locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + if (mbcinfo->ismbcodepage) { - is_lead = (!is_lead && _ismbblead(*src)); - n--; - *dst++ = *src++; - } + BOOL is_lead = FALSE; + while (*src && n) + { + is_lead = (!is_lead && _ismbblead_l(*src, locale)); + n--; + *dst++ = *src++; + } - if (is_lead) /* if string ends with a lead, remove it */ - *(dst - 1) = 0; - } - else - { - while (n) + if (is_lead) /* if string ends with a lead, remove it */ + *(dst - 1) = 0; + } + else { - n--; - if (!(*dst++ = *src++)) break; + while (n) + { + n--; + if (!(*dst++ = *src++)) break; + } } - } - while (n--) *dst++ = 0; - return ret; + while (n--) *dst++ = 0; + return ret; +} + +/********************************************************************* + * _mbsnbcpy(MSVCRT.@) + * REMARKS + * Like strncpy this function doesn't enforce the string to be + * NUL-terminated + */ +unsigned char* CDECL _mbsnbcpy(unsigned char* dst, const unsigned char* src, size_t n) +{ + return _mbsnbcpy_l(dst, src, n, NULL); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 738279a2cd3..998bd7268ca 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -755,7 +755,7 @@ @ cdecl _mbsnbcoll(str str long) @ cdecl _mbsnbcoll_l(str str long ptr) @ cdecl _mbsnbcpy(ptr str long) -# stub _mbsnbcpy_l(ptr str long ptr) +@ cdecl _mbsnbcpy_l(ptr str long ptr) @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 46cea0359b4..25c3e5ac766 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -650,7 +650,7 @@ @ cdecl _mbsnbcoll(str str long) @ cdecl _mbsnbcoll_l(str str long ptr) @ cdecl _mbsnbcpy(ptr str long) -@ stub _mbsnbcpy_l +@ cdecl _mbsnbcpy_l(ptr str long ptr) @ cdecl _mbsnbcpy_s(ptr long str long) @ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) @@ -1219,7 +1219,7 @@ @ cdecl _o__mbsnbcoll(str str long) _mbsnbcoll @ cdecl _o__mbsnbcoll_l(str str long ptr) _mbsnbcoll_l @ cdecl _o__mbsnbcpy(ptr str long) _mbsnbcpy -@ stub _o__mbsnbcpy_l +@ cdecl _o__mbsnbcpy_l(ptr str long ptr) _mbsnbcpy_l @ cdecl _o__mbsnbcpy_s(ptr long str long) _mbsnbcpy_s @ cdecl _o__mbsnbcpy_s_l(ptr long str long ptr) _mbsnbcpy_s_l @ cdecl _o__mbsnbicmp(str str long) _mbsnbicmp
1
0
0
0
Bartosz Kosiorek : msvcrt: Add _mbsnbcat_s_l implementation.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: a6ed3d554ef90f6cf82db3cb7e14a4dec4d1fac8 URL:
https://gitlab.winehq.org/wine/wine/-/commit/a6ed3d554ef90f6cf82db3cb7e14a4…
Author: Bartosz Kosiorek <gang65(a)poczta.onet.pl> Date: Mon Nov 6 20:04:55 2023 +0100 msvcrt: Add _mbsnbcat_s_l implementation. --- 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 | 27 +++++++++++++++++++++------ dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 29 insertions(+), 14 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 36452977926..0f57555e454 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1126,7 +1126,7 @@ @ cdecl _mbsnbcat(str str long) @ cdecl _mbsnbcat_l(str str long ptr) @ cdecl _mbsnbcat_s(str long ptr long) -@ stub _mbsnbcat_s_l +@ cdecl _mbsnbcat_s_l(str long ptr long ptr) @ cdecl _mbsnbcmp(str str long) @ cdecl _mbsnbcmp_l(str str long ptr) @ cdecl _mbsnbcnt(ptr long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index b057d5b85ad..072cef0f0c9 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1483,7 +1483,7 @@ @ cdecl _mbsnbcat(str str long) @ cdecl _mbsnbcat_l(str str long ptr) @ cdecl _mbsnbcat_s(str long ptr long) -@ stub _mbsnbcat_s_l +@ cdecl _mbsnbcat_s_l(str long ptr long ptr) @ cdecl _mbsnbcmp(str str long) @ cdecl _mbsnbcmp_l(str str long ptr) @ cdecl _mbsnbcnt(ptr long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 5f24c3f7971..55a0a4b1d2d 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1494,7 +1494,7 @@ @ cdecl _mbsnbcat(str str long) @ cdecl _mbsnbcat_l(str str long ptr) @ cdecl _mbsnbcat_s(str long ptr long) -@ stub _mbsnbcat_s_l +@ cdecl _mbsnbcat_s_l(str long ptr long ptr) @ cdecl _mbsnbcmp(str str long) @ cdecl _mbsnbcmp_l(str str long ptr) @ cdecl _mbsnbcnt(ptr long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 42e215d7f79..38d157f8a9a 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -798,7 +798,7 @@ @ cdecl _mbsnbcat(str str long) @ cdecl _mbsnbcat_l(str str long ptr) @ cdecl _mbsnbcat_s(str long ptr long) -@ stub _mbsnbcat_s_l +@ cdecl _mbsnbcat_s_l(str long ptr long ptr) @ cdecl _mbsnbcmp(str str long) @ cdecl _mbsnbcmp_l(str str long ptr) @ cdecl _mbsnbcnt(ptr long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index be847415309..58cb3ef2e92 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -776,7 +776,7 @@ @ cdecl _mbsnbcat(str str long) @ cdecl _mbsnbcat_l(str str long ptr) @ cdecl _mbsnbcat_s(str long ptr long) -@ stub _mbsnbcat_s_l +@ cdecl _mbsnbcat_s_l(str long ptr long ptr) @ cdecl _mbsnbcmp(str str long) @ cdecl _mbsnbcmp_l(str str long ptr) @ cdecl _mbsnbcnt(ptr long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 01d290b2647..245dc843ba2 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2336,20 +2336,22 @@ unsigned char* CDECL _mbsnbcat(unsigned char *dst, const unsigned char *src, siz return _mbsnbcat_l(dst, src, len, NULL); } -int CDECL _mbsnbcat_s(unsigned char *dst, size_t size, const unsigned char *src, size_t len) +/********************************************************************* + * _mbsnbcat_s_l(MSVCRT.@) + */ +int CDECL _mbsnbcat_s_l(unsigned char *dst, size_t size, const unsigned char *src, size_t len, _locale_t locale) { unsigned char *ptr = dst; size_t i; + pthreadmbcinfo mbcinfo; - if (!dst && !size && !src && !len) + if (!dst && !size && !len) return 0; - if (!dst || !size || !src) + if (!MSVCRT_CHECK_PMT(dst && size && src)) { if (dst && size) *dst = '\0'; - - *_errno() = EINVAL; return EINVAL; } @@ -2364,9 +2366,14 @@ int CDECL _mbsnbcat_s(unsigned char *dst, size_t size, const unsigned char *src, return EINVAL; } + if (locale) + mbcinfo = locale->mbcinfo; + else + mbcinfo = get_mbcinfo(); + /* If necessary, check that the character preceding the null terminator is * a lead byte and move the pointer back by one for later overwrite. */ - if (ptr != dst && get_mbcinfo()->ismbcodepage && _ismbblead(*(ptr - 1))) + if (ptr != dst && mbcinfo->ismbcodepage && _ismbblead_l(*(ptr - 1), locale)) size++, ptr--; for (i = 0; *src && i < len; i++) @@ -2386,6 +2393,14 @@ int CDECL _mbsnbcat_s(unsigned char *dst, size_t size, const unsigned char *src, return 0; } +/********************************************************************* + * _mbsnbcat_s(MSVCRT.@) + */ +int CDECL _mbsnbcat_s(unsigned char *dst, size_t size, const unsigned char *src, size_t len) +{ + return _mbsnbcat_s_l(dst, size, src, len, NULL); +} + /********************************************************************* * _mbsncat(MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index a997a4e61d5..738279a2cd3 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -747,7 +747,7 @@ @ cdecl _mbsnbcat(str str long) @ cdecl _mbsnbcat_l(str str long ptr) @ cdecl _mbsnbcat_s(str long ptr long) -# stub _mbsnbcat_s_l(str long ptr long ptr) +@ cdecl _mbsnbcat_s_l(str long ptr long ptr) @ cdecl _mbsnbcmp(str str long) @ cdecl _mbsnbcmp_l(str str long ptr) @ cdecl _mbsnbcnt(ptr long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index f0b078e09e7..46cea0359b4 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -642,7 +642,7 @@ @ cdecl _mbsnbcat(str str long) @ cdecl _mbsnbcat_l(str str long ptr) @ cdecl _mbsnbcat_s(str long ptr long) -@ stub _mbsnbcat_s_l +@ cdecl _mbsnbcat_s_l(str long ptr long ptr) @ cdecl _mbsnbcmp(str str long) @ cdecl _mbsnbcmp_l(str str long ptr) @ cdecl _mbsnbcnt(ptr long) @@ -1211,7 +1211,7 @@ @ cdecl _o__mbsnbcat(str str long) _mbsnbcat @ cdecl _o__mbsnbcat_l(str str long ptr) _mbsnbcat_l @ cdecl _o__mbsnbcat_s(str long ptr long) _mbsnbcat_s -@ stub _o__mbsnbcat_s_l +@ cdecl _o__mbsnbcat_s_l(str long ptr long ptr) _mbsnbcat_s_l @ cdecl _o__mbsnbcmp(str str long) _mbsnbcmp @ cdecl _o_mbsnbcmp_l(str str long ptr) _mbsnbcmp_l @ cdecl _o__mbsnbcnt(ptr long) _mbsnbcnt
1
0
0
0
Alex Henrie : ddrawex: Use CRT allocation functions.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: 9365e6f682489a1654ee8e64223c3209d44e4651 URL:
https://gitlab.winehq.org/wine/wine/-/commit/9365e6f682489a1654ee8e64223c32…
Author: Alex Henrie <alexhenrie24(a)gmail.com> Date: Sat Nov 4 21:11:55 2023 -0600 ddrawex: Use CRT allocation functions. --- dlls/ddrawex/ddraw.c | 6 +++--- dlls/ddrawex/ddrawex_private.h | 2 -- dlls/ddrawex/main.c | 10 +++++----- dlls/ddrawex/surface.c | 4 ++-- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/dlls/ddrawex/ddraw.c b/dlls/ddrawex/ddraw.c index 4affc43ff3e..a03683b6c2f 100644 --- a/dlls/ddrawex/ddraw.c +++ b/dlls/ddrawex/ddraw.c @@ -165,7 +165,7 @@ static ULONG WINAPI ddrawex4_Release(IDirectDraw4 *iface) if (!refcount) { IDirectDraw4_Release(ddrawex->parent); - heap_free(ddrawex); + free(ddrawex); } return refcount; @@ -1425,7 +1425,7 @@ HRESULT WINAPI ddrawex_factory_CreateDirectDraw(IDirectDrawFactory *iface, GUID if (outer_unknown) FIXME("Implement aggregation in ddrawex's IDirectDraw interface.\n"); - if (!(object = heap_alloc_zero(sizeof(*object)))) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY; object->ref = 1; @@ -1450,7 +1450,7 @@ err: IDirectDraw4_Release(object->parent); if (parent) IDirectDraw_Release(parent); - heap_free(object); + free(object); *ddraw = NULL; return hr; } diff --git a/dlls/ddrawex/ddrawex_private.h b/dlls/ddrawex/ddrawex_private.h index f60d3cb4e1b..9277ac354e4 100644 --- a/dlls/ddrawex/ddrawex_private.h +++ b/dlls/ddrawex/ddrawex_private.h @@ -19,8 +19,6 @@ #ifndef __WINE_DLLS_DDRAWEX_DDRAWEX_PRIVATE_H #define __WINE_DLLS_DDRAWEX_DDRAWEX_PRIVATE_H -#include "wine/heap.h" - DEFINE_GUID(CLSID_DirectDrawFactory, 0x4fd2a832, 0x86c8, 0x11d0, 0x8f, 0xca, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d); DEFINE_GUID(IID_IDirectDrawFactory, 0x4fd2a833, 0x86c8, 0x11d0, 0x8f, 0xca, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d); diff --git a/dlls/ddrawex/main.c b/dlls/ddrawex/main.c index fd6d7219c12..32449ad7cea 100644 --- a/dlls/ddrawex/main.c +++ b/dlls/ddrawex/main.c @@ -82,7 +82,7 @@ static ULONG WINAPI ddrawex_class_factory_Release(IClassFactory *iface) TRACE("%p decreasing refcount to %lu.\n", iface, refcount); if (!refcount) - heap_free(factory); + free(factory); return refcount; } @@ -161,7 +161,7 @@ static ULONG WINAPI ddrawex_factory_Release(IDirectDrawFactory *iface) TRACE("%p decreasing refcount to %lu.\n", iface, refcount); if (!refcount) - heap_free(factory); + free(factory); return refcount; } @@ -193,13 +193,13 @@ static HRESULT ddrawex_factory_create(IUnknown *outer_unknown, REFIID riid, void if (outer_unknown) return CLASS_E_NOAGGREGATION; - if (!(factory = heap_alloc_zero(sizeof(*factory)))) + if (!(factory = calloc(1, sizeof(*factory)))) return E_OUTOFMEMORY; factory->IDirectDrawFactory_iface.lpVtbl = &ddrawex_factory_vtbl; if (FAILED(hr = ddrawex_factory_QueryInterface(&factory->IDirectDrawFactory_iface, riid, out))) - heap_free(factory); + free(factory); return hr; } @@ -223,7 +223,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **out) return CLASS_E_CLASSNOTAVAILABLE; } - if (!(factory = heap_alloc_zero(sizeof(*factory)))) + if (!(factory = calloc(1, sizeof(*factory)))) return E_OUTOFMEMORY; factory->IClassFactory_iface.lpVtbl = &ddrawex_class_factory_vtbl; diff --git a/dlls/ddrawex/surface.c b/dlls/ddrawex/surface.c index cc18494905c..d5cc6ffab82 100644 --- a/dlls/ddrawex/surface.c +++ b/dlls/ddrawex/surface.c @@ -124,7 +124,7 @@ static ULONG WINAPI ddrawex_surface4_Release(IDirectDrawSurface4 *iface) { IDirectDrawSurface4_FreePrivateData(surface->parent, &IID_DDrawexPriv); IDirectDrawSurface4_Release(surface->parent); - heap_free(surface); + free(surface); } return refcount; @@ -1208,7 +1208,7 @@ IDirectDrawSurface4 *dds_get_outer(IDirectDrawSurface4 *inner) struct ddrawex_surface *impl; TRACE("Creating new ddrawex surface wrapper for surface %p\n", inner); - impl = heap_alloc_zero(sizeof(*impl)); + impl = calloc(1, sizeof(*impl)); impl->ref = 1; impl->IDirectDrawSurface3_iface.lpVtbl = &ddrawex_surface3_vtbl; impl->IDirectDrawSurface4_iface.lpVtbl = &ddrawex_surface4_vtbl;
1
0
0
0
Alex Henrie : urlmon/tests: Use CRT allocation functions.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: 38d6ffdbe9b0542e6a5c1a190103ecbef58158a7 URL:
https://gitlab.winehq.org/wine/wine/-/commit/38d6ffdbe9b0542e6a5c1a190103ec…
Author: Alex Henrie <alexhenrie24(a)gmail.com> Date: Sun Nov 5 22:18:45 2023 -0700 urlmon/tests: Use CRT allocation functions. --- dlls/urlmon/tests/misc.c | 5 ++-- dlls/urlmon/tests/protocol.c | 5 ++-- dlls/urlmon/tests/sec_mgr.c | 5 ++-- dlls/urlmon/tests/uri.c | 61 ++++++++++++++++++++++---------------------- 4 files changed, 36 insertions(+), 40 deletions(-) diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c index 4cd64749b1d..796f54a4f62 100644 --- a/dlls/urlmon/tests/misc.c +++ b/dlls/urlmon/tests/misc.c @@ -30,7 +30,6 @@ #include "urlmon.h" #include "initguid.h" -#include "wine/heap.h" DEFINE_GUID(CLSID_AboutProtocol, 0x3050F406, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B); @@ -1497,7 +1496,7 @@ static void test_user_agent(void) ok(hres == E_OUTOFMEMORY, "ObtainUserAgentString failed: %08lx\n", hres); ok(size > 0, "size=%ld, expected non-zero\n", size); - str2 = HeapAlloc(GetProcessHeap(), 0, (size+20)*sizeof(CHAR)); + str2 = malloc(size + 20); saved = size; hres = pObtainUserAgentString(0, str2, &size); ok(hres == S_OK, "ObtainUserAgentString failed: %08lx\n", hres); @@ -1681,7 +1680,7 @@ static void test_user_agent(void) hres = UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, NULL, 0, 0); ok(hres == E_INVALIDARG, "UrlMkSetSessionOption failed: %08lx\n", hres); - HeapFree(GetProcessHeap(), 0, str2); + free(str2); } static void test_MkParseDisplayNameEx(void) diff --git a/dlls/urlmon/tests/protocol.c b/dlls/urlmon/tests/protocol.c index e2db124f21e..ead7bbd2e70 100644 --- a/dlls/urlmon/tests/protocol.c +++ b/dlls/urlmon/tests/protocol.c @@ -20,7 +20,6 @@ #define CONST_VTABLE #include <wine/test.h> -#include <wine/heap.h> #include <stdarg.h> #include <stdio.h> @@ -2331,7 +2330,7 @@ static ULONG WINAPI ProtocolUnk_Release(IUnknown *iface) if(This->outer_ref) trace("outer_ref %ld\n", This->outer_ref); CHECK_EXPECT(Protocol_destructor); - heap_free(This); + free(This); } return ref; } @@ -2643,7 +2642,7 @@ static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown } } - ret = heap_alloc(sizeof(*ret)); + ret = malloc(sizeof(*ret)); ret->IUnknown_inner.lpVtbl = &ProtocolUnkVtbl; ret->IInternetProtocolEx_iface.lpVtbl = &ProtocolVtbl; ret->IInternetPriority_iface.lpVtbl = &InternetPriorityVtbl; diff --git a/dlls/urlmon/tests/sec_mgr.c b/dlls/urlmon/tests/sec_mgr.c index 2f1844ca8e8..debd1e9ebc5 100644 --- a/dlls/urlmon/tests/sec_mgr.c +++ b/dlls/urlmon/tests/sec_mgr.c @@ -32,7 +32,6 @@ #include "urlmon.h" #include "initguid.h" -#include <wine/heap.h> #define URLZONE_CUSTOM URLZONE_USER_MIN+1 #define URLZONE_CUSTOM2 URLZONE_CUSTOM+1 @@ -201,7 +200,7 @@ static LONG myRegDeleteTreeA(HKEY hKey, LPCSTR lpszSubKey) if (dwMaxLen > ARRAY_SIZE(szNameBuf)) { /* Name too big: alloc a buffer for it */ - if (!(lpszName = HeapAlloc( GetProcessHeap(), 0, dwMaxLen*sizeof(CHAR)))) + if (!(lpszName = malloc(dwMaxLen))) { ret = ERROR_NOT_ENOUGH_MEMORY; goto cleanup; @@ -235,7 +234,7 @@ static LONG myRegDeleteTreeA(HKEY hKey, LPCSTR lpszSubKey) cleanup: /* Free buffer if allocated */ if (lpszName != szNameBuf) - heap_free(lpszName); + free(lpszName); if(lpszSubKey) RegCloseKey(hSubKey); return ret; diff --git a/dlls/urlmon/tests/uri.c b/dlls/urlmon/tests/uri.c index e6663a39641..cc6f5796fdd 100644 --- a/dlls/urlmon/tests/uri.c +++ b/dlls/urlmon/tests/uri.c @@ -33,7 +33,6 @@ #include "wininet.h" #include "strsafe.h" #include "initguid.h" -#include <wine/heap.h> DEFINE_GUID(CLSID_CUri, 0xDF2FCE13, 0x25EC, 0x45BB, 0x9D,0x4C, 0xCE,0xCD,0x47,0xC2,0x43,0x0C); @@ -7740,7 +7739,7 @@ static inline LPWSTR a2w(LPCSTR str) { if(str) { DWORD len = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0); - ret = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR)); + ret = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_UTF8, 0, str, -1, ret, len); } @@ -7750,7 +7749,7 @@ static inline LPWSTR a2w(LPCSTR str) { static inline DWORD strcmp_aw(LPCSTR strA, LPCWSTR strB) { LPWSTR strAW = a2w(strA); DWORD ret = lstrcmpW(strAW, strB); - heap_free(strAW); + free(strAW); return ret; } @@ -7826,7 +7825,7 @@ static void change_property(IUriBuilder *builder, const uri_builder_property *pr trace("Unsupported operation for %d on uri_builder_tests[%ld].\n", prop->property, test_index); } - heap_free(valueW); + free(valueW); } /* @@ -7888,7 +7887,7 @@ static void test_CreateUri_InvalidUri(void) { hr, E_INVALIDARG, i); if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -7964,7 +7963,7 @@ static void test_IUri_GetPropertyBSTR(void) { if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -8018,7 +8017,7 @@ static void test_IUri_GetPropertyDWORD(void) { if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -8280,7 +8279,7 @@ static void test_IUri_GetStrProperties(void) { if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -8369,7 +8368,7 @@ static void test_IUri_GetDwordProperties(void) { if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -8416,7 +8415,7 @@ static void test_IUri_GetPropertyLength(void) { /* Value may be unicode encoded */ expectedValueW = a2w(prop.value); expectedLen = lstrlenW(expectedValueW); - heap_free(expectedValueW); + free(expectedValueW); /* This won't be necessary once GetPropertyLength is implemented. */ receivedLen = -1; @@ -8436,7 +8435,7 @@ static void test_IUri_GetPropertyLength(void) { if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -8509,7 +8508,7 @@ static void test_IUri_GetProperties(void) { if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -8562,7 +8561,7 @@ static void test_IUri_HasProperty(void) { if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -8855,8 +8854,8 @@ static void test_IUri_IsEqual(void) { if(uriA) IUri_Release(uriA); if(uriB) IUri_Release(uriB); - heap_free(uriA_W); - heap_free(uriB_W); + free(uriA_W); + free(uriB_W); } } @@ -8927,8 +8926,8 @@ static void test_CreateUriWithFragment(void) { } if(uri) IUri_Release(uri); - heap_free(uriW); - heap_free(fragW); + free(uriW); + free(fragW); } } @@ -10142,7 +10141,7 @@ static void test_IUriBuilder(void) { } if(builder) IUriBuilder_Release(builder); if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -10469,7 +10468,7 @@ static void test_IUriBuilder_RemoveProperties(void) { if(builder) IUriBuilder_Release(builder); } if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -10676,10 +10675,10 @@ static void test_CoInternetCombineIUri(void) { if(result) IUri_Release(result); } if(relative) IUri_Release(relative); - heap_free(relativeW); + free(relativeW); } if(base) IUri_Release(base); - heap_free(baseW); + free(baseW); } } @@ -10963,10 +10962,10 @@ static void test_CoInternetCombineUrlEx(void) { } } if(result) IUri_Release(result); - heap_free(relativeW); + free(relativeW); } if(base) IUri_Release(base); - heap_free(baseW); + free(baseW); } } @@ -11067,13 +11066,13 @@ static void test_CoInternetParseIUri_InvalidArgs(void) { /* a long url that causes a crash on Wine */ len = INTERNET_MAX_URL_LENGTH*2; - longurl = heap_alloc((len+1)*sizeof(WCHAR)); + longurl = malloc((len + 1) * sizeof(WCHAR)); memcpy(longurl, http_urlW, sizeof(http_urlW)); for(i = ARRAY_SIZE(http_urlW)-1; i < len; i++) longurl[i] = 'x'; longurl[len] = 0; - copy = heap_alloc((len+1)*sizeof(WCHAR)); + copy = malloc((len + 1) * sizeof(WCHAR)); memcpy(copy, longurl, (len+1)*sizeof(WCHAR)); hr = pCreateUri(longurl, 0, 0, &uri); @@ -11088,8 +11087,8 @@ static void test_CoInternetParseIUri_InvalidArgs(void) { ok(result == len, "Error: Expected 'result' to be %ld, but was %ld instead.\n", len, result); } - heap_free(longurl); - heap_free(copy); + free(longurl); + free(copy); if(uri) IUri_Release(uri); } @@ -11129,7 +11128,7 @@ static void test_CoInternetParseIUri(void) { } } if(uri) IUri_Release(uri); - heap_free(uriW); + free(uriW); } } @@ -11355,8 +11354,8 @@ static void test_CreateURLMoniker(void) IMoniker_Release(mon); IUri_Release(uri); - heap_free(url); - heap_free(base_url); + free(url); + free(base_url); if(base_uri) IUri_Release(base_uri); if(base_mon) @@ -11606,7 +11605,7 @@ static void test_IPersistStream(void) IMarshal_Release(marshal); IStream_Release(stream); IUri_Release(uri); - heap_free(uriW); + free(uriW); } }
1
0
0
0
Alex Henrie : shdocvw: Use CRT allocation functions.
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: fdbd8cf0070d9f597010efe618e2201781bb5035 URL:
https://gitlab.winehq.org/wine/wine/-/commit/fdbd8cf0070d9f597010efe618e220…
Author: Alex Henrie <alexhenrie24(a)gmail.com> Date: Mon Nov 6 23:06:45 2023 -0700 shdocvw: Use CRT allocation functions. --- dlls/shdocvw/shdocvw.h | 1 - dlls/shdocvw/shdocvw_main.c | 16 ++++++++-------- dlls/shdocvw/shlinstobj.c | 18 +++++++++--------- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h index 0b76b3d91f7..5cee1105d42 100644 --- a/dlls/shdocvw/shdocvw.h +++ b/dlls/shdocvw/shdocvw.h @@ -34,7 +34,6 @@ #include "shlobj.h" #include "exdisp.h" -#include "wine/heap.h" #include "wine/list.h" /********************************************************************** diff --git a/dlls/shdocvw/shdocvw_main.c b/dlls/shdocvw/shdocvw_main.c index b5b60054f2c..6556223e1d7 100644 --- a/dlls/shdocvw/shdocvw_main.c +++ b/dlls/shdocvw/shdocvw_main.c @@ -104,14 +104,14 @@ DWORD WINAPI IEWinMain(LPSTR szCommandLine, int nShowWindow) ExitProcess(1); len = MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, NULL, 0); - cmdline = heap_alloc(len*sizeof(WCHAR)); + cmdline = malloc(len * sizeof(WCHAR)); if(!cmdline) ExitProcess(1); MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, cmdline, len); ret = pIEWinMain(cmdline, nShowWindow); - heap_free(cmdline); + free(cmdline); return ret; } @@ -403,13 +403,13 @@ DWORD WINAPI ParseURLFromOutsideSourceA(LPCSTR url, LPSTR out, LPDWORD plen, LPD if (url) { len = MultiByteToWideChar(CP_ACP, 0, url, -1, NULL, 0); - urlW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + urlW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, url, -1, urlW, len); } len = ARRAY_SIZE(buffer); ParseURLFromOutsideSourceW(urlW, buffer, &len, unknown); - HeapFree(GetProcessHeap(), 0, urlW); + free(urlW); needed = WideCharToMultiByte(CP_ACP, 0, buffer, -1, NULL, 0, NULL, NULL); @@ -460,11 +460,11 @@ DWORD WINAPI SHRestricted2A(DWORD restriction, LPCSTR url, DWORD reserved) TRACE("(%ld, %s, %ld)\n", restriction, debugstr_a(url), reserved); if (url) { DWORD len = MultiByteToWideChar(CP_ACP, 0, url, -1, NULL, 0); - urlW = heap_alloc(len * sizeof(WCHAR)); + urlW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, url, -1, urlW, len); } res = SHRestricted2W(restriction, urlW, reserved); - heap_free(urlW); + free(urlW); return res; } @@ -547,10 +547,10 @@ BOOL WINAPI DoOrganizeFavDlg(HWND hwnd, LPCSTR initDir) if (initDir) { DWORD len = MultiByteToWideChar(CP_ACP, 0, initDir, -1, NULL, 0); - initDirW = heap_alloc(len * sizeof(WCHAR)); + initDirW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, initDir, -1, initDirW, len); } res = DoOrganizeFavDlgW(hwnd, initDirW); - heap_free(initDirW); + free(initDirW); return res; } diff --git a/dlls/shdocvw/shlinstobj.c b/dlls/shdocvw/shlinstobj.c index d1405a6bb53..102aa85bae0 100644 --- a/dlls/shdocvw/shlinstobj.c +++ b/dlls/shdocvw/shlinstobj.c @@ -105,7 +105,7 @@ static ULONG WINAPI RegistryPropertyBag_IPropertyBag_Release(IPropertyBag *iface if (cRef == 0) { TRACE("Destroying This=%p)\n", This); RegCloseKey(This->m_hInitPropertyBagKey); - heap_free(This); + free(This); SHDOCVW_UnlockModule(); } @@ -129,20 +129,20 @@ static HRESULT WINAPI RegistryPropertyBag_IPropertyBag_Read(IPropertyBag *iface, if (res != ERROR_SUCCESS) return E_INVALIDARG; - pwszValue = heap_alloc(cbData); + pwszValue = malloc(cbData); if (!pwszValue) return E_OUTOFMEMORY; - + res = RegQueryValueExW(This->m_hInitPropertyBagKey, pwszPropName, NULL, &dwType, (LPBYTE)pwszValue, &cbData); if (res != ERROR_SUCCESS) { - heap_free(pwszValue); + free(pwszValue); return E_INVALIDARG; } V_VT(pVar) = VT_BSTR; V_BSTR(pVar) = SysAllocString(pwszValue); - heap_free(pwszValue); + free(pwszValue); if (vtDst != VT_BSTR) { hr = VariantChangeTypeEx(pVar, pVar, LOCALE_SYSTEM_DEFAULT, 0, vtDst); @@ -174,8 +174,8 @@ static HRESULT RegistryPropertyBag_Constructor(HKEY hInitPropertyBagKey, REFIID TRACE("(hInitPropertyBagKey=%p, riid=%s, ppvObject=%p)\n", hInitPropertyBagKey, debugstr_guid(riid), ppvObject); - - pRegistryPropertyBag = heap_alloc(sizeof(RegistryPropertyBag)); + + pRegistryPropertyBag = malloc(sizeof(RegistryPropertyBag)); if (pRegistryPropertyBag) { pRegistryPropertyBag->IPropertyBag_iface.lpVtbl = &RegistryPropertyBag_IPropertyBagVtbl; pRegistryPropertyBag->m_cRef = 0; @@ -256,7 +256,7 @@ static ULONG WINAPI InstanceObjectFactory_IClassFactory_Release(IClassFactory *i if (cRef == 0) { IClassFactory_LockServer(iface, FALSE); IPropertyBag_Release(This->m_pPropertyBag); - heap_free(This); + free(This); } return cRef; @@ -322,7 +322,7 @@ static HRESULT InstanceObjectFactory_Constructor(REFCLSID rclsid, IPropertyBag * TRACE("(RegistryPropertyBag=%p, riid=%s, ppvObject=%p)\n", pPropertyBag, debugstr_guid(riid), ppvObject); - pInstanceObjectFactory = heap_alloc(sizeof(InstanceObjectFactory)); + pInstanceObjectFactory = malloc(sizeof(InstanceObjectFactory)); if (pInstanceObjectFactory) { pInstanceObjectFactory->IClassFactory_iface.lpVtbl = &InstanceObjectFactory_IClassFactoryVtbl; pInstanceObjectFactory->m_cRef = 0;
1
0
0
0
Zebediah Figura : wined3d: Translate sampler states to sampler objects in wined3d_device_apply_stateblock().
by Alexandre Julliard
07 Nov '23
07 Nov '23
Module: wine Branch: master Commit: 0e39cd65cbb998cb54ad6f18390e871660e0111c URL:
https://gitlab.winehq.org/wine/wine/-/commit/0e39cd65cbb998cb54ad6f18390e87…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Fri Dec 30 16:31:28 2022 -0600 wined3d: Translate sampler states to sampler objects in wined3d_device_apply_stateblock(). --- dlls/d3d8/texture.c | 9 +- dlls/d3d9/texture.c | 9 +- dlls/ddraw/surface.c | 4 +- dlls/wined3d/context.c | 2 +- dlls/wined3d/cs.c | 40 ++------- dlls/wined3d/sampler.c | 4 - dlls/wined3d/state.c | 115 ++----------------------- dlls/wined3d/stateblock.c | 185 ++++++++++++++++++++++++++++++++++++----- dlls/wined3d/texture.c | 37 --------- dlls/wined3d/wined3d.spec | 2 +- dlls/wined3d/wined3d_private.h | 18 +--- include/wine/wined3d.h | 3 +- 12 files changed, 199 insertions(+), 229 deletions(-)
1
0
0
0
← Newer
1
...
72
73
74
75
76
77
78
...
99
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Results per page:
10
25
50
100
200