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
March 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
910 discussions
Start a n
N
ew thread
Hans Leidekker : wbemprox: WQL string comparisons are case insensitive.
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: a58b3b63fad59645a5b04a16259718660ce2af80 URL:
https://gitlab.winehq.org/wine/wine/-/commit/a58b3b63fad59645a5b04a16259718…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Tue Oct 25 11:21:28 2022 +0200 wbemprox: WQL string comparisons are case insensitive. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=53832
(cherry picked from commit 7bfa058a0b89e6a4f24dd43db9a0ea5c1a304b71) Conflicts: dlls/wbemprox/tests/query.c Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/wbemprox/query.c | 12 ++++++------ dlls/wbemprox/tests/query.c | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/dlls/wbemprox/query.c b/dlls/wbemprox/query.c index 63007565766..92e78672914 100644 --- a/dlls/wbemprox/query.c +++ b/dlls/wbemprox/query.c @@ -118,22 +118,22 @@ static HRESULT eval_strcmp( UINT op, const WCHAR *lstr, const WCHAR *rstr, LONGL switch (op) { case OP_EQ: - *val = !wcscmp( lstr, rstr ); + *val = !wcsicmp( lstr, rstr ); break; case OP_GT: - *val = wcscmp( lstr, rstr ) > 0; + *val = wcsicmp( lstr, rstr ) > 0; break; case OP_LT: - *val = wcscmp( lstr, rstr ) < 0; + *val = wcsicmp( lstr, rstr ) < 0; break; case OP_LE: - *val = wcscmp( lstr, rstr ) <= 0; + *val = wcsicmp( lstr, rstr ) <= 0; break; case OP_GE: - *val = wcscmp( lstr, rstr ) >= 0; + *val = wcsicmp( lstr, rstr ) >= 0; break; case OP_NE: - *val = wcscmp( lstr, rstr ); + *val = wcsicmp( lstr, rstr ); break; case OP_LIKE: *val = eval_like( lstr, rstr ); diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c index 583ae578efa..ea2abad73a5 100644 --- a/dlls/wbemprox/tests/query.c +++ b/dlls/wbemprox/tests/query.c @@ -2095,6 +2095,28 @@ static void test_Win32_LogicalDisk( IWbemServices *services ) IWbemClassObject_Release( obj ); } + IEnumWbemClassObject_Release( result ); + SysFreeString( query ); + + query = SysAllocString( L"SELECT * FROM Win32_LogicalDisk WHERE DeviceID > 'b:' AND DeviceID < 'd:'" ); + hr = IWbemServices_ExecQuery( services, wql, query, 0, NULL, &result ); + ok( hr == S_OK, "got %#x\n", hr ); + count = 0; + hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count ); + ok( hr == S_OK, "got %#x\n", hr ); + ok( count == 1, "got %u\n", count ); + IWbemClassObject_Release( obj ); + SysFreeString( query ); + + query = SysAllocString( L"SELECT * FROM Win32_LogicalDisk WHERE DeviceID = 'C:'" ); + hr = IWbemServices_ExecQuery( services, wql, query, 0, NULL, &result ); + ok( hr == S_OK, "got %#x\n", hr ); + count = 0; + hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count ); + ok( hr == S_OK, "got %#x\n", hr ); + ok( count == 1, "got %u\n", count ); + IWbemClassObject_Release( obj ); + SysFreeString( query ); IEnumWbemClassObject_Release( result ); SysFreeString( query ); SysFreeString( wql );
1
0
0
0
Mihail Ivanchev : include: Add prototype for ReOpenFile().
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: 7ef77024d20d92a2204ae6ccdbcf8133ca52b7c5 URL:
https://gitlab.winehq.org/wine/wine/-/commit/7ef77024d20d92a2204ae6ccdbcf81…
Author: Mihail Ivanchev <contact(a)ivanchev.net> Date: Sat Oct 22 08:18:57 2022 +0000 include: Add prototype for ReOpenFile(). Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=53821
(cherry picked from commit 10e7c824e0b2599f4707d30be2edfc0eb83cfba6) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- include/winbase.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/winbase.h b/include/winbase.h index 0a0bfde9d10..11aef4c7c6b 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -2575,6 +2575,7 @@ WINBASEAPI BOOL WINAPI QueryUmsThreadInformation(PUMS_CONTEXT,UMS_THREAD_ WINBASEAPI DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR); WINBASEAPI BOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG); WINBASEAPI void WINAPI RaiseException(DWORD,DWORD,DWORD,const ULONG_PTR *); +WINBASEAPI HANDLE WINAPI ReOpenFile(HANDLE,DWORD,DWORD,DWORD); WINADVAPI BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *); WINADVAPI BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *); #define ReadEventLog WINELIB_NAME_AW(ReadEventLog)
1
0
0
0
Alistair Leslie-Hughes : crypt32: Only report Unimplemented decoder when not found in external dll.
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: 2d871a6b1d8532784b881df4fa0b08dc67c80601 URL:
https://gitlab.winehq.org/wine/wine/-/commit/2d871a6b1d8532784b881df4fa0b08…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Sat Aug 28 12:22:30 2021 +1000 crypt32: Only report Unimplemented decoder when not found in external dll. Some applications spam this fixme. fixme:cryptasn:CRYPT_GetBuiltinDecoder Unsupported decoder for lpszStructType 1.3.6.1.4.1.311.2.1.4 This OID is supported in wintrust.dll which crypt32 uses, so this console fixme doesn't make sense. The fixme will only appear if no support for the requested decoder is available. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=53800
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> (cherry picked from commit 42bd5ea4c4c4c42af872b5a6a12e6109fc3e2ddf) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/crypt32/decode.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/crypt32/decode.c b/dlls/crypt32/decode.c index d4a13a55a1b..9f6a8ea9f6c 100644 --- a/dlls/crypt32/decode.c +++ b/dlls/crypt32/decode.c @@ -6296,7 +6296,7 @@ static CryptDecodeObjectExFunc CRYPT_GetBuiltinDecoder(DWORD dwCertEncodingType, decodeFunc = CRYPT_AsnDecodeRsaPubKey_Bcrypt; break; default: - FIXME("Unimplemented decoder for lpszStructType OID %d\n", LOWORD(lpszStructType)); + break; } } else if (!strcmp(lpszStructType, szOID_CERT_EXTENSIONS)) @@ -6353,8 +6353,6 @@ static CryptDecodeObjectExFunc CRYPT_GetBuiltinDecoder(DWORD dwCertEncodingType, decodeFunc = CRYPT_AsnDecodeCTL; else if (!strcmp(lpszStructType, szOID_ECC_PUBLIC_KEY)) decodeFunc = CRYPT_AsnDecodeObjectIdentifier; - else - FIXME("Unsupported decoder for lpszStructType %s\n", lpszStructType); return decodeFunc; } @@ -6433,6 +6431,13 @@ BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, debugstr_a(lpszStructType)); decodeFunc = CRYPT_LoadDecoderExFunc(dwCertEncodingType, lpszStructType, &hFunc); + if (!decodeFunc) + { + if (IS_INTOID(lpszStructType)) + FIXME("Unimplemented decoder for lpszStructType OID %d\n", LOWORD(lpszStructType)); + else + FIXME("Unsupported decoder for lpszStructType %s\n", lpszStructType); + } } if (decodeFunc) ret = decodeFunc(dwCertEncodingType, lpszStructType, pbEncoded,
1
0
0
0
Alexandre Julliard : shell32: Don't return an uninitialized pointer on error in enum_trash_items().
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: ba4a8793889872c616f9989d8a70be563e998788 URL:
https://gitlab.winehq.org/wine/wine/-/commit/ba4a8793889872c616f9989d8a70be…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Fri Sep 9 16:18:00 2022 +0200 shell32: Don't return an uninitialized pointer on error in enum_trash_items(). (cherry picked from commit 33c56be5ae1cf757c1aeda0e075d63cc924f683b) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/shell32/recyclebin.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/shell32/recyclebin.c b/dlls/shell32/recyclebin.c index 8cfc1042fe7..ffe12823e7a 100644 --- a/dlls/shell32/recyclebin.c +++ b/dlls/shell32/recyclebin.c @@ -392,6 +392,7 @@ static HRESULT enum_trash_items( LPITEMIDLIST **pidls, int *ret_count ) InitOnceExecuteOnce( &trash_dir_once, init_trash_dirs, NULL, NULL ); if (!trash_dir) return E_FAIL; + *pidls = NULL; file = heap_alloc( (lstrlenW(trash_dir) + lstrlenW(L"\\*") + 1) * sizeof(WCHAR) ); lstrcpyW( file, trash_dir ); lstrcatW( file, L"\\*" );
1
0
0
0
Dmitry Timoshkov : sechost: Support decimal or octal access rights in ConvertStringSecurityDescriptorToSecurityDescriptor.
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: 4551a6a3c78ba0f2718d1ad6fffbb027f8cde255 URL:
https://gitlab.winehq.org/wine/wine/-/commit/4551a6a3c78ba0f2718d1ad6fffbb0…
Author: Dmitry Timoshkov <dmitry(a)baikal.ru> Date: Wed Jul 6 15:30:46 2022 +0300 sechost: Support decimal or octal access rights in ConvertStringSecurityDescriptorToSecurityDescriptor. Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit f2583de38d4a9370137f578f8c239041ae080ac1) Conflicts: dlls/advapi32/tests/security.c Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/advapi32/tests/security.c | 23 ++++++++++++++++++++--- dlls/sechost/security.c | 4 ++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c index c73e28a98e6..f783f46996d 100644 --- a/dlls/advapi32/tests/security.c +++ b/dlls/advapi32/tests/security.c @@ -4216,6 +4216,7 @@ static void test_ConvertStringSecurityDescriptor(void) BOOL ret; DWORD GLE; DWORD altGLE; + DWORD ace_Mask; } cssd[] = { { "D:(A;;GA;;;WD)", 0xdeadbeef, FALSE, ERROR_UNKNOWN_REVISION }, @@ -4236,9 +4237,12 @@ static void test_ConvertStringSecurityDescriptor(void) { "D:(D;;GA;;; WD)", SDDL_REVISION_1, TRUE }, { "D:(D;;GA;;;WD )", SDDL_REVISION_1, TRUE }, /* test ACE string access rights */ - { "D:(A;;GA;;;WD)", SDDL_REVISION_1, TRUE }, - { "D:(A;;GRGWGX;;;WD)", SDDL_REVISION_1, TRUE }, - { "D:(A;;RCSDWDWO;;;WD)", SDDL_REVISION_1, TRUE }, + { "D:(A;;GA;;;WD)", SDDL_REVISION_1, TRUE, 0, 0, GENERIC_ALL }, + { "D:(A;;1;;;WD)", SDDL_REVISION_1, TRUE, 0, 0, 1 }, + { "D:(A;;020000000000;;;WD)", SDDL_REVISION_1, TRUE, 0, 0, GENERIC_READ }, + { "D:(A;;0X40000000;;;WD)", SDDL_REVISION_1, TRUE, 0, 0, GENERIC_WRITE }, + { "D:(A;;GRGWGX;;;WD)", SDDL_REVISION_1, TRUE, 0, 0, GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE }, + { "D:(A;;RCSDWDWO;;;WD)", SDDL_REVISION_1, TRUE, 0, 0, READ_CONTROL | DELETE | WRITE_DAC | WRITE_OWNER }, { "D:(A;;RPWPCCDCLCSWLODTCR;;;WD)", SDDL_REVISION_1, TRUE }, { "D:(A;;FAFRFWFX;;;WD)", SDDL_REVISION_1, TRUE }, { "D:(A;;KAKRKWKX;;;WD)", SDDL_REVISION_1, TRUE }, @@ -4272,7 +4276,20 @@ static void test_ConvertStringSecurityDescriptor(void) (cssd[i].altGLE && GLE == cssd[i].altGLE), "(%02u) Unexpected last error %d\n", i, GLE); if (ret) + { + if (cssd[i].ace_Mask) + { + ACCESS_ALLOWED_ACE *ace; + + acl = (ACL *)((char *)pSD + sizeof(SECURITY_DESCRIPTOR_RELATIVE)); + ok(acl->AclRevision == ACL_REVISION, "(%02u) Got %u\n", i, acl->AclRevision); + + ace = (ACCESS_ALLOWED_ACE *)(acl + 1); + ok(ace->Mask == cssd[i].ace_Mask, "(%02u) Expected %08x, got %08x\n", + i, cssd[i].ace_Mask, ace->Mask); + } LocalFree(pSD); + } } /* test behaviour with NULL parameters */ diff --git a/dlls/sechost/security.c b/dlls/sechost/security.c index 4aee8c723d2..a27a4f001b7 100644 --- a/dlls/sechost/security.c +++ b/dlls/sechost/security.c @@ -900,8 +900,8 @@ static DWORD parse_ace_right( const WCHAR **string_ptr ) const WCHAR *string = *string_ptr; unsigned int i; - if (string[0] == '0' && string[1] == 'x') - return wcstoul( string, (WCHAR **)string_ptr, 16 ); + if (iswdigit( string[0] )) + return wcstoul( string, (WCHAR **)string_ptr, 0 ); for (i = 0; i < ARRAY_SIZE(ace_rights); ++i) {
1
0
0
0
Zhiyi Zhang : comctl32/edit: Don't repaint immediately when getting focus.
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: 9b7d51640bc249f84e662c949249dea56010f13f URL:
https://gitlab.winehq.org/wine/wine/-/commit/9b7d51640bc249f84e662c949249de…
Author: Zhiyi Zhang <zzhang(a)codeweavers.com> Date: Fri Aug 12 11:32:54 2022 +0800 comctl32/edit: Don't repaint immediately when getting focus. Fix MSXML 3.0 installer username edit control missing part of its edge. The application has a static control overlapping an edit control. Repainting the edit control immediately will cause the edit control to be painted under the static control. Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com> (cherry picked from commit a336b43a93ce7e0db813a6dac329b8aa1b5ccd9f) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/comctl32/edit.c | 2 +- dlls/comctl32/tests/edit.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/comctl32/edit.c b/dlls/comctl32/edit.c index d9354a107b1..8b309b009ba 100644 --- a/dlls/comctl32/edit.c +++ b/dlls/comctl32/edit.c @@ -3684,7 +3684,7 @@ static void EDIT_WM_NCPaint(HWND hwnd, HRGN region) */ static void EDIT_WM_SetFocus(HTHEME theme, EDITSTATE *es) { - UINT flags = RDW_INVALIDATE | RDW_UPDATENOW; + UINT flags = RDW_INVALIDATE; es->flags |= EF_FOCUSED; diff --git a/dlls/comctl32/tests/edit.c b/dlls/comctl32/tests/edit.c index 92677d5db1b..295abe198f2 100644 --- a/dlls/comctl32/tests/edit.c +++ b/dlls/comctl32/tests/edit.c @@ -3454,7 +3454,7 @@ static void test_change_focus(void) flush_sequences(sequences, NUM_MSG_SEQUENCES); SetFocus(hwnd); ok_sequence(sequences, COMBINED_SEQ_INDEX, setfocus_sent_only_combined_seq, - "Set focus sent only", TRUE); + "Set focus sent only", FALSE); flush_sequences(sequences, NUM_MSG_SEQUENCES); SetFocus(parent_wnd);
1
0
0
0
Zhiyi Zhang : comctl32/tests: Test that changing focus for edit controls doesn't repaint immediately.
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: e83b7ecf8bf63594059942becbed0d33a95a005f URL:
https://gitlab.winehq.org/wine/wine/-/commit/e83b7ecf8bf63594059942becbed0d…
Author: Zhiyi Zhang <zzhang(a)codeweavers.com> Date: Fri Aug 12 11:32:54 2022 +0800 comctl32/tests: Test that changing focus for edit controls doesn't repaint immediately. Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com> (cherry picked from commit 2a27ffe423c3e8ccaafe3452ea76be2cfd25fdbb) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/comctl32/tests/edit.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/dlls/comctl32/tests/edit.c b/dlls/comctl32/tests/edit.c index e3b2f408047..92677d5db1b 100644 --- a/dlls/comctl32/tests/edit.c +++ b/dlls/comctl32/tests/edit.c @@ -3322,6 +3322,22 @@ static const struct message killfocus_combined_seq[] = { 0 } }; +static const struct message setfocus_sent_only_combined_seq[] = +{ + { WM_KILLFOCUS, sent|id, 0, 0, PARENT_ID }, + { WM_SETFOCUS, sent|id, 0, 0, EDIT_ID }, + { WM_COMMAND, sent|wparam|id, MAKEWPARAM(1, EN_SETFOCUS), 0, PARENT_ID }, + { 0 } +}; + +static const struct message killfocus_sent_only_combined_seq[] = +{ + { WM_KILLFOCUS, sent|id, 0, 0, EDIT_ID }, + { WM_COMMAND, sent|wparam|id, MAKEWPARAM(1, EN_KILLFOCUS), 0, PARENT_ID }, + { WM_SETFOCUS, sent|id, 0, 0, PARENT_ID }, + { 0 } +}; + static void test_cue_banner(void) { HWND hwnd_edit; @@ -3433,6 +3449,18 @@ static void test_change_focus(void) while (PeekMessageA(&msg, 0, 0, 0, PM_REMOVE)) DispatchMessageA(&msg); ok_sequence(sequences, COMBINED_SEQ_INDEX, killfocus_combined_seq, "Kill focus", TRUE); + /* Test message sequences without waiting for posted messages */ + SetFocus(parent_wnd); + flush_sequences(sequences, NUM_MSG_SEQUENCES); + SetFocus(hwnd); + ok_sequence(sequences, COMBINED_SEQ_INDEX, setfocus_sent_only_combined_seq, + "Set focus sent only", TRUE); + + flush_sequences(sequences, NUM_MSG_SEQUENCES); + SetFocus(parent_wnd); + ok_sequence(sequences, COMBINED_SEQ_INDEX, killfocus_sent_only_combined_seq, + "Kill focus sent only", TRUE); + SetCursorPos(orig_pos.x, orig_pos.y); DestroyWindow(hwnd);
1
0
0
0
Sebastian Lackner : ntdll: Improve stub of NtQueryEaFile.
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: a01442574416e582294115bf82f0fe4397151cd9 URL:
https://gitlab.winehq.org/wine/wine/-/commit/a01442574416e582294115bf82f0fe…
Author: Sebastian Lackner <sebastian(a)fds-team.de> Date: Sat Jun 6 07:03:33 2015 +0800 ntdll: Improve stub of NtQueryEaFile. Co-authored-by: Qian Hong <qhong(a)codeweavers.com> Co-authored-by: Joel Holdsworth <joel(a)airwebreathe.org.uk> Signed-off-by: Joel Holdsworth <joel(a)airwebreathe.org.uk> (cherry picked from commit 3c4cdfa7049eb3063c9b77efbbf3c90e5334bd28) Conflicts: dlls/ntdll/tests/file.c Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/ntdll/tests/file.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ dlls/ntdll/unix/file.c | 15 +++++++-- 2 files changed, 96 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c index 19ae5f2ac21..8af5f8b89e7 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c @@ -84,6 +84,7 @@ static NTSTATUS (WINAPI *pNtQueryDirectoryFile)(HANDLE,HANDLE,PIO_APC_ROUTINE,PV static NTSTATUS (WINAPI *pNtQueryVolumeInformationFile)(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS); static NTSTATUS (WINAPI *pNtQueryFullAttributesFile)(const OBJECT_ATTRIBUTES*, FILE_NETWORK_OPEN_INFORMATION*); static NTSTATUS (WINAPI *pNtFlushBuffersFile)(HANDLE, IO_STATUS_BLOCK*); +static NTSTATUS (WINAPI *pNtQueryEaFile)(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,BOOLEAN,PVOID,ULONG,PULONG,BOOLEAN); static WCHAR fooW[] = {'f','o','o',0}; @@ -5108,6 +5109,86 @@ static void test_flush_buffers_file(void) DeleteFileA(buffer); } +static void test_query_ea(void) +{ +#define EA_BUFFER_SIZE 4097 + unsigned char data[EA_BUFFER_SIZE + 8]; + unsigned char *buffer = (void *)(((DWORD_PTR)data + 7) & ~7); + DWORD buffer_len, i; + IO_STATUS_BLOCK io; + NTSTATUS status; + HANDLE handle; + + if (!(handle = create_temp_file(0))) return; + + /* test with INVALID_HANDLE_VALUE */ + U(io).Status = 0xdeadbeef; + io.Information = 0xdeadbeef; + memset(buffer, 0xcc, EA_BUFFER_SIZE); + buffer_len = EA_BUFFER_SIZE - 1; + status = pNtQueryEaFile(INVALID_HANDLE_VALUE, &io, buffer, buffer_len, TRUE, NULL, 0, NULL, FALSE); + ok(status == STATUS_OBJECT_TYPE_MISMATCH, "expected STATUS_OBJECT_TYPE_MISMATCH, got %#x\n", status); + ok(U(io).Status == 0xdeadbeef, "expected 0xdeadbeef, got %#x\n", U(io).Status); + ok(io.Information == 0xdeadbeef, "expected 0xdeadbeef, got %#Ix\n", io.Information); + ok(buffer[0] == 0xcc, "data at position 0 overwritten\n"); + + /* test with 0xdeadbeef */ + U(io).Status = 0xdeadbeef; + io.Information = 0xdeadbeef; + memset(buffer, 0xcc, EA_BUFFER_SIZE); + buffer_len = EA_BUFFER_SIZE - 1; + status = pNtQueryEaFile((void *)0xdeadbeef, &io, buffer, buffer_len, TRUE, NULL, 0, NULL, FALSE); + ok(status == STATUS_INVALID_HANDLE, "expected STATUS_INVALID_HANDLE, got %#x\n", status); + ok(U(io).Status == 0xdeadbeef, "expected 0xdeadbeef, got %#x\n", U(io).Status); + ok(io.Information == 0xdeadbeef, "expected 0xdeadbeef, got %#Ix\n", io.Information); + ok(buffer[0] == 0xcc, "data at position 0 overwritten\n"); + + /* test without buffer */ + U(io).Status = 0xdeadbeef; + io.Information = 0xdeadbeef; + status = pNtQueryEaFile(handle, &io, NULL, 0, TRUE, NULL, 0, NULL, FALSE); + ok(status == STATUS_NO_EAS_ON_FILE, "expected STATUS_NO_EAS_ON_FILE, got %#x\n", status); + ok(U(io).Status == 0xdeadbeef, "expected 0xdeadbeef, got %#x\n", U(io).Status); + ok(io.Information == 0xdeadbeef, "expected 0xdeadbeef, got %#Ix\n", io.Information); + + /* test with zero buffer */ + U(io).Status = 0xdeadbeef; + io.Information = 0xdeadbeef; + status = pNtQueryEaFile(handle, &io, buffer, 0, TRUE, NULL, 0, NULL, FALSE); + ok(status == STATUS_NO_EAS_ON_FILE, "expected STATUS_NO_EAS_ON_FILE, got %#x\n", status); + ok(U(io).Status == 0xdeadbeef, "expected 0xdeadbeef, got %#x\n", U(io).Status); + ok(io.Information == 0xdeadbeef, "expected 0xdeadbeef, got %#Ix\n", io.Information); + + /* test with very small buffer */ + U(io).Status = 0xdeadbeef; + io.Information = 0xdeadbeef; + memset(buffer, 0xcc, EA_BUFFER_SIZE); + buffer_len = 4; + status = pNtQueryEaFile(handle, &io, buffer, buffer_len, TRUE, NULL, 0, NULL, FALSE); + ok(status == STATUS_NO_EAS_ON_FILE, "expected STATUS_NO_EAS_ON_FILE, got %#x\n", status); + ok(U(io).Status == 0xdeadbeef, "expected 0xdeadbeef, got %#x\n", U(io).Status); + ok(io.Information == 0xdeadbeef, "expected 0xdeadbeef, got %#Ix\n", io.Information); + for (i = 0; i < buffer_len && !buffer[i]; i++); + ok(i == buffer_len, "expected %u bytes filled with 0x00, got %u bytes\n", buffer_len, i); + ok(buffer[i] == 0xcc, "data at position %u overwritten\n", buffer[i]); + + /* test with very big buffer */ + U(io).Status = 0xdeadbeef; + io.Information = 0xdeadbeef; + memset(buffer, 0xcc, EA_BUFFER_SIZE); + buffer_len = EA_BUFFER_SIZE - 1; + status = pNtQueryEaFile(handle, &io, buffer, buffer_len, TRUE, NULL, 0, NULL, FALSE); + ok(status == STATUS_NO_EAS_ON_FILE, "expected STATUS_NO_EAS_ON_FILE, got %#x\n", status); + ok(U(io).Status == 0xdeadbeef, "expected 0xdeadbeef, got %#x\n", U(io).Status); + ok(io.Information == 0xdeadbeef, "expected 0xdeadbeef, got %#Ix\n", io.Information); + for (i = 0; i < buffer_len && !buffer[i]; i++); + ok(i == buffer_len, "expected %u bytes filled with 0x00, got %u bytes\n", buffer_len, i); + ok(buffer[i] == 0xcc, "data at position %u overwritten\n", buffer[i]); + + CloseHandle(handle); +#undef EA_BUFFER_SIZE +} + static void test_file_readonly_access(void) { static const DWORD default_sharing = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE; @@ -5281,6 +5362,7 @@ START_TEST(file) pNtQueryVolumeInformationFile = (void *)GetProcAddress(hntdll, "NtQueryVolumeInformationFile"); pNtQueryFullAttributesFile = (void *)GetProcAddress(hntdll, "NtQueryFullAttributesFile"); pNtFlushBuffersFile = (void *)GetProcAddress(hntdll, "NtFlushBuffersFile"); + pNtQueryEaFile = (void *)GetProcAddress(hntdll, "NtQueryEaFile"); test_read_write(); test_NtCreateFile(); @@ -5310,6 +5392,7 @@ START_TEST(file) test_query_volume_information_file(); test_query_attribute_information_file(); test_ioctl(); + test_query_ea(); test_flush_buffers_file(); test_mailslot_name(); } diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index da2119b28d3..50993a21732 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -6676,9 +6676,20 @@ NTSTATUS WINAPI NtQueryEaFile( HANDLE handle, IO_STATUS_BLOCK *io, void *buffer, BOOLEAN single_entry, void *list, ULONG list_len, ULONG *index, BOOLEAN restart ) { - FIXME( "(%p,%p,%p,%d,%d,%p,%d,%p,%d) stub\n", + int fd, needs_close; + NTSTATUS status; + + FIXME( "(%p,%p,%p,%d,%d,%p,%d,%p,%d) semi-stub\n", handle, io, buffer, length, single_entry, list, list_len, index, restart ); - return STATUS_ACCESS_DENIED; + + if ((status = server_get_unix_fd( handle, 0, &fd, &needs_close, NULL, NULL ))) + return status; + + if (buffer && length) + memset( buffer, 0, length ); + + if (needs_close) close( fd ); + return STATUS_NO_EAS_ON_FILE; }
1
0
0
0
Alistair Leslie-Hughes : odbc: SQLGetInfoW allow NULL parameter InfoValue.
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: 87ce92d1a7c2e4ed3fd8d98b165cc23d9f0307d0 URL:
https://gitlab.winehq.org/wine/wine/-/commit/87ce92d1a7c2e4ed3fd8d98b165cc2…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Sat Sep 24 17:01:35 2022 +1000 odbc: SQLGetInfoW allow NULL parameter InfoValue. MSDN states, a NULL InfoValue parameter will return as the length. unixODBC which we currently use, handles this scenario. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=53714
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> (cherry picked from commit e8b7c1da6cc7de8374c02df126719844e4744bb5) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/odbc32/proxyodbc.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 573a5b280a2..d60c2518736 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -1041,12 +1041,6 @@ SQLRETURN WINAPI SQLGetInfo(SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQL TRACE("(ConnectionHandle, %p, InfoType %d, InfoValue %p, BufferLength %d, StringLength %p)\n", ConnectionHandle, InfoType, InfoValue, BufferLength, StringLength); - if (!InfoValue) - { - WARN("Unexpected NULL InfoValue address\n"); - return SQL_ERROR; - } - ret = ODBC_CALL( SQLGetInfo, ¶ms ); TRACE("Returning %d\n", ret); return ret; @@ -2246,12 +2240,6 @@ SQLRETURN WINAPI SQLGetInfoW(SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQ TRACE("(ConnectionHandle, %p, InfoType %d, InfoValue %p, BufferLength %d, StringLength %p)\n", ConnectionHandle, InfoType, InfoValue, BufferLength, StringLength); - if (!InfoValue) - { - WARN("Unexpected NULL InfoValue address\n"); - return SQL_ERROR; - } - ret = ODBC_CALL( SQLGetInfoW, ¶ms ); TRACE("Returning %d\n", ret); return ret;
1
0
0
0
David Kahurani : win32u: Use allocator mechanism to allocate DC attributes.
by Alexandre Julliard
27 Mar '23
27 Mar '23
Module: wine Branch: oldstable Commit: 9e9152843bba79a62fc4ed99f84a5b0bd5d49fef URL:
https://gitlab.winehq.org/wine/wine/-/commit/9e9152843bba79a62fc4ed99f84a5b…
Author: David Kahurani <k.kahurani(a)gmail.com> Date: Mon Sep 19 10:58:45 2022 +0300 win32u: Use allocator mechanism to allocate DC attributes. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=53645
(cherry picked from commit 903c91fc60aa7f3da127ab81e2c27844eec9bcdd) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/win32u/dc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/win32u/dc.c b/dlls/win32u/dc.c index 3aae73779e9..ca0b08fa2d3 100644 --- a/dlls/win32u/dc.c +++ b/dlls/win32u/dc.c @@ -548,7 +548,7 @@ INT WINAPI NtGdiSaveDC( HDC hdc ) release_dc_ptr( dc ); return 0; } - if (!(newdc->attr = calloc( 1, sizeof(*newdc->attr) ))) + if (!(newdc->attr = alloc_dc_attr() )) { free( newdc ); release_dc_ptr( dc );
1
0
0
0
← Newer
1
...
21
22
23
24
25
26
27
...
91
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
Results per page:
10
25
50
100
200