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
May 2011
----- 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
2 participants
945 discussions
Start a n
N
ew thread
Piotr Caban : msvcrt: Added _strupr_s_l implementation.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: 3db957e39e73b3b7f98c4087a754461096a41a2a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=3db957e39e73b3b7f98c4087a…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu May 12 11:38:52 2011 +0200 msvcrt: Added _strupr_s_l implementation. --- dlls/msvcrt/msvcrt.spec | 8 +++--- dlls/msvcrt/string.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 678a2c9..1766dbf 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -954,10 +954,10 @@ @ cdecl -ret64 _strtoui64(str ptr long) MSVCRT_strtoui64 @ cdecl -ret64 _strtoui64_l(str ptr long ptr) MSVCRT_strtoui64_l # stub _strtoul_l(str ptr long ptr) -@ cdecl _strupr(str) ntdll._strupr -# stub _strupr_l(str ptr) -# stub _strupr_s(str long) -# stub _strupr_s_l(str long ptr) +@ cdecl _strupr(str) +@ cdecl _strupr_l(str ptr) +@ cdecl _strupr_s(str long) +@ cdecl _strupr_s_l(str long ptr) # stub _strxfrm_l(ptr str long ptr) @ cdecl _swab(str str long) MSVCRT__swab @ varargs _swprintf(ptr wstr) MSVCRT_swprintf diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c index 10a86c5..8316ff7 100644 --- a/dlls/msvcrt/string.c +++ b/dlls/msvcrt/string.c @@ -113,6 +113,68 @@ int CDECL _strlwr(char *str) } /********************************************************************* + * _strupr_s_l (MSVCRT.@) + */ +int CDECL _strupr_s_l(char *str, MSVCRT_size_t len, MSVCRT__locale_t locale) +{ + char *ptr = str; + + if(!locale) + locale = get_locale(); + + if (!str || !len) + { + *MSVCRT__errno() = MSVCRT_EINVAL; + return MSVCRT_EINVAL; + } + + while (len && *ptr) + { + len--; + ptr++; + } + + if (!len) + { + str[0] = '\0'; + *MSVCRT__errno() = MSVCRT_EINVAL; + return MSVCRT_EINVAL; + } + + while (*str) + { + *str = MSVCRT__toupper_l(*str, locale); + str++; + } + + return 0; +} + +/********************************************************************* + * _strupr_s (MSVCRT.@) + */ +int CDECL _strupr_s(char *str, MSVCRT_size_t len) +{ + return _strupr_s_l(str, len, NULL); +} + +/********************************************************************* + * _strupr_l (MSVCRT.@) + */ +int CDECL _strupr_l(char *str, MSVCRT__locale_t locale) +{ + return _strupr_s_l(str, -1, locale); +} + +/********************************************************************* + * _strupr (MSVCRT.@) + */ +int CDECL _strupr(char *str) +{ + return _strupr_s_l(str, -1, NULL); +} + +/********************************************************************* * _strnset (MSVCRT.@) */ char* CDECL MSVCRT__strnset(char* str, int value, MSVCRT_size_t len)
1
0
0
0
Piotr Caban : msvcrt: Added _strlwr_s_l implementation.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: 504231ff5a9b3daf6ee0816e29219c3ee1451c8d URL:
http://source.winehq.org/git/wine.git/?a=commit;h=504231ff5a9b3daf6ee0816e2…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu May 12 11:38:41 2011 +0200 msvcrt: Added _strlwr_s_l implementation. --- dlls/msvcrt/msvcrt.h | 2 ++ dlls/msvcrt/msvcrt.spec | 6 +++--- dlls/msvcrt/string.c | 33 ++++++++++++++++++++++++++++++--- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index a243f2f..bd41bac 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -904,6 +904,8 @@ void __cdecl _wsearchenv(const MSVCRT_wchar_t*, const MSVCRT_wchar_t*, MSVCRT MSVCRT_intptr_t __cdecl MSVCRT__spawnvpe(int, const char*, const char* const*, const char* const*); void __cdecl MSVCRT__invalid_parameter(const MSVCRT_wchar_t *expr, const MSVCRT_wchar_t *func, const MSVCRT_wchar_t *file, unsigned int line, MSVCRT_uintptr_t arg); +int __cdecl MSVCRT__toupper_l(int,MSVCRT__locale_t); +int __cdecl MSVCRT__tolower_l(int,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 84b0194..678a2c9 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -930,10 +930,10 @@ # stub _stricmp_l(str str ptr) @ cdecl _stricoll(str str) MSVCRT__stricoll # stub _stricoll_l(str str ptr) -@ cdecl _strlwr(str) ntdll._strlwr -# stub _strlwr_l(str ptr) +@ cdecl _strlwr(str) +@ cdecl _strlwr_l(str ptr) @ cdecl _strlwr_s(ptr long) -# stub _strlwr_s_l(ptr long ptr) +@ cdecl _strlwr_s_l(ptr long ptr) @ stub _strncoll(str str long) # stub _strncoll_l(str str long ptr) @ cdecl _strnicmp(str str long) ntdll._strnicmp diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c index 2b9d41e..10a86c5 100644 --- a/dlls/msvcrt/string.c +++ b/dlls/msvcrt/string.c @@ -51,12 +51,15 @@ char* CDECL _strdup(const char* str) } /********************************************************************* - * _strlwr_s (MSVCRT.@) + * _strlwr_s_l (MSVCRT.@) */ -int CDECL _strlwr_s(char *str, MSVCRT_size_t len) +int CDECL _strlwr_s_l(char *str, MSVCRT_size_t len, MSVCRT__locale_t locale) { char *ptr = str; + if(!locale) + locale = get_locale(); + if (!str || !len) { *MSVCRT__errno() = MSVCRT_EINVAL; @@ -78,7 +81,7 @@ int CDECL _strlwr_s(char *str, MSVCRT_size_t len) while (*str) { - *str = tolower(*str); + *str = MSVCRT__tolower_l(*str, locale); str++; } @@ -86,6 +89,30 @@ int CDECL _strlwr_s(char *str, MSVCRT_size_t len) } /********************************************************************* + * _strlwr_s (MSVCRT.@) + */ +int CDECL _strlwr_s(char *str, MSVCRT_size_t len) +{ + return _strlwr_s_l(str, len, NULL); +} + +/********************************************************************* + * _strlwr_l (MSVCRT.@) + */ +int CDECL _strlwr_l(char *str, MSVCRT__locale_t locale) +{ + return _strlwr_s_l(str, -1, locale); +} + +/********************************************************************* + * _strlwr (MSVCRT.@) + */ +int CDECL _strlwr(char *str) +{ + return _strlwr_s_l(str, -1, NULL); +} + +/********************************************************************* * _strnset (MSVCRT.@) */ char* CDECL MSVCRT__strnset(char* str, int value, MSVCRT_size_t len)
1
0
0
0
Piotr Caban : msvcrt: Added _tolower_l implementation.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: 0ea4e668f5576170b7a4eecffb7fe7c9095afd8a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=0ea4e668f5576170b7a4eecff…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu May 12 11:38:32 2011 +0200 msvcrt: Added _tolower_l implementation. --- dlls/msvcrt/ctype.c | 43 +++++++++++++++++++++++++++++++++++++++++++ dlls/msvcrt/msvcrt.spec | 4 ++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/dlls/msvcrt/ctype.c b/dlls/msvcrt/ctype.c index 9de24e8..94815b8 100644 --- a/dlls/msvcrt/ctype.c +++ b/dlls/msvcrt/ctype.c @@ -380,6 +380,49 @@ int CDECL MSVCRT__toupper(int c) } /********************************************************************* + * _tolower_l (MSVCRT.@) + */ +int CDECL MSVCRT__tolower_l(int c, MSVCRT__locale_t locale) +{ + if(!locale) + locale = get_locale(); + + if(c < 256) + return locale->locinfo->pclmap[c]; + + if(locale->locinfo->pctype[(c>>8)&255] & MSVCRT__LEADBYTE) + { + WCHAR wide, upper; + char str[2], *p = str; + *p++ = (c>>8) & 255; + *p++ = c & 255; + + if(!MultiByteToWideChar(locale->locinfo->lc_codepage, + MB_ERR_INVALID_CHARS, str, 2, &wide, 1)) + return c; + + upper = tolowerW(wide); + if(upper == wide) + return c; + + WideCharToMultiByte(locale->locinfo->lc_codepage, 0, + &upper, 1, str, 2, NULL, NULL); + + return str[0] + (str[1]<<8); + } + + return c; +} + +/********************************************************************* + * tolower (MSVCRT.@) + */ +int CDECL MSVCRT_tolower(int c) +{ + return MSVCRT__tolower_l(c, NULL); +} + +/********************************************************************* * _tolower (MSVCRT.@) */ int CDECL MSVCRT__tolower(int c) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index ebef717..84b0194 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -977,7 +977,7 @@ @ cdecl _time64(ptr) MSVCRT__time64 @ extern _timezone MSVCRT___timezone @ cdecl _tolower(long) MSVCRT__tolower -# stub _tolower_l(long ptr) +@ cdecl _tolower_l(long ptr) MSVCRT__tolower_l @ cdecl _toupper(long) MSVCRT__toupper @ cdecl _toupper_l(long ptr) MSVCRT__toupper_l @ cdecl _towlower_l(long ptr) MSVCRT__towlower_l @@ -1425,7 +1425,7 @@ # stub tmpfile_s(ptr) @ cdecl tmpnam(ptr) MSVCRT_tmpnam # stub tmpnam_s(ptr long) -@ cdecl tolower(long) ntdll.tolower +@ cdecl tolower(long) MSVCRT_tolower @ cdecl toupper(long) MSVCRT_toupper @ cdecl towlower(long) ntdll.towlower @ cdecl towupper(long) ntdll.towupper
1
0
0
0
Piotr Caban : msvcrt: Added _toupper_l implementation.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: 1e981e5e9c6cfa3f0943cc6d53e8b44e9ed1c297 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=1e981e5e9c6cfa3f0943cc6d5…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu May 12 11:38:23 2011 +0200 msvcrt: Added _toupper_l implementation. --- dlls/msvcrt/ctype.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ dlls/msvcrt/msvcrt.spec | 4 ++-- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/dlls/msvcrt/ctype.c b/dlls/msvcrt/ctype.c index 2149591..9de24e8 100644 --- a/dlls/msvcrt/ctype.c +++ b/dlls/msvcrt/ctype.c @@ -20,6 +20,7 @@ #include "msvcrt.h" #include "winnls.h" +#include "wine/unicode.h" /* Some abbreviations to make the following table readable */ #define _C_ MSVCRT__CONTROL @@ -328,6 +329,49 @@ int CDECL MSVCRT___iscsymf(int c) } /********************************************************************* + * _toupper_l (MSVCRT.@) + */ +int CDECL MSVCRT__toupper_l(int c, MSVCRT__locale_t locale) +{ + if(!locale) + locale = get_locale(); + + if(c < 256) + return locale->locinfo->pcumap[c]; + + if(locale->locinfo->pctype[(c>>8)&255] & MSVCRT__LEADBYTE) + { + WCHAR wide, upper; + char str[2], *p = str; + *p++ = (c>>8) & 255; + *p++ = c & 255; + + if(!MultiByteToWideChar(locale->locinfo->lc_codepage, + MB_ERR_INVALID_CHARS, str, 2, &wide, 1)) + return c; + + upper = toupperW(wide); + if(upper == wide) + return c; + + WideCharToMultiByte(locale->locinfo->lc_codepage, 0, + &upper, 1, str, 2, NULL, NULL); + + return str[0] + (str[1]<<8); + } + + return c; +} + +/********************************************************************* + * toupper (MSVCRT.@) + */ +int CDECL MSVCRT_toupper(int c) +{ + return MSVCRT__toupper_l(c, NULL); +} + +/********************************************************************* * _toupper (MSVCRT.@) */ int CDECL MSVCRT__toupper(int c) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 15de47a..ebef717 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -979,7 +979,7 @@ @ cdecl _tolower(long) MSVCRT__tolower # stub _tolower_l(long ptr) @ cdecl _toupper(long) MSVCRT__toupper -# stub _toupper_l(long ptr) +@ cdecl _toupper_l(long ptr) MSVCRT__toupper_l @ cdecl _towlower_l(long ptr) MSVCRT__towlower_l @ cdecl _towupper_l(long ptr) MSVCRT__towupper_l @ extern _tzname MSVCRT__tzname @@ -1426,7 +1426,7 @@ @ cdecl tmpnam(ptr) MSVCRT_tmpnam # stub tmpnam_s(ptr long) @ cdecl tolower(long) ntdll.tolower -@ cdecl toupper(long) ntdll.toupper +@ cdecl toupper(long) MSVCRT_toupper @ cdecl towlower(long) ntdll.towlower @ cdecl towupper(long) ntdll.towupper @ cdecl ungetc(long ptr) MSVCRT_ungetc
1
0
0
0
Piotr Caban : msvcrt: Added _is*_l functions implementation.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: 52c2976f1dd0139c7c651e2fdb2f38c2345c0afc URL:
http://source.winehq.org/git/wine.git/?a=commit;h=52c2976f1dd0139c7c651e2fd…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu May 12 11:37:48 2011 +0200 msvcrt: Added _is*_l functions implementation. --- dlls/msvcrt/ctype.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++ dlls/msvcrt/msvcrt.spec | 22 ++++++------ 2 files changed, 99 insertions(+), 11 deletions(-) diff --git a/dlls/msvcrt/ctype.c b/dlls/msvcrt/ctype.c index 9d5ed1e..2149591 100644 --- a/dlls/msvcrt/ctype.c +++ b/dlls/msvcrt/ctype.c @@ -103,6 +103,14 @@ int CDECL _isctype(int c, int type) } /********************************************************************* + * _isalnum_l (MSVCRT.@) + */ +int CDECL MSVCRT__isalnum_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__ALPHA | MSVCRT__DIGIT, locale ); +} + +/********************************************************************* * isalnum (MSVCRT.@) */ int CDECL MSVCRT_isalnum(int c) @@ -111,6 +119,14 @@ int CDECL MSVCRT_isalnum(int c) } /********************************************************************* + * _isalpha_l (MSVCRT.@) + */ +int CDECL MSVCRT__isalpha_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__ALPHA, locale ); +} + +/********************************************************************* * isalpha (MSVCRT.@) */ int CDECL MSVCRT_isalpha(int c) @@ -119,6 +135,14 @@ int CDECL MSVCRT_isalpha(int c) } /********************************************************************* + * _iscntrl_l (MSVCRT.@) + */ +int CDECL MSVCRT__iscntrl_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__CONTROL, locale ); +} + +/********************************************************************* * iscntrl (MSVCRT.@) */ int CDECL MSVCRT_iscntrl(int c) @@ -127,6 +151,14 @@ int CDECL MSVCRT_iscntrl(int c) } /********************************************************************* + * _isdigit_l (MSVCRT.@) + */ +int CDECL MSVCRT__isdigit_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__DIGIT, locale ); +} + +/********************************************************************* * isdigit (MSVCRT.@) */ int CDECL MSVCRT_isdigit(int c) @@ -135,6 +167,14 @@ int CDECL MSVCRT_isdigit(int c) } /********************************************************************* + * _isgraph_l (MSVCRT.@) + */ +int CDECL MSVCRT__isgraph_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__ALPHA | MSVCRT__DIGIT | MSVCRT__PUNCT, locale ); +} + +/********************************************************************* * isgraph (MSVCRT.@) */ int CDECL MSVCRT_isgraph(int c) @@ -143,6 +183,14 @@ int CDECL MSVCRT_isgraph(int c) } /********************************************************************* + * _isleadbyte_l (MSVCRT.@) + */ +int CDECL MSVCRT__isleadbyte_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__LEADBYTE, locale ); +} + +/********************************************************************* * isleadbyte (MSVCRT.@) */ int CDECL MSVCRT_isleadbyte(int c) @@ -151,6 +199,14 @@ int CDECL MSVCRT_isleadbyte(int c) } /********************************************************************* + * _islower_l (MSVCRT.@) + */ +int CDECL MSVCRT__islower_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__LOWER, locale ); +} + +/********************************************************************* * islower (MSVCRT.@) */ int CDECL MSVCRT_islower(int c) @@ -159,6 +215,14 @@ int CDECL MSVCRT_islower(int c) } /********************************************************************* + * _isprint_l (MSVCRT.@) + */ +int CDECL MSVCRT__isprint_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__ALPHA | MSVCRT__DIGIT | MSVCRT__BLANK | MSVCRT__PUNCT, locale ); +} + +/********************************************************************* * isprint (MSVCRT.@) */ int CDECL MSVCRT_isprint(int c) @@ -175,6 +239,14 @@ int CDECL MSVCRT_ispunct(int c) } /********************************************************************* + * _isspace_l (MSVCRT.@) + */ +int CDECL MSVCRT__isspace_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__SPACE, locale ); +} + +/********************************************************************* * isspace (MSVCRT.@) */ int CDECL MSVCRT_isspace(int c) @@ -183,6 +255,14 @@ int CDECL MSVCRT_isspace(int c) } /********************************************************************* + * _isupper_l (MSVCRT.@) + */ +int CDECL MSVCRT__isupper_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__UPPER, locale ); +} + +/********************************************************************* * isupper (MSVCRT.@) */ int CDECL MSVCRT_isupper(int c) @@ -191,6 +271,14 @@ int CDECL MSVCRT_isupper(int c) } /********************************************************************* + * _isxdigit_l (MSVCRT.@) + */ +int CDECL MSVCRT__isxdigit_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__HEX, locale ); +} + +/********************************************************************* * isxdigit (MSVCRT.@) */ int CDECL MSVCRT_isxdigit(int c) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 23ba26d..15de47a 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -530,16 +530,16 @@ @ stub -arch=i386 _inpw(long) @ cdecl _invalid_parameter(wstr wstr wstr long long) MSVCRT__invalid_parameter @ extern _iob MSVCRT__iob -# stub _isalnum_l(long ptr) -# stub _isalpha_l(long ptr) +@ cdecl _isalnum_l(long ptr) MSVCRT__isalnum_l +@ cdecl _isalpha_l(long ptr) MSVCRT__isalpha_l @ cdecl _isatty(long) -# stub _iscntrl_l(long ptr) +@ cdecl _iscntrl_l(long ptr) MSVCRT__iscntrl_l @ cdecl _isctype(long long) @ cdecl _isctype_l(long long ptr) -# stub _isdigit_l(long ptr) -# stub _isgraph_l(long ptr) -# stub _isleadbyte_l(long ptr) -# stub _islower_l(long ptr) +@ cdecl _isdigit_l(long ptr) MSVCRT__isdigit_l +@ cdecl _isgraph_l(long ptr) MSVCRT__isgraph_l +@ cdecl _isleadbyte_l(long ptr) MSVCRT__isleadbyte_l +@ cdecl _islower_l(long ptr) MSVCRT__islower_l @ stub _ismbbalnum(long) # stub _ismbbalnum_l(long ptr) @ stub _ismbbalpha(long) @@ -600,9 +600,9 @@ # stub _ismbstrail_l(long ptr) @ cdecl _isnan( double ) # stub -arch=win64 _isnanf(float) -# stub _isprint_l(long ptr) -# stub _isspace_l(long ptr) -# stub _isupper_l(long ptr) +@ cdecl _isprint_l(long ptr) MSVCRT__isprint_l +@ cdecl _isspace_l(long ptr) MSVCRT__isspace_l +@ cdecl _isupper_l(long ptr) MSVCRT__isupper_l # stub _iswalnum_l(long ptr) @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l # stub _iswcntrl_l(long ptr) @@ -615,7 +615,7 @@ # stub _iswspace_l(long ptr) # stub _iswupper_l(long ptr) # stub _iswxdigit_l(long ptr) -# stub _isxdigit_l(long ptr) +@ cdecl _isxdigit_l(long ptr) MSVCRT__isxdigit_l @ cdecl _itoa(long ptr long) ntdll._itoa @ cdecl _itoa_s(long ptr long long) @ cdecl _itow(long ptr long) ntdll._itow
1
0
0
0
Piotr Caban : msvcrt: Added _isctype_l implementation.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: e3ec37e848730b2803fff8f1193c44d74b43bacd URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e3ec37e848730b2803fff8f11…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu May 12 11:37:37 2011 +0200 msvcrt: Added _isctype_l implementation. --- dlls/msvcrt/ctype.c | 15 ++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/dlls/msvcrt/ctype.c b/dlls/msvcrt/ctype.c index ba9d9ba..9d5ed1e 100644 --- a/dlls/msvcrt/ctype.c +++ b/dlls/msvcrt/ctype.c @@ -66,11 +66,12 @@ WORD** CDECL MSVCRT___pctype_func(void) } /********************************************************************* - * _isctype (MSVCRT.@) + * _isctype_l (MSVCRT.@) */ -int CDECL _isctype(int c, int type) +int CDECL _isctype_l(int c, int type, MSVCRT__locale_t locale) { - MSVCRT__locale_t locale = get_locale(); + if(!locale) + locale = get_locale(); if (c >= -1 && c <= 255) return locale->locinfo->pctype[c] & type; @@ -94,6 +95,14 @@ int CDECL _isctype(int c, int type) } /********************************************************************* + * _isctype (MSVCRT.@) + */ +int CDECL _isctype(int c, int type) +{ + return _isctype_l(c, type, NULL); +} + +/********************************************************************* * isalnum (MSVCRT.@) */ int CDECL MSVCRT_isalnum(int c) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 4e2417b..23ba26d 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -535,7 +535,7 @@ @ cdecl _isatty(long) # stub _iscntrl_l(long ptr) @ cdecl _isctype(long long) -# stub _isctype_l(long long ptr) +@ cdecl _isctype_l(long long ptr) # stub _isdigit_l(long ptr) # stub _isgraph_l(long ptr) # stub _isleadbyte_l(long ptr)
1
0
0
0
Piotr Caban : msvcrt: Added _towupper_l and _towlower_l implementation.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: 69ea5768a680590bba0b768d7608c72742ccdc51 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=69ea5768a680590bba0b768d7…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu May 12 11:36:56 2011 +0200 msvcrt: Added _towupper_l and _towlower_l implementation. --- dlls/msvcrt/msvcrt.spec | 4 ++-- dlls/msvcrt/wcs.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 7a05dd9..4e2417b 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -980,8 +980,8 @@ # stub _tolower_l(long ptr) @ cdecl _toupper(long) MSVCRT__toupper # stub _toupper_l(long ptr) -# stub _towlower_l(long ptr) -# stub _towupper_l(long ptr) +@ cdecl _towlower_l(long ptr) MSVCRT__towlower_l +@ cdecl _towupper_l(long ptr) MSVCRT__towupper_l @ extern _tzname MSVCRT__tzname @ cdecl _tzset() MSVCRT__tzset @ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index af6e7dc..623ffbc 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -1445,3 +1445,19 @@ MSVCRT_size_t CDECL MSVCRT_wcsnlen(const MSVCRT_wchar_t *s, MSVCRT_size_t maxlen if (!s[i]) break; return i; } + +/********************************************************************* + * _towupper_l (MSVCRT.@) + */ +int CDECL MSVCRT__towupper_l(MSVCRT_wint_t c, MSVCRT__locale_t locale) +{ + return toupperW(c); +} + +/********************************************************************* + * _towlower_l (MSVCRT.@) + */ +int CDECL MSVCRT__towlower_l(MSVCRT_wint_t c, MSVCRT__locale_t locale) +{ + return tolowerW(c); +}
1
0
0
0
Nikolay Sivov : winecfg: Update Russian dialog strings.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: c81d6e21a3fe48360cb95cd87ac664f10b04cebe URL:
http://source.winehq.org/git/wine.git/?a=commit;h=c81d6e21a3fe48360cb95cd87…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Thu May 12 12:34:35 2011 +0400 winecfg: Update Russian dialog strings. --- programs/winecfg/Ru.rc | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc index 1cdc71a..89ae32d 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc @@ -69,10 +69,10 @@ STYLE WS_CHILD | WS_DISABLED FONT 8, "MS Shell Dlg" BEGIN GROUPBOX " Настройки окна ",IDC_STATIC,8,4,244,84 - CONTROL "Automatically capture the &mouse in full-screen windows",IDC_FULLSCREEN_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8 + CONTROL "Автоматически &удерживать мышь в полноэкранных окнах",IDC_FULLSCREEN_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8 CONTROL "Разрешить менеджеру окон &декорировать окна",IDC_ENABLE_DECORATED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,230,8 - CONTROL "Разрешить менеджеру окон управлять окнами Wine",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8 - CONTROL "Эмулировать виртуальный рабочий стол",IDC_ENABLE_DESKTOP,"Button", + CONTROL "Разрешить менеджеру окон управлять &окнами Wine",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8 + CONTROL "&Эмулировать виртуальный рабочий стол",IDC_ENABLE_DESKTOP,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,15,56,230,8 LTEXT "Размер рабочего стола:",IDC_DESKTOP_SIZE,15,70,84,8,WS_DISABLED LTEXT "X",IDC_DESKTOP_BY,149,70,8,8,WS_DISABLED
1
0
0
0
Nikolay Sivov : comctl32/tests: Make functions from test macros.
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: 97314eeebd7d1e444d37f502501f33b6eb88cf62 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=97314eeebd7d1e444d37f5025…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Thu May 12 11:59:53 2011 +0400 comctl32/tests: Make functions from test macros. --- dlls/comctl32/tests/tab.c | 119 +++++++++++++++++++++++++-------------------- 1 files changed, 67 insertions(+), 52 deletions(-) diff --git a/dlls/comctl32/tests/tab.c b/dlls/comctl32/tests/tab.c index bf705a5..8b64764 100644 --- a/dlls/comctl32/tests/tab.c +++ b/dlls/comctl32/tests/tab.c @@ -41,25 +41,40 @@ #define TabWidthPadded(padd_x, num) (DEFAULT_MIN_TAB_WIDTH - (TAB_PADDING_X - (padd_x)) * num) -#define TabCheckSetSize(hwnd, SetWidth, SetHeight, ExpWidth, ExpHeight, Msg)\ - SendMessage (hwnd, TCM_SETITEMSIZE, 0,\ - (LPARAM) MAKELPARAM((SetWidth >= 0) ? SetWidth:0, (SetHeight >= 0) ? SetHeight:0));\ - if (winetest_interactive) RedrawWindow (hwnd, NULL, 0, RDW_UPDATENOW);\ - CheckSize(hwnd, ExpWidth, ExpHeight, Msg); - -#define CheckSize(hwnd,width,height,msg)\ - SendMessage (hwnd, TCM_GETITEMRECT, 0, (LPARAM) &rTab);\ - if ((width >= 0) && (height < 0))\ - ok (width == rTab.right - rTab.left, "%s: Expected width [%d] got [%d]\n",\ - msg, (int)width, rTab.right - rTab.left);\ - else if ((height >= 0) && (width < 0))\ - ok (height == rTab.bottom - rTab.top, "%s: Expected height [%d] got [%d]\n",\ - msg, (int)height, rTab.bottom - rTab.top);\ - else\ - ok ((width == rTab.right - rTab.left) &&\ - (height == rTab.bottom - rTab.top ),\ - "%s: Expected [%d,%d] got [%d,%d]\n", msg, (int)width, (int)height,\ - rTab.right - rTab.left, rTab.bottom - rTab.top); +static void CheckSize(HWND hwnd, INT width, INT height, const char *msg, int line) +{ + RECT r; + + SendMessage(hwnd, TCM_GETITEMRECT, 0, (LPARAM)&r); + if (width >= 0 && height < 0) + { + ok_(__FILE__,line) (width == r.right - r.left, "%s: Expected width [%d] got [%d]\n",\ + msg, width, r.right - r.left); + } + else if (height >= 0 && width < 0) + { + ok_(__FILE__,line) (height == r.bottom - r.top, "%s: Expected height [%d] got [%d]\n",\ + msg, height, r.bottom - r.top); + } + else + ok_(__FILE__,line) ((width == r.right - r.left) && (height == r.bottom - r.top ), + "%s: Expected [%d,%d] got [%d,%d]\n", msg, width, height, + r.right - r.left, r.bottom - r.top); +} + +#define CHECKSIZE(hwnd,width,height,msg) CheckSize(hwnd,width,height,msg,__LINE__) + +static void TabCheckSetSize(HWND hwnd, INT set_width, INT set_height, INT exp_width, + INT exp_height, const char *msg, int line) +{ + SendMessage(hwnd, TCM_SETITEMSIZE, 0, + (LPARAM) MAKELPARAM((set_width >= 0) ? set_width : 0, (set_height >= 0) ? set_height : 0)); + if (winetest_interactive) RedrawWindow (hwnd, NULL, 0, RDW_UPDATENOW); + CheckSize(hwnd, exp_width, exp_height, msg, line); +} + +#define TABCHECKSETSIZE(hwnd,set_width,set_height,exp_width,exp_height,msg) \ + TabCheckSetSize(hwnd,set_width,set_height,exp_width,exp_height,msg,__LINE__) static HFONT hFont; static DRAWITEMSTRUCT g_drawitem; @@ -523,16 +538,16 @@ static void test_tab(INT nMinTabWidth) ReleaseDC(hwTab, hdc); trace (" TCS_FIXEDWIDTH tabs no icon...\n"); - CheckSize(hwTab, dpi, -1, "default width"); - TabCheckSetSize(hwTab, 50, 20, 50, 20, "set size"); - TabCheckSetSize(hwTab, 0, 1, 0, 1, "min size"); + CHECKSIZE(hwTab, dpi, -1, "default width"); + TABCHECKSETSIZE(hwTab, 50, 20, 50, 20, "set size"); + TABCHECKSETSIZE(hwTab, 0, 1, 0, 1, "min size"); SendMessage(hwTab, TCM_SETIMAGELIST, 0, (LPARAM)himl); trace (" TCS_FIXEDWIDTH tabs with icon...\n"); - TabCheckSetSize(hwTab, 50, 30, 50, 30, "set size > icon"); - TabCheckSetSize(hwTab, 20, 20, 25, 20, "set size < icon"); - TabCheckSetSize(hwTab, 0, 1, 25, 1, "min size"); + TABCHECKSETSIZE(hwTab, 50, 30, 50, 30, "set size > icon"); + TABCHECKSETSIZE(hwTab, 20, 20, 25, 20, "set size < icon"); + TABCHECKSETSIZE(hwTab, 0, 1, 25, 1, "min size"); DestroyWindow (hwTab); @@ -543,19 +558,19 @@ static void test_tab(INT nMinTabWidth) dpi = GetDeviceCaps(hdc, LOGPIXELSX); ReleaseDC(hwTab, hdc); trace (" TCS_FIXEDWIDTH buttons no icon...\n"); - CheckSize(hwTab, dpi, -1, "default width"); - TabCheckSetSize(hwTab, 20, 20, 20, 20, "set size 1"); - TabCheckSetSize(hwTab, 10, 50, 10, 50, "set size 2"); - TabCheckSetSize(hwTab, 0, 1, 0, 1, "min size"); + CHECKSIZE(hwTab, dpi, -1, "default width"); + TABCHECKSETSIZE(hwTab, 20, 20, 20, 20, "set size 1"); + TABCHECKSETSIZE(hwTab, 10, 50, 10, 50, "set size 2"); + TABCHECKSETSIZE(hwTab, 0, 1, 0, 1, "min size"); SendMessage(hwTab, TCM_SETIMAGELIST, 0, (LPARAM)himl); trace (" TCS_FIXEDWIDTH buttons with icon...\n"); - TabCheckSetSize(hwTab, 50, 30, 50, 30, "set size > icon"); - TabCheckSetSize(hwTab, 20, 20, 25, 20, "set size < icon"); - TabCheckSetSize(hwTab, 0, 1, 25, 1, "min size"); + TABCHECKSETSIZE(hwTab, 50, 30, 50, 30, "set size > icon"); + TABCHECKSETSIZE(hwTab, 20, 20, 25, 20, "set size < icon"); + TABCHECKSETSIZE(hwTab, 0, 1, 25, 1, "min size"); SendMessage(hwTab, TCM_SETPADDING, 0, MAKELPARAM(4,4)); - TabCheckSetSize(hwTab, 0, 1, 25, 1, "set padding, min size"); + TABCHECKSETSIZE(hwTab, 0, 1, 25, 1, "set padding, min size"); DestroyWindow (hwTab); @@ -566,19 +581,19 @@ static void test_tab(INT nMinTabWidth) dpi = GetDeviceCaps(hdc, LOGPIXELSX); ReleaseDC(hwTab, hdc); trace (" TCS_FIXEDWIDTH | TCS_BOTTOM tabs...\n"); - CheckSize(hwTab, dpi, -1, "no icon, default width"); + CHECKSIZE(hwTab, dpi, -1, "no icon, default width"); - TabCheckSetSize(hwTab, 20, 20, 20, 20, "no icon, set size 1"); - TabCheckSetSize(hwTab, 10, 50, 10, 50, "no icon, set size 2"); - TabCheckSetSize(hwTab, 0, 1, 0, 1, "no icon, min size"); + TABCHECKSETSIZE(hwTab, 20, 20, 20, 20, "no icon, set size 1"); + TABCHECKSETSIZE(hwTab, 10, 50, 10, 50, "no icon, set size 2"); + TABCHECKSETSIZE(hwTab, 0, 1, 0, 1, "no icon, min size"); SendMessage(hwTab, TCM_SETIMAGELIST, 0, (LPARAM)himl); - TabCheckSetSize(hwTab, 50, 30, 50, 30, "with icon, set size > icon"); - TabCheckSetSize(hwTab, 20, 20, 25, 20, "with icon, set size < icon"); - TabCheckSetSize(hwTab, 0, 1, 25, 1, "with icon, min size"); + TABCHECKSETSIZE(hwTab, 50, 30, 50, 30, "with icon, set size > icon"); + TABCHECKSETSIZE(hwTab, 20, 20, 25, 20, "with icon, set size < icon"); + TABCHECKSETSIZE(hwTab, 0, 1, 25, 1, "with icon, min size"); SendMessage(hwTab, TCM_SETPADDING, 0, MAKELPARAM(4,4)); - TabCheckSetSize(hwTab, 0, 1, 25, 1, "set padding, min size"); + TABCHECKSETSIZE(hwTab, 0, 1, 25, 1, "set padding, min size"); DestroyWindow (hwTab); @@ -598,15 +613,15 @@ static void test_tab(INT nMinTabWidth) SendMessage(hwTab, TCM_SETIMAGELIST, 0, 0); SendMessage(hwTab, TCM_SETPADDING, 0, MAKELPARAM(i,i)); - TabCheckSetSize(hwTab, 50, 20, max(size.cx + i*2, nTabWidth), 20, "no icon, set size"); - TabCheckSetSize(hwTab, 0, 1, max(size.cx + i*2, nTabWidth), 1, "no icon, min size"); + TABCHECKSETSIZE(hwTab, 50, 20, max(size.cx + i*2, nTabWidth), 20, "no icon, set size"); + TABCHECKSETSIZE(hwTab, 0, 1, max(size.cx + i*2, nTabWidth), 1, "no icon, min size"); SendMessage(hwTab, TCM_SETIMAGELIST, 0, (LPARAM)himl); nTabWidth = (nMinTabWidth < 0) ? TabWidthPadded(i, 3) : nMinTabWidth; - TabCheckSetSize(hwTab, 50, 30, max(size.cx + 21 + i*3, nTabWidth), 30, "with icon, set size > icon"); - TabCheckSetSize(hwTab, 20, 20, max(size.cx + 21 + i*3, nTabWidth), 20, "with icon, set size < icon"); - TabCheckSetSize(hwTab, 0, 1, max(size.cx + 21 + i*3, nTabWidth), 1, "with icon, min size"); + TABCHECKSETSIZE(hwTab, 50, 30, max(size.cx + 21 + i*3, nTabWidth), 30, "with icon, set size > icon"); + TABCHECKSETSIZE(hwTab, 20, 20, max(size.cx + 21 + i*3, nTabWidth), 20, "with icon, set size < icon"); + TABCHECKSETSIZE(hwTab, 0, 1, max(size.cx + 21 + i*3, nTabWidth), 1, "with icon, min size"); } DestroyWindow (hwTab); @@ -626,16 +641,16 @@ static void test_tab(INT nMinTabWidth) SendMessage(hwTab, TCM_SETIMAGELIST, 0, 0); SendMessage(hwTab, TCM_SETPADDING, 0, MAKELPARAM(i,i)); - TabCheckSetSize(hwTab, 50, 20, nTabWidth, 20, "no icon, set size"); - TabCheckSetSize(hwTab, 0, 1, nTabWidth, 1, "no icon, min size"); + TABCHECKSETSIZE(hwTab, 50, 20, nTabWidth, 20, "no icon, set size"); + TABCHECKSETSIZE(hwTab, 0, 1, nTabWidth, 1, "no icon, min size"); SendMessage(hwTab, TCM_SETIMAGELIST, 0, (LPARAM)himl); if (i > 1 && nMinTabWidth > 0 && nMinTabWidth < DEFAULT_MIN_TAB_WIDTH) nTabWidth += EXTRA_ICON_PADDING *(i-1); - TabCheckSetSize(hwTab, 50, 30, nTabWidth, 30, "with icon, set size > icon"); - TabCheckSetSize(hwTab, 20, 20, nTabWidth, 20, "with icon, set size < icon"); - TabCheckSetSize(hwTab, 0, 1, nTabWidth, 1, "with icon, min size"); + TABCHECKSETSIZE(hwTab, 50, 30, nTabWidth, 30, "with icon, set size > icon"); + TABCHECKSETSIZE(hwTab, 20, 20, nTabWidth, 20, "with icon, set size < icon"); + TABCHECKSETSIZE(hwTab, 0, 1, nTabWidth, 1, "with icon, min size"); } DestroyWindow (hwTab); @@ -1034,7 +1049,7 @@ static void test_misc(void) hdc = GetDC(hTab); dpi = GetDeviceCaps(hdc, LOGPIXELSX); ReleaseDC(hTab, hdc); - CheckSize(hTab, dpi, -1 , "Default Width"); + CHECKSIZE(hTab, dpi, -1 , "Default Width"); ok_sequence(sequences, TAB_SEQ_INDEX, get_item_rect_seq, "Get itemRect test sequence", FALSE); ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Get itemRect test parent sequence", FALSE);
1
0
0
0
Jörg Höhle : winmm: Fix 8KB leak when mmioOpen fails (Valgrind).
by Alexandre Julliard
12 May '11
12 May '11
Module: wine Branch: master Commit: 7df286c13604e1add2f6da574921a8c5bc1ad94e URL:
http://source.winehq.org/git/wine.git/?a=commit;h=7df286c13604e1add2f6da574…
Author: Jörg Höhle <hoehle(a)users.sourceforge.net> Date: Wed May 11 21:58:43 2011 +0200 winmm: Fix 8KB leak when mmioOpen fails (Valgrind). --- dlls/winmm/mmio.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c index 6ac295e..aff150a 100644 --- a/dlls/winmm/mmio.c +++ b/dlls/winmm/mmio.c @@ -679,6 +679,8 @@ static HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo, DWORD dwOpenFlags, if (refmminfo->wErrorRet == 0) return wm->info.hmmio; error1: + if (wm->info.dwFlags & MMIO_ALLOCBUF) + HeapFree(GetProcessHeap(), 0, wm->info.pchBuffer); if (wm->ioProc) wm->ioProc->count--; error2: MMIO_Destroy(wm);
1
0
0
0
← Newer
1
...
60
61
62
63
64
65
66
...
95
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
Results per page:
10
25
50
100
200