Compare commits

...

19 Commits
v9.8 ... v9.10

Author SHA1 Message Date
Alistair Leslie-Hughes
12bbb07ced Release v9.10 2024-06-01 12:49:13 +10:00
Alistair Leslie-Hughes
7f80904f89 Rebase against 951e0e27a743e52c75c7fedc0b1eaa9eb77e6bb6. 2024-06-01 12:28:56 +10:00
Alistair Leslie-Hughes
c084f2e153 Updated vkd3d-latest patchset 2024-05-31 07:40:33 +10:00
Alistair Leslie-Hughes
4ff6ecc4ac Rebase against b6eada5e2f9e3c86c18df118cddd20e6212f64de. 2024-05-31 07:38:53 +10:00
Alistair Leslie-Hughes
123aed11ee Updated vkd3d-latest patchset 2024-05-28 07:43:02 +10:00
Alistair Leslie-Hughes
0ebc680f8f Rebase against 5f7b9a5b837a77a85754b3b55b974e39e199f817. 2024-05-28 07:40:19 +10:00
Alistair Leslie-Hughes
68925c8f61 Rebase against d41a1f0183f5686fa3ed1b42c4de07e393833925. 2024-05-22 07:49:58 +10:00
Alistair Leslie-Hughes
791a70faf0 Updated Compiler_Warnings patchset
Hoepfully fixes the macos compile error.
2024-05-19 14:50:23 +10:00
Alistair Leslie-Hughes
3ab6d734c0 Updated vkd3d-latest patchset 2024-05-19 13:40:18 +10:00
Alistair Leslie-Hughes
31a5df0839 Updated Compiler_Warnings patchset 2024-05-19 13:39:33 +10:00
Alistair Leslie-Hughes
7adaca8b1b Updated Compiler_Warnings patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=56692
2024-05-19 09:23:01 +10:00
Alistair Leslie-Hughes
d5c85dc450 Release v9.9 2024-05-18 13:10:10 +10:00
Alistair Leslie-Hughes
a78e9f3998 Updated vkd3d-latest patchset
Squashed for release.
2024-05-18 13:09:43 +10:00
Alistair Leslie-Hughes
05c875caa5 Updated vkd3d-latest patchset 2024-05-16 11:58:46 +10:00
Alistair Leslie-Hughes
a2170c577b Rebase against 849baece66e326bce255dfea0d6fb10df888bc55. 2024-05-16 08:29:53 +10:00
Alistair Leslie-Hughes
d8260944be Rebase against 6a31983779479b42e0c2e5320a1dfa962767c28e. 2024-05-15 08:24:14 +10:00
Alistair Leslie-Hughes
f76ea979db Updated vkd3d-latest patchset 2024-05-13 09:30:19 +10:00
Alistair Leslie-Hughes
e4078c26a2 Rebase against 040b2a9c75666527af6ca79d9146095c8ed6a3cf. 2024-05-13 09:28:53 +10:00
Alistair Leslie-Hughes
b0595d928b Updated ntdll-Junction_Points patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=56647
2024-05-11 11:29:05 +10:00
19 changed files with 7507 additions and 23640 deletions

View File

@@ -1,17 +1,17 @@
From 31ad180c1c96e6e9a2e666ebbe90c3d8b78cefa4 Mon Sep 17 00:00:00 2001
From 61f65bb6024f63c6ab278ae6c9844d2d38339be8 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 16 Feb 2024 11:01:45 +1100
Subject: [PATCH] combase: Avoid implicit cast of interface pointer.
---
dlls/combase/string.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
dlls/combase/string.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/combase/string.c b/dlls/combase/string.c
index 1345870cf2f..dda6ab78141 100644
index 1345870cf2f..e60ea251011 100644
--- a/dlls/combase/string.c
+++ b/dlls/combase/string.c
@@ -55,7 +55,7 @@ static inline struct hstring_private *impl_from_HSTRING(HSTRING string)
@@ -55,12 +55,12 @@ static inline struct hstring_private *impl_from_HSTRING(HSTRING string)
static inline struct hstring_private *impl_from_HSTRING_HEADER(HSTRING_HEADER *header)
{
@@ -20,6 +20,12 @@ index 1345870cf2f..dda6ab78141 100644
}
static inline struct hstring_private *impl_from_HSTRING_BUFFER(HSTRING_BUFFER buffer)
{
- return CONTAINING_RECORD(buffer, struct hstring_private, buffer);
+ return CONTAINING_RECORD( (void*)buffer, struct hstring_private, buffer);
}
static BOOL alloc_string(UINT32 len, HSTRING *out)
--
2.43.0

View File

@@ -1,4 +1,4 @@
From ef7171d2eb01b4b8aaf8c4c608ceebd698d96e3c Mon Sep 17 00:00:00 2001
From b0fb00cbd4ec71e184cf066a4f30002d646ceebe Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 21:54:26 +0100
Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
@@ -8,11 +8,13 @@ Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
dlls/d2d1/brush.c | 8 ++++----
dlls/d2d1/d2d1_private.h | 2 +-
dlls/d2d1/dc_render_target.c | 2 +-
dlls/d2d1/device.c | 2 +-
dlls/d2d1/effect.c | 10 +++++-----
dlls/d2d1/geometry.c | 12 ++++++------
dlls/d2d1/hwnd_render_target.c | 2 +-
dlls/d2d1/state_block.c | 2 +-
dlls/d2d1/stroke.c | 2 +-
8 files changed, 16 insertions(+), 16 deletions(-)
10 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/dlls/d2d1/bitmap.c b/dlls/d2d1/bitmap.c
index e5048611519..8e031290528 100644
@@ -66,10 +68,10 @@ index 75cd72b5b9f..314123373b7 100644
static HRESULT STDMETHODCALLTYPE d2d_bitmap_brush_QueryInterface(ID2D1BitmapBrush1 *iface,
diff --git a/dlls/d2d1/d2d1_private.h b/dlls/d2d1/d2d1_private.h
index c0ac5ba9a44..e171c1c6bd8 100644
index 58507fd2c0b..c2c7026052c 100644
--- a/dlls/d2d1/d2d1_private.h
+++ b/dlls/d2d1/d2d1_private.h
@@ -697,7 +697,7 @@ struct d2d_factory
@@ -702,7 +702,7 @@ struct d2d_factory
static inline struct d2d_factory *unsafe_impl_from_ID2D1Factory(ID2D1Factory *iface)
{
@@ -91,6 +93,57 @@ index aa0c715baa5..31389b15cf8 100644
}
static HRESULT d2d_dc_render_target_present(IUnknown *outer_unknown)
diff --git a/dlls/d2d1/device.c b/dlls/d2d1/device.c
index 75da15c99a5..cf2fb530466 100644
--- a/dlls/d2d1/device.c
+++ b/dlls/d2d1/device.c
@@ -4516,7 +4516,7 @@ struct d2d_device *unsafe_impl_from_ID2D1Device(ID2D1Device1 *iface)
if (!iface)
return NULL;
assert(iface->lpVtbl == (ID2D1Device1Vtbl *)&d2d_device_vtbl);
- return CONTAINING_RECORD(iface, struct d2d_device, ID2D1Device6_iface);
+ return CONTAINING_RECORD((ID2D1Device6*)iface, struct d2d_device, ID2D1Device6_iface);
}
void d2d_device_init(struct d2d_device *device, struct d2d_factory *factory, IDXGIDevice *dxgi_device)
diff --git a/dlls/d2d1/effect.c b/dlls/d2d1/effect.c
index cebc492d895..a5e33c0ad9b 100644
--- a/dlls/d2d1/effect.c
+++ b/dlls/d2d1/effect.c
@@ -22,28 +22,28 @@ WINE_DEFAULT_DEBUG_CHANNEL(d2d);
static inline struct d2d_transform *impl_from_ID2D1OffsetTransform(ID2D1OffsetTransform *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_transform, ID2D1TransformNode_iface);
+ return CONTAINING_RECORD((ID2D1TransformNode*)iface, struct d2d_transform, ID2D1TransformNode_iface);
}
static inline struct d2d_transform *impl_from_ID2D1BlendTransform(ID2D1BlendTransform *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_transform, ID2D1TransformNode_iface);
+ return CONTAINING_RECORD((ID2D1TransformNode*)iface, struct d2d_transform, ID2D1TransformNode_iface);
}
static inline struct d2d_transform *impl_from_ID2D1BorderTransform(ID2D1BorderTransform *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_transform, ID2D1TransformNode_iface);
+ return CONTAINING_RECORD((ID2D1TransformNode*)iface, struct d2d_transform, ID2D1TransformNode_iface);
}
static inline struct d2d_transform *impl_from_ID2D1BoundsAdjustmentTransform(
ID2D1BoundsAdjustmentTransform *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_transform, ID2D1TransformNode_iface);
+ return CONTAINING_RECORD((ID2D1TransformNode*)iface, struct d2d_transform, ID2D1TransformNode_iface);
}
static inline struct d2d_vertex_buffer *impl_from_ID2D1VertexBuffer(ID2D1VertexBuffer *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_vertex_buffer, ID2D1VertexBuffer_iface);
+ return CONTAINING_RECORD((ID2D1VertexBuffer*)iface, struct d2d_vertex_buffer, ID2D1VertexBuffer_iface);
}
static HRESULT STDMETHODCALLTYPE d2d_vertex_buffer_QueryInterface(ID2D1VertexBuffer *iface,
diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c
index 3da3ad2e65b..849a2cd2762 100644
--- a/dlls/d2d1/geometry.c

View File

@@ -0,0 +1,45 @@
From 53cc7a0c9e6d6abe983d7f9d70f83f36ccc1c0a5 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sun, 19 May 2024 14:49:44 +1000
Subject: [PATCH] combase/tests: Avoid implicit cast of interface pointer.
---
dlls/combase/tests/string.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/combase/tests/string.c b/dlls/combase/tests/string.c
index ceb8ffa6e09..76863c2f4dd 100644
--- a/dlls/combase/tests/string.c
+++ b/dlls/combase/tests/string.c
@@ -509,7 +509,7 @@ static void test_hstring_struct(void)
ok(WindowsCreateString(input_string, 6, &str) == S_OK, "Failed to create string.\n");
- prv = CONTAINING_RECORD(str, struct hstring_private, header);
+ prv = CONTAINING_RECORD((void*)str, struct hstring_private, header);
ok(prv->header.flags == 0, "Expected 0 in flags field, got %#x.\n", prv->header.flags);
ok(prv->header.length == 6, "Expected 6 in length field, got %u.\n", prv->header.length);
@@ -520,7 +520,7 @@ static void test_hstring_struct(void)
ok(WindowsDuplicateString(str, &str2) == S_OK, "Failed to duplicate string.\n");
- prv2 = CONTAINING_RECORD(str2, struct hstring_private, header);
+ prv2 = CONTAINING_RECORD((void*)str2, struct hstring_private, header);
ok(prv->refcount == 2, "Expected 2 in refcount, got %lu.\n", prv->refcount);
ok(prv2->refcount == 2, "Expected 2 in refcount, got %lu.\n", prv2->refcount);
@@ -534,8 +534,8 @@ static void test_hstring_struct(void)
ok(WindowsCreateStringReference(input_string, 6, &hdr, &str) == S_OK, "Failed to create string ref.\n");
- prv = CONTAINING_RECORD(&hdr, struct hstring_private, header);
- prv2 = CONTAINING_RECORD(str, struct hstring_private, header);
+ prv = CONTAINING_RECORD((void*)&hdr, struct hstring_private, header);
+ prv2 = CONTAINING_RECORD((void*)str, struct hstring_private, header);
ok(prv == prv2, "Pointers not identical.\n");
ok(prv2->header.flags == 1, "Expected HSTRING_REFERENCE_FLAG to be set, got %#x.\n", prv2->header.flags);
--
2.43.0

View File

@@ -0,0 +1,51 @@
From 246a50e7cf09bd1d77d327e170c2d7432e0d5f5e Mon Sep 17 00:00:00 2001
From: Lorenzo Ferrillo <lorenzofersteam@live.it>
Date: Mon, 6 May 2024 23:46:44 +0200
Subject: [PATCH] Return correct status value if handle is not a reparse point
---
dlls/ntdll/unix/file.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 2bfb9b7d051..93732543ae4 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -3944,9 +3944,11 @@ NTSTATUS get_reparse_point_unix(const char *unix_name, REPARSE_DATA_BUFFER *buff
char *p;
ret = readlink( unix_name, link_path, sizeof(link_path) );
+
if (ret < 0)
{
- status = errno_to_status( errno );
+ if (errno == EINVAL) status = STATUS_NOT_A_REPARSE_POINT;
+ else status = errno_to_status( errno );
goto cleanup;
}
link_path_len = ret;
@@ -7303,10 +7305,17 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
}
case FSCTL_GET_REPARSE_POINT:
{
- REPARSE_DATA_BUFFER *buffer = (REPARSE_DATA_BUFFER *)out_buffer;
- ULONG size = out_size;
- status = get_reparse_point( handle, buffer, &size );
- io->Information = size;
+ io->Information = 0;
+ if (out_buffer){
+ REPARSE_DATA_BUFFER *buffer = (REPARSE_DATA_BUFFER *)out_buffer;
+ ULONG size = out_size;
+ status = get_reparse_point( handle, buffer, &size );
+ if (status == STATUS_SUCCESS)
+ io->Information = size;
+ }
+ else {
+ status = STATUS_INVALID_USER_BUFFER;
+ }
break;
}
case FSCTL_SET_REPARSE_POINT:
--
2.43.0

View File

@@ -1,113 +1,51 @@
From 9491dc2b72947bef59d8fb191fdc27a96bcc1c68 Mon Sep 17 00:00:00 2001
From b129fd1a7b4de4959f8929f03ece4688b3e1a6fd Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 3 Feb 2023 14:16:21 +1100
Subject: [PATCH] odbc32: Add initial tests
---
configure | 1 +
configure.ac | 1 +
dlls/odbc32/tests/Makefile.in | 5 +
dlls/odbc32/tests/connection.c | 165 +++++++++++++++++++++++++++++++++
4 files changed, 172 insertions(+)
create mode 100644 dlls/odbc32/tests/Makefile.in
create mode 100644 dlls/odbc32/tests/connection.c
dlls/odbc32/tests/odbc32.c | 52 +++++++++++++++++++++++++++++++++++++-
1 file changed, 51 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index ca6e87d4740..027f3fbe53d 100755
--- a/configure
+++ b/configure
@@ -22137,6 +22137,7 @@ wine_fn_config_makefile dlls/ntprint enable_ntprint
wine_fn_config_makefile dlls/ntprint/tests enable_tests
wine_fn_config_makefile dlls/objsel enable_objsel
wine_fn_config_makefile dlls/odbc32 enable_odbc32
+wine_fn_config_makefile dlls/odbc32/tests enable_tests
wine_fn_config_makefile dlls/odbcbcp enable_odbcbcp
wine_fn_config_makefile dlls/odbccp32 enable_odbccp32
wine_fn_config_makefile dlls/odbccp32/tests enable_tests
diff --git a/configure.ac b/configure.ac
index cba55126869..fc09d145ee7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2954,6 +2954,7 @@ WINE_CONFIG_MAKEFILE(dlls/ntprint)
WINE_CONFIG_MAKEFILE(dlls/ntprint/tests)
WINE_CONFIG_MAKEFILE(dlls/objsel)
WINE_CONFIG_MAKEFILE(dlls/odbc32)
+WINE_CONFIG_MAKEFILE(dlls/odbc32/tests)
WINE_CONFIG_MAKEFILE(dlls/odbcbcp)
WINE_CONFIG_MAKEFILE(dlls/odbccp32)
WINE_CONFIG_MAKEFILE(dlls/odbccp32/tests)
diff --git a/dlls/odbc32/tests/Makefile.in b/dlls/odbc32/tests/Makefile.in
new file mode 100644
index 00000000000..d7a300417a0
--- /dev/null
+++ b/dlls/odbc32/tests/Makefile.in
@@ -0,0 +1,5 @@
+TESTDLL = odbc32.dll
+IMPORTS = odbc32
+
+SOURCES = \
+ connection.c
diff --git a/dlls/odbc32/tests/connection.c b/dlls/odbc32/tests/connection.c
new file mode 100644
index 00000000000..b04d93c42c5
--- /dev/null
+++ b/dlls/odbc32/tests/connection.c
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2018 Alistair Leslie-Hughes
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <wine/test.h>
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "sqlext.h"
+#include "sqlucode.h"
+#include "odbcinst.h"
+
+static void test_SQLAllocEnv(void)
+{
+ SQLRETURN ret;
+ SQLHENV sqlenv, sqlenv2;
+
+ ret = SQLAllocEnv(NULL);
+ ok(ret == SQL_ERROR, "got %d\n", ret);
+
+ ret = SQLAllocEnv(&sqlenv);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+
+ ret = SQLAllocEnv(&sqlenv2);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+ ok(sqlenv != sqlenv2, "got %d\n", ret);
+
+ ret = SQLFreeEnv(sqlenv2);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+
+ ret = SQLFreeEnv(sqlenv);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+
+ ret = SQLFreeEnv(sqlenv);
+ todo_wine ok(ret == SQL_INVALID_HANDLE, "got %d\n", ret);
+
+ ret = SQLFreeEnv(SQL_NULL_HENV);
+ todo_wine ok(ret == SQL_INVALID_HANDLE, "got %d\n", ret);
+}
diff --git a/dlls/odbc32/tests/odbc32.c b/dlls/odbc32/tests/odbc32.c
index 8a744f23834..7e1f62e559f 100644
--- a/dlls/odbc32/tests/odbc32.c
+++ b/dlls/odbc32/tests/odbc32.c
@@ -28,7 +28,7 @@
static void test_SQLAllocHandle( void )
{
SQLHANDLE handle;
- SQLHENV env;
+ SQLHENV env, env2;
SQLHDBC con;
SQLRETURN ret;
@@ -46,6 +46,12 @@ static void test_SQLAllocHandle( void )
ok( ret == SQL_SUCCESS, "got %d\n", ret );
ok( env != (void *)0xdeadbeef, "env not set\n" );
+ env2 = (void *)0xdeadbeef;
+ ret = SQLAllocEnv( &env2 );
+ ok( ret == SQL_SUCCESS, "got %d\n", ret );
+ ok( env2 != (void *)0xdeadbeef, "env2 not set\n" );
+ ok( env2 != env, "environment is the same\n" );
+
con = (void *)0xdeadbeef;
ret = SQLAllocConnect( env, &con );
ok( ret == SQL_SUCCESS, "got %d\n", ret );
@@ -57,6 +63,8 @@ static void test_SQLAllocHandle( void )
ok( ret == SQL_INVALID_HANDLE, "got %d\n", ret );
ret = SQLFreeEnv( env );
ok( ret == SQL_SUCCESS, "got %d\n", ret );
+ ret = SQLFreeEnv( env2 );
+ ok( ret == SQL_SUCCESS, "got %d\n", ret );
ret = SQLFreeEnv( 0 );
ok( ret == SQL_INVALID_HANDLE, "got %d\n", ret );
}
@@ -302,6 +310,47 @@ static void test_SQLExecDirect( void )
ok( ret == SQL_SUCCESS, "got %d\n", ret );
}
+void test_SQLGetEnvAttr(void)
+{
+ SQLRETURN ret;
@@ -149,75 +87,15 @@ index 00000000000..b04d93c42c5
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+}
+
+static void test_SQLDriver(void)
+{
+ SQLHENV henv = SQL_NULL_HENV;
+ SQLRETURN ret;
+ SQLCHAR driver[256];
+ SQLCHAR attr[256];
+ SQLSMALLINT driver_ret;
+ SQLSMALLINT attr_ret;
+ SQLUSMALLINT direction;
+
+ ret = SQLAllocEnv(&henv);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+ ok(henv != SQL_NULL_HENV, "NULL handle\n");
+
+ direction = SQL_FETCH_FIRST;
+
+ while(SQL_SUCCEEDED(ret = SQLDrivers(henv, direction, driver, sizeof(driver),
+ &driver_ret, attr, sizeof(attr), &attr_ret)))
+ {
+ direction = SQL_FETCH_NEXT;
+
+ trace("%s - %s\n", driver, attr);
+ }
+ todo_wine ok(ret == SQL_NO_DATA, "got %d\n", ret);
+
+ ret = SQLFreeEnv(henv);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+}
+
+static void test_SQLGetDiagRec(void)
+{
+ SQLHENV henv = SQL_NULL_HENV;
+ SQLHDBC connection;
+ SQLRETURN ret;
+ WCHAR version[11];
+ WCHAR SqlState[6], Msg[SQL_MAX_MESSAGE_LENGTH];
+ SQLINTEGER NativeError;
+ SQLSMALLINT MsgLen;
+
+ ret = SQLAllocEnv(&henv);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+ ok(henv != SQL_NULL_HENV, "NULL handle\n");
+
+ ret = SQLAllocConnect(henv, &connection);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+
+ ret = SQLGetInfoW(connection, SQL_ODBC_VER, version, 22, NULL);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+ trace("ODBC_VER=%s\n", wine_dbgstr_w(version));
+
+ ret = SQLFreeConnect(connection);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+
+ NativeError = 88;
+ ret = SQLGetDiagRecW( SQL_HANDLE_ENV, henv, 1, SqlState, &NativeError, Msg, sizeof(Msg), &MsgLen);
+ todo_wine ok(ret == SQL_NO_DATA, "got %d\n", ret);
+ ok(NativeError == 88, "got %d\n", NativeError);
+
+ ret = SQLFreeEnv(henv);
+ ok(ret == SQL_SUCCESS, "got %d\n", ret);
+}
+
+START_TEST(connection)
+{
+ test_SQLAllocEnv();
START_TEST(odbc32)
{
test_SQLAllocHandle();
@@ -309,4 +358,5 @@ START_TEST(odbc32)
test_SQLDataSources();
test_SQLDrivers();
test_SQLExecDirect();
+ test_SQLGetEnvAttr();
+ test_SQLDriver();
+ test_SQLGetDiagRec();
+}
}
--
2.43.0

View File

@@ -1,7 +1,7 @@
From 5e9af0573526693cbc98ad8282b5f2023c6b5bf7 Mon Sep 17 00:00:00 2001
From 84025e765979320128422a50d5f892e8f501b2df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Mon, 26 Aug 2019 14:37:20 +0200
Subject: [PATCH 4/7] server: Add send_hardware_message flags for rawinput
Subject: [PATCH] server: Add send_hardware_message flags for rawinput
translation.
---
@@ -11,10 +11,10 @@ Subject: [PATCH 4/7] server: Add send_hardware_message flags for rawinput
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/include/ntuser.h b/include/ntuser.h
index f947fec7fea..4ded432bd99 100644
index ff45ffa2bc8..bc51f04af6e 100644
--- a/include/ntuser.h
+++ b/include/ntuser.h
@@ -1423,6 +1423,10 @@ struct hid_packet
@@ -1440,6 +1440,10 @@ struct hid_packet
C_ASSERT(sizeof(struct hid_packet) == offsetof(struct hid_packet, data[0]));
@@ -26,10 +26,10 @@ index f947fec7fea..4ded432bd99 100644
{
UINT flags;
diff --git a/server/protocol.def b/server/protocol.def
index 7b21aa16636..8e483bf3bbf 100644
index 1fdedd161ff..4d199a6407c 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2126,7 +2126,7 @@ enum message_type
@@ -2164,7 +2164,7 @@ enum message_type
@REQ(send_hardware_message)
user_handle_t win; /* window handle */
hw_input_t input; /* input data */
@@ -38,7 +38,7 @@ index 7b21aa16636..8e483bf3bbf 100644
VARARG(report,bytes); /* HID report data */
@REPLY
int wait; /* do we need to wait for a reply? */
@@ -2135,7 +2135,6 @@ enum message_type
@@ -2173,7 +2173,6 @@ enum message_type
int new_x; /* new cursor position */
int new_y;
@END
@@ -47,10 +47,10 @@ index 7b21aa16636..8e483bf3bbf 100644
/* Get a message from the current queue */
diff --git a/server/queue.c b/server/queue.c
index 67c03c10b40..0687a7feac1 100644
index ac863fd439b..c38d91ba28c 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -1983,7 +1983,7 @@ static void dispatch_rawinput_message( struct desktop *desktop, struct rawinput_
@@ -2019,7 +2019,7 @@ static void dispatch_rawinput_message( struct desktop *desktop, struct rawinput_
/* queue a hardware message for a mouse event */
static int queue_mouse_message( struct desktop *desktop, user_handle_t win, const hw_input_t *input,
@@ -59,7 +59,7 @@ index 67c03c10b40..0687a7feac1 100644
{
const struct rawinput_device *device;
struct hardware_msg_data *msg_data;
@@ -2038,7 +2038,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
@@ -2075,7 +2075,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
y = desktop->cursor.y;
}
@@ -68,7 +68,7 @@ index 67c03c10b40..0687a7feac1 100644
{
memset( &raw_msg, 0, sizeof(raw_msg) );
raw_msg.foreground = foreground;
@@ -2060,6 +2060,8 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
@@ -2097,6 +2097,8 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
return 0;
}
@@ -77,7 +77,7 @@ index 67c03c10b40..0687a7feac1 100644
for (i = 0; i < ARRAY_SIZE( messages ); i++)
{
if (!messages[i]) continue;
@@ -2091,7 +2093,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
@@ -2128,7 +2130,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
/* queue a hardware message for a keyboard event */
static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, const hw_input_t *input,
@@ -86,16 +86,16 @@ index 67c03c10b40..0687a7feac1 100644
{
struct hw_msg_source source = { IMDT_KEYBOARD, origin };
const struct rawinput_device *device;
@@ -2168,7 +2170,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
break;
@@ -2232,7 +2234,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
}
}
- if ((foreground = get_foreground_thread( desktop, win )))
+ if (!(send_flags & SEND_HWMSG_NO_RAW) && (foreground = get_foreground_thread( desktop, win )))
- if (!unicode && (foreground = get_foreground_thread( desktop, win )))
+ if (!(send_flags & SEND_HWMSG_NO_RAW) && ((!unicode && (foreground = get_foreground_thread( desktop, win )))))
{
struct rawinput_message raw_msg = {0};
raw_msg.foreground = foreground;
@@ -2189,6 +2191,8 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
@@ -2253,6 +2255,8 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
return 0;
}
@@ -104,7 +104,7 @@ index 67c03c10b40..0687a7feac1 100644
if (!(msg = alloc_hardware_message( input->kbd.info, source, time, 0 ))) return 0;
msg_data = msg->data;
@@ -2936,10 +2940,10 @@ DECL_HANDLER(send_hardware_message)
@@ -3004,10 +3008,10 @@ DECL_HANDLER(send_hardware_message)
switch (req->input.type)
{
case INPUT_MOUSE:

View File

@@ -0,0 +1,53 @@
From b49259919505ae15004ad6f3a42582f8436c9edd Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 7 Mar 2024 10:40:41 +1100
Subject: [PATCH] Updated vkd3d to 36c123c0056abd227ddfaac37a2a0902ac2f4bc5.
1.12 Release
---
libs/vkd3d/include/private/vkd3d_common.h | 2 +-
libs/vkd3d/libs/vkd3d-common/blob.c | 1 +
libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c | 2 ++
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d/include/private/vkd3d_common.h b/libs/vkd3d/include/private/vkd3d_common.h
index a9d709d10fe..2d950b4f7aa 100644
--- a/libs/vkd3d/include/private/vkd3d_common.h
+++ b/libs/vkd3d/include/private/vkd3d_common.h
@@ -233,7 +233,7 @@ static inline unsigned int vkd3d_popcount(unsigned int v)
{
#ifdef _MSC_VER
return __popcnt(v);
-#elif defined(__MINGW32__)
+#elif defined(HAVE_BUILTIN_POPCOUNT)
return __builtin_popcount(v);
#else
v -= (v >> 1) & 0x55555555;
diff --git a/libs/vkd3d/libs/vkd3d-common/blob.c b/libs/vkd3d/libs/vkd3d-common/blob.c
index f60ef7db769..c2c6ad67804 100644
--- a/libs/vkd3d/libs/vkd3d-common/blob.c
+++ b/libs/vkd3d/libs/vkd3d-common/blob.c
@@ -20,6 +20,7 @@
#define WIDL_C_INLINE_WRAPPERS
#endif
#define COBJMACROS
+
#define CONST_VTABLE
#include "vkd3d.h"
#include "vkd3d_blob.h"
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
index 14a3fa778e5..46c0da2a2d7 100644
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
@@ -23,6 +23,8 @@
#include <stdio.h>
#include <math.h>
+/* VKD3D_DEBUG_ENV_NAME("VKD3D_SHADER_DEBUG"); */
+
static inline int char_to_int(char c)
{
if ('0' <= c && c <= '9')
--
2.43.0

View File

@@ -1,4 +1,4 @@
From 5e22907c02cb6778555995421a0b8eb8e382ff3a Mon Sep 17 00:00:00 2001
From 98419c58be94ecff277ad08c503affd6ffa133ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 16 Mar 2014 03:19:39 +0100
Subject: [PATCH] wineboot: Add some generic hardware in HKEY_DYN_DATA\Config
@@ -9,11 +9,11 @@ Subject: [PATCH] wineboot: Add some generic hardware in HKEY_DYN_DATA\Config
1 file changed, 100 insertions(+)
diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c
index 728c41fffa9..beb29db4653 100644
index dfa3f6dd738..77708b40122 100644
--- a/programs/wineboot/wineboot.c
+++ b/programs/wineboot/wineboot.c
@@ -763,16 +763,116 @@ static void create_hardware_registry_keys(void)
free( power_info );
@@ -912,16 +912,116 @@ static void create_hardware_registry_keys(void)
free( buf );
}
+struct dyndata_enum_key{
@@ -128,7 +128,7 @@ index 728c41fffa9..beb29db4653 100644
+ }
}
/* create the platform-specific environment registry keys */
/* create the ComputerName registry keys */
--
2.40.1
2.43.0

View File

@@ -1,4 +1,4 @@
From 1f455f575b3a17cbf4bae3d44d8fa08ec3d21c4c Mon Sep 17 00:00:00 2001
From 7df284bcf76788b078b4c43ce2de0c338b557e8a Mon Sep 17 00:00:00 2001
From: Henri Verbeet <hverbeet@codeweavers.com>
Date: Thu, 13 May 2021 17:58:12 +0200
Subject: [PATCH] wined3d: Do not rotate WINED3D_SWAP_EFFECT_DISCARD
@@ -14,22 +14,22 @@ behave in a similar way.
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 49a40f3e1d6..d0f73fc690e 100644
index 6b2ad8d6954..c0721067bd1 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -531,8 +531,9 @@ static void wined3d_swapchain_gl_rotate(struct wined3d_swapchain *swapchain, str
@@ -523,8 +523,9 @@ static void wined3d_swapchain_gl_rotate(struct wined3d_swapchain *swapchain, str
unsigned int i;
static const DWORD supported_locations = WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_RB_MULTISAMPLE;
- if (swapchain->state.desc.backbuffer_count < 2 || wined3d_settings.offscreen_rendering_mode != ORM_FBO)
- if (swapchain->state.desc.backbuffer_count < 2)
- return;
+ if (swapchain->state.desc.swap_effect == WINED3D_SWAP_EFFECT_DISCARD
+ || swapchain->state.desc.backbuffer_count < 2 || wined3d_settings.offscreen_rendering_mode != ORM_FBO)
+ || swapchain->state.desc.backbuffer_count < 2)
+ return;
texture_prev = wined3d_texture_gl(swapchain->back_buffers[0]);
@@ -1181,7 +1182,8 @@ static void wined3d_swapchain_vk_rotate(struct wined3d_swapchain *swapchain, str
@@ -1177,7 +1178,8 @@ static void wined3d_swapchain_vk_rotate(struct wined3d_swapchain *swapchain, str
static const DWORD supported_locations = WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_RB_MULTISAMPLE;
@@ -40,5 +40,5 @@ index 49a40f3e1d6..d0f73fc690e 100644
texture_prev = wined3d_texture_vk(swapchain->back_buffers[0]);
--
2.34.1
2.43.0

View File

@@ -1,4 +1,4 @@
From 19d54067c5e9a44b4f4f319cd61232665f7fb01a Mon Sep 17 00:00:00 2001
From ad91a015d40c8bea7dcb603ead7897e593ea173a Mon Sep 17 00:00:00 2001
From: Ken Thomases <ken@codeweavers.com>
Date: Tue, 22 Jun 2021 07:56:43 +1000
Subject: [PATCH] winemac.drv: No Flicker patch
@@ -10,7 +10,7 @@ Subject: [PATCH] winemac.drv: No Flicker patch
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index f5793006c35..0aa4d651d70 100644
index 19efc4dc7d4..2468d4219f6 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -44,6 +44,7 @@
@@ -22,20 +22,20 @@ index f5793006c35..0aa4d651d70 100644
extern const char* debugstr_cf(CFTypeRef t);
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c
index acfad65ea81..aff0181e253 100644
index 21b148ff558..3034fe2f780 100644
--- a/dlls/winemac.drv/macdrv_main.c
+++ b/dlls/winemac.drv/macdrv_main.c
@@ -61,6 +61,7 @@ int gl_surface_mode = GL_SURFACE_IN_FRONT_OPAQUE;
@@ -60,6 +60,7 @@ int use_precise_scrolling = TRUE;
int gl_surface_mode = GL_SURFACE_IN_FRONT_OPAQUE;
int retina_enabled = FALSE;
int enable_app_nap = FALSE;
int eager_dock_icon_hiding = TRUE;
+BOOL force_backing_store = FALSE;
CFDictionaryRef localized_strings;
@@ -382,6 +383,9 @@ static void setup_options(void)
if (!get_config_key(hkey, appkey, "EagerDockIconHiding", buffer, sizeof(buffer)))
eager_dock_icon_hiding = IS_OPTION_TRUE(buffer[0]);
@@ -378,6 +379,9 @@ static void setup_options(void)
if (!get_config_key(hkey, appkey, "EnableAppNap", buffer, sizeof(buffer)))
enable_app_nap = IS_OPTION_TRUE(buffer[0]);
+ if (!get_config_key(hkey, appkey, "ForceOpenGLBackingStore", buffer, sizeof(buffer)))
+ force_backing_store = IS_OPTION_TRUE(buffer[0]);
@@ -44,7 +44,7 @@ index acfad65ea81..aff0181e253 100644
processes in the prefix. */
if (!get_config_key(hkey, NULL, "RetinaMode", buffer, sizeof(buffer)))
diff --git a/dlls/winemac.drv/opengl.c b/dlls/winemac.drv/opengl.c
index f78454ed149..205c0816d44 100644
index 1c0b87d694a..b0a3e25fd73 100644
--- a/dlls/winemac.drv/opengl.c
+++ b/dlls/winemac.drv/opengl.c
@@ -1451,7 +1451,7 @@ static BOOL create_context(struct wgl_context *context, CGLContextObj share, uns

View File

@@ -1 +1 @@
Wine Staging 9.8
Wine Staging 9.10

View File

@@ -1 +1 @@
655de4b0bf09746cd163dc771abd2c0f3c777447
951e0e27a743e52c75c7fedc0b1eaa9eb77e6bb6