Compare commits

..

19 Commits
v7.13 ... v7.15

Author SHA1 Message Date
Alistair Leslie-Hughes
552b03f70a Release v7.15 2022-08-14 14:16:57 +10:00
Alistair Leslie-Hughes
1f218b6822 Added wined3d-adapter_create_output Patchset 2022-08-14 13:51:20 +10:00
Alistair Leslie-Hughes
d9e4a75d19 Added dsdmo-fx-support patchset 2022-08-13 15:59:13 +10:00
Alistair Leslie-Hughes
0106909ec5 Added ntdll-wine-frames patchset 2022-08-12 13:34:16 +10:00
Alistair Leslie-Hughes
ec592e937b Rebase against 8e27f6c2ef327d6d643e29a271245e76aa6f4792. 2022-08-11 08:24:04 +10:00
Alistair Leslie-Hughes
4bc5bffe2f Rebase against 7b51216198237c04a8994cda1bdb45fdb4482b32. 2022-08-09 07:58:38 +10:00
Alistair Leslie-Hughes
f2648a9a40 Rebase against e43288348de170fef5dfd122675ba367dd7ea0ec. 2022-08-05 10:35:39 +10:00
Alistair Leslie-Hughes
1d21e2b6f5 Release v7.14 2022-07-30 20:21:15 +10:00
Alistair Leslie-Hughes
fcaab59ec5 Added winspool.drv-ClosePrinter patchset 2022-07-30 18:10:37 +10:00
Alistair Leslie-Hughes
8708356647 Rebase against d909f2759066afd128aa1a299d3367c7ab76da8f. 2022-07-29 08:38:12 +10:00
Alistair Leslie-Hughes
d3ed71430a Rebase against 1381ced8ecbfaa57aa378ab32e94d5aa51873160. 2022-07-28 16:20:21 +10:00
Alistair Leslie-Hughes
fb2b3b3c69 Rebase against 889fe64d9f2e1a0d9a3660bbb94e0a9b74155827. 2022-07-26 09:14:17 +10:00
Alistair Leslie-Hughes
9fd1bb66d3 Rebase against 7b77b4e3b4ea732ed592ac15f000875f5d1f1daa. 2022-07-23 09:53:09 +10:00
Alistair Leslie-Hughes
86091d3b1f Updated xactengine3_7-callbacks patchset
Tested with
- Lost Chronicles of Zerzura.
- Monkey Island 2.
- Gridrunner   (Might still crashes in some scenario)
- Neptunia Rebirth1
2022-07-22 14:24:42 +10:00
Alistair Leslie-Hughes
ab31919ee5 Rebase against 97f10736db6fc9c58ed181b3f23534513d6f9e13. 2022-07-22 09:22:53 +10:00
Alistair Leslie-Hughes
6638f9ee79 Rebase against 236476417ac6777951d1cfc26c0393bff2a64c23. 2022-07-21 14:22:07 +10:00
Alistair Leslie-Hughes
92ce758ac8 Updated xactengine3_7-Notification patchset
Updated to reflect upstream changse and re-enable.
2022-07-20 11:03:38 +10:00
Alistair Leslie-Hughes
0de9d1028b Rebase against e0d8bd3f5a7b4c8722d3632a9954f1647851f3d3. 2022-07-20 10:33:28 +10:00
Alistair Leslie-Hughes
7a2920aa2a Rebase against 1113f42aa748d9e0a27c4663b9d8de1237f95e73. 2022-07-19 13:15:49 +10:00
37 changed files with 757 additions and 802 deletions

View File

@@ -0,0 +1,144 @@
From 042e39ff36dcecd47af4102e8bb890cb9779db5e Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 13 Aug 2022 11:57:20 +1000
Subject: [PATCH 1/2] dsdmo: Add Echo FX Support
---
dlls/dsdmo/dsdmo.idl | 8 ++++
dlls/dsdmo/main.c | 97 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 105 insertions(+)
diff --git a/dlls/dsdmo/dsdmo.idl b/dlls/dsdmo/dsdmo.idl
index 7f172084828..c8130f8a1ce 100644
--- a/dlls/dsdmo/dsdmo.idl
+++ b/dlls/dsdmo/dsdmo.idl
@@ -41,3 +41,11 @@ coclass DirectSoundParamEqDMO {}
uuid(87fc0268-9a55-4360-95aa-004a1d9de26c)
]
coclass DirectSoundWavesReverbDMO {}
+
+[
+ uuid(ef3e932c-d40b-4f51-8ccf-3f98f1b29d5d),
+ threading(both),
+ progid("Microsoft.DirectSoundEchoDMO.1"),
+ vi_progid("Microsoft.DirectSoundEchoDMO")
+]
+coclass DirectSoundEchoDMO {}
diff --git a/dlls/dsdmo/main.c b/dlls/dsdmo/main.c
index 3b106a8f633..200293f5214 100644
--- a/dlls/dsdmo/main.c
+++ b/dlls/dsdmo/main.c
@@ -947,6 +947,102 @@ static HRESULT waves_reverb_create(IUnknown *outer, IUnknown **out)
return S_OK;
}
+struct dmo_echofx
+{
+ struct effect effect;
+ IDirectSoundFXEcho IDirectSoundFXEcho_iface;
+};
+
+static inline struct dmo_echofx *impl_from_IDirectSoundFXEcho(IDirectSoundFXEcho *iface)
+{
+ return CONTAINING_RECORD(iface, struct dmo_echofx, IDirectSoundFXEcho_iface);
+}
+
+static HRESULT WINAPI echofx_QueryInterface(IDirectSoundFXEcho *iface, REFIID iid, void **out)
+{
+ struct dmo_echofx *effect = impl_from_IDirectSoundFXEcho(iface);
+ return IUnknown_QueryInterface(effect->effect.outer_unk, iid, out);
+}
+
+static ULONG WINAPI echofx_AddRef(IDirectSoundFXEcho *iface)
+{
+ struct dmo_echofx *effect = impl_from_IDirectSoundFXEcho(iface);
+ return IUnknown_AddRef(effect->effect.outer_unk);
+}
+
+static ULONG WINAPI echofx_Release(IDirectSoundFXEcho *iface)
+{
+ struct dmo_echofx *effect = impl_from_IDirectSoundFXEcho(iface);
+ return IUnknown_Release(effect->effect.outer_unk);
+}
+
+static HRESULT WINAPI echofx_SetAllParameters(IDirectSoundFXEcho *iface, const DSFXEcho *echo)
+{
+ struct dmo_echofx *effect = impl_from_IDirectSoundFXEcho(iface);
+ FIXME("(%p) %p\n", effect, echo);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI echofx_GetAllParameters(IDirectSoundFXEcho *iface, DSFXEcho *echo)
+{
+ struct dmo_echofx *effect = impl_from_IDirectSoundFXEcho(iface);
+ FIXME("(%p) %p\n", effect, echo);
+
+ return E_NOTIMPL;
+}
+
+static const struct IDirectSoundFXEchoVtbl echofx_vtbl =
+{
+ echofx_QueryInterface,
+ echofx_AddRef,
+ echofx_Release,
+ echofx_SetAllParameters,
+ echofx_GetAllParameters
+};
+
+static struct dmo_echofx *impl_echo_from_effect(struct effect *iface)
+{
+ return CONTAINING_RECORD(iface, struct dmo_echofx, effect);
+}
+
+static void *echo_query_interface(struct effect *iface, REFIID iid)
+{
+ struct dmo_echofx *effect = impl_echo_from_effect(iface);
+
+ if (IsEqualGUID(iid, &IID_IDirectSoundFXEcho))
+ return &effect->IDirectSoundFXEcho_iface;
+ return NULL;
+}
+
+static void echo_destroy(struct effect *iface)
+{
+ struct dmo_echofx *effect = impl_echo_from_effect(iface);
+
+ free(effect);
+}
+
+static const struct effect_ops echo_ops =
+{
+ .destroy = echo_destroy,
+ .query_interface = echo_query_interface,
+};
+
+static HRESULT echo_create(IUnknown *outer, IUnknown **out)
+{
+ struct dmo_echofx *object;
+
+ if (!(object = calloc(1, sizeof(*object))))
+ return E_OUTOFMEMORY;
+
+ effect_init(&object->effect, outer, &echo_ops);
+ object->IDirectSoundFXEcho_iface.lpVtbl = &echofx_vtbl;
+
+ TRACE("Created echo effect %p.\n", object);
+ *out = &object->effect.IUnknown_inner;
+ return S_OK;
+}
+
struct class_factory
{
IClassFactory IClassFactory_iface;
@@ -1031,6 +1127,7 @@ class_factories[] =
{&GUID_DSFX_STANDARD_I3DL2REVERB, {{&class_factory_vtbl}, reverb_create}},
{&GUID_DSFX_STANDARD_PARAMEQ, {{&class_factory_vtbl}, eq_create}},
{&GUID_DSFX_WAVES_REVERB, {{&class_factory_vtbl}, waves_reverb_create}},
+ {&GUID_DSFX_STANDARD_ECHO, {{&class_factory_vtbl}, echo_create}},
};
HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID iid, void **out)
--
2.35.1

View File

@@ -0,0 +1,145 @@
From 7a9faf6c5f18a24f4fcbda2fc3066a4b7dd9a892 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 13 Aug 2022 15:03:46 +1000
Subject: [PATCH 2/2] dsdmo: Add Compressor FX Support
---
dlls/dsdmo/dsdmo.idl | 8 ++++
dlls/dsdmo/main.c | 97 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 105 insertions(+)
diff --git a/dlls/dsdmo/dsdmo.idl b/dlls/dsdmo/dsdmo.idl
index c8130f8a1ce..ee3154f64d1 100644
--- a/dlls/dsdmo/dsdmo.idl
+++ b/dlls/dsdmo/dsdmo.idl
@@ -49,3 +49,11 @@ coclass DirectSoundWavesReverbDMO {}
vi_progid("Microsoft.DirectSoundEchoDMO")
]
coclass DirectSoundEchoDMO {}
+
+[
+ uuid(ef011f79-4000-406d-87af-bffb3fc39d57),
+ threading(both),
+ progid("Microsoft.DirectSoundCompressorDMO.1"),
+ vi_progid("Microsoft.DirectSoundCompressorDMO")
+]
+coclass DirectSoundCompressorDMO {}
\ No newline at end of file
diff --git a/dlls/dsdmo/main.c b/dlls/dsdmo/main.c
index 200293f5214..bb19b7b7e2e 100644
--- a/dlls/dsdmo/main.c
+++ b/dlls/dsdmo/main.c
@@ -1043,6 +1043,102 @@ static HRESULT echo_create(IUnknown *outer, IUnknown **out)
return S_OK;
}
+struct dmo_compressorfx
+{
+ struct effect effect;
+ IDirectSoundFXCompressor IDirectSoundFXCompressor_iface;
+};
+
+static inline struct dmo_compressorfx *impl_from_IDirectSoundFXCompressor(IDirectSoundFXCompressor *iface)
+{
+ return CONTAINING_RECORD(iface, struct dmo_compressorfx, IDirectSoundFXCompressor_iface);
+}
+
+static HRESULT WINAPI compressorfx_QueryInterface(IDirectSoundFXCompressor *iface, REFIID iid, void **out)
+{
+ struct dmo_compressorfx *effect = impl_from_IDirectSoundFXCompressor(iface);
+ return IUnknown_QueryInterface(effect->effect.outer_unk, iid, out);
+}
+
+static ULONG WINAPI compressorfx_AddRef(IDirectSoundFXCompressor *iface)
+{
+ struct dmo_compressorfx *effect = impl_from_IDirectSoundFXCompressor(iface);
+ return IUnknown_AddRef(effect->effect.outer_unk);
+}
+
+static ULONG WINAPI compressorfx_Release(IDirectSoundFXCompressor *iface)
+{
+ struct dmo_compressorfx *effect = impl_from_IDirectSoundFXCompressor(iface);
+ return IUnknown_Release(effect->effect.outer_unk);
+}
+
+static HRESULT WINAPI compressorfx_SetAllParameters(IDirectSoundFXCompressor *iface, const DSFXCompressor *compressor)
+{
+ struct dmo_compressorfx *This = impl_from_IDirectSoundFXCompressor(iface);
+ FIXME("(%p) %p\n", This, compressor);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI compressorfx_GetAllParameters(IDirectSoundFXCompressor *iface, DSFXCompressor *compressor)
+{
+ struct dmo_compressorfx *This = impl_from_IDirectSoundFXCompressor(iface);
+ FIXME("(%p) %p\n", This, compressor);
+
+ return E_NOTIMPL;
+}
+
+static const struct IDirectSoundFXCompressorVtbl compressor_vtbl =
+{
+ compressorfx_QueryInterface,
+ compressorfx_AddRef,
+ compressorfx_Release,
+ compressorfx_SetAllParameters,
+ compressorfx_GetAllParameters
+};
+
+static struct dmo_compressorfx *impl_compressor_from_effect(struct effect *iface)
+{
+ return CONTAINING_RECORD(iface, struct dmo_compressorfx, effect);
+}
+
+static void *compressor_query_interface(struct effect *iface, REFIID iid)
+{
+ struct dmo_compressorfx *effect = impl_compressor_from_effect(iface);
+
+ if (IsEqualGUID(iid, &IID_IDirectSoundFXCompressor))
+ return &effect->IDirectSoundFXCompressor_iface;
+ return NULL;
+}
+
+static void compressor_destroy(struct effect *iface)
+{
+ struct dmo_compressorfx *effect = impl_compressor_from_effect(iface);
+
+ free(effect);
+}
+
+static const struct effect_ops compressor_ops =
+{
+ .destroy = compressor_destroy,
+ .query_interface = compressor_query_interface,
+};
+
+static HRESULT compressor_create(IUnknown *outer, IUnknown **out)
+{
+ struct dmo_compressorfx *object;
+
+ if (!(object = calloc(1, sizeof(*object))))
+ return E_OUTOFMEMORY;
+
+ effect_init(&object->effect, outer, &compressor_ops);
+ object->IDirectSoundFXCompressor_iface.lpVtbl = &compressor_vtbl;
+
+ TRACE("Created compressor effect %p.\n", object);
+ *out = &object->effect.IUnknown_inner;
+ return S_OK;
+}
+
struct class_factory
{
IClassFactory IClassFactory_iface;
@@ -1128,6 +1224,7 @@ class_factories[] =
{&GUID_DSFX_STANDARD_PARAMEQ, {{&class_factory_vtbl}, eq_create}},
{&GUID_DSFX_WAVES_REVERB, {{&class_factory_vtbl}, waves_reverb_create}},
{&GUID_DSFX_STANDARD_ECHO, {{&class_factory_vtbl}, echo_create}},
+ {&GUID_DSFX_STANDARD_COMPRESSOR, {{&class_factory_vtbl}, compressor_create}},
};
HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID iid, void **out)
--
2.35.1

View File

@@ -0,0 +1 @@
Fixes: [52396] dsdmo: Add More FX interfaces.

View File

@@ -1 +1,2 @@
Fixes: [44052] - Support for font fallback.
Disabled: True

View File

@@ -1,4 +1,4 @@
From 3e714e2eb10fe17f12b747731c0ce7e18fd4b7a0 Mon Sep 17 00:00:00 2001
From 61fb7e02aa6779469e94c79f1132c4991cb27244 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 15:11:12 -0500
Subject: [PATCH] server: Create eventfd file descriptors for process objects.
@@ -40,16 +40,16 @@ index c7b0323f204..27049ffbdb0 100644
{
struct esync *esync;
diff --git a/server/esync.h b/server/esync.h
index 7ca4ca89394..6a0a367124d 100644
index 00f9e638d83..8522d8a69ae 100644
--- a/server/esync.h
+++ b/server/esync.h
@@ -20,3 +20,4 @@
@@ -22,3 +22,4 @@
extern int do_esync(void);
void esync_init(void);
+int esync_create_fd( int initval, int flags );
diff --git a/server/process.c b/server/process.c
index da972a41955..91b26d00ec0 100644
index da11b90c613..22ac16fb540 100644
--- a/server/process.c
+++ b/server/process.c
@@ -63,6 +63,7 @@
@@ -77,7 +77,7 @@ index da972a41955..91b26d00ec0 100644
no_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -684,6 +686,7 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
@@ -686,6 +688,7 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
process->rawinput_mouse = NULL;
process->rawinput_kbd = NULL;
memset( &process->image_info, 0, sizeof(process->image_info) );
@@ -85,7 +85,7 @@ index da972a41955..91b26d00ec0 100644
list_init( &process->kernel_object );
list_init( &process->thread_list );
list_init( &process->locks );
@@ -741,6 +744,9 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
@@ -742,6 +745,9 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
if (!token_assign_label( process->token, &high_label_sid ))
goto error;
@@ -95,15 +95,15 @@ index da972a41955..91b26d00ec0 100644
set_fd_events( process->msg_fd, POLLIN ); /* start listening to events */
return process;
@@ -787,6 +793,7 @@ static void process_destroy( struct object *obj )
if (process->token) release_object( process->token );
@@ -789,6 +795,7 @@ static void process_destroy( struct object *obj )
free( process->rawinput_devices );
free( process->dir_cache );
free( process->image );
+ if (do_esync()) close( process->esync_fd );
}
/* dump a process on stdout for debugging purposes */
@@ -804,6 +811,13 @@ static int process_signaled( struct object *obj, struct wait_queue_entry *entry
@@ -806,6 +813,13 @@ static int process_signaled( struct object *obj, struct wait_queue_entry *entry
return !process->running_threads;
}
@@ -118,10 +118,10 @@ index da972a41955..91b26d00ec0 100644
{
access = default_map_access( obj, access );
diff --git a/server/process.h b/server/process.h
index 632faf9c4bf..1ba69b3406e 100644
index 97e0d455ece..a0a071d8f88 100644
--- a/server/process.h
+++ b/server/process.h
@@ -90,6 +90,7 @@ struct process
@@ -85,6 +85,7 @@ struct process
const struct rawinput_device *rawinput_kbd; /* rawinput keyboard device, if any */
struct list kernel_object; /* list of kernel object pointers */
pe_image_info_t image_info; /* main exe image info */
@@ -130,5 +130,5 @@ index 632faf9c4bf..1ba69b3406e 100644
/* process functions */
--
2.34.1
2.35.1

View File

@@ -1,4 +1,4 @@
From e0a89702e35941e75ce06f795966c92b3f195ed8 Mon Sep 17 00:00:00 2001
From ca6a89f3bfb6aa5d7ac05bb0c469b527ae1a9d9d Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:11:23 -0500
Subject: [PATCH] server, ntdll: Implement message waits.
@@ -10,10 +10,10 @@ Subject: [PATCH] server, ntdll: Implement message waits.
3 files changed, 75 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index fcbe563bb5a..88490e08ef9 100644
index 2ae334d8417..608c318c1c7 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -482,12 +482,13 @@ static void update_grabbed_object( struct esync *obj )
@@ -475,12 +475,13 @@ static void update_grabbed_object( struct esync *obj )
/* A value of STATUS_NOT_IMPLEMENTED returned from this function means that we
* need to delegate to server_select(). */
@@ -28,7 +28,7 @@ index fcbe563bb5a..88490e08ef9 100644
LONGLONG timeleft;
LARGE_INTEGER now;
ULONGLONG end;
@@ -515,6 +516,9 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
@@ -508,6 +509,9 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
return ret;
}
@@ -38,7 +38,7 @@ index fcbe563bb5a..88490e08ef9 100644
if (has_esync && has_server)
FIXME("Can't wait on esync and server objects at the same time!\n");
else if (has_server)
@@ -526,6 +530,9 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
@@ -519,6 +523,9 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
for (i = 0; i < count; i++)
TRACE(" %p", handles[i]);
@@ -48,7 +48,7 @@ index fcbe563bb5a..88490e08ef9 100644
if (!timeout)
TRACE(", timeout = INFINITE.\n");
else
@@ -565,7 +572,9 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
@@ -558,7 +565,9 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
int64_t value;
ssize_t size;
@@ -59,7 +59,7 @@ index fcbe563bb5a..88490e08ef9 100644
{
/* Don't grab the object, just check if it's signaled. */
if (fds[i].revents & POLLIN)
@@ -610,6 +619,44 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
@@ -603,6 +612,44 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
}
}
@@ -105,10 +105,10 @@ index fcbe563bb5a..88490e08ef9 100644
{
struct stat st;
diff --git a/server/protocol.def b/server/protocol.def
index cf00ab99c63..ecbb78cc9bb 100644
index 5cf63cbac21..f837944574e 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3734,3 +3734,8 @@ enum esync_type
@@ -3797,3 +3797,8 @@ enum esync_type
int type;
unsigned int shm_idx;
@END
@@ -118,10 +118,10 @@ index cf00ab99c63..ecbb78cc9bb 100644
+ int in_msgwait; /* are we in a message wait? */
+@END
diff --git a/server/queue.c b/server/queue.c
index d34bc284d08..f4edb299dc3 100644
index 1702acb8480..9593ae532d4 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -146,6 +146,7 @@ struct msg_queue
@@ -144,6 +144,7 @@ struct msg_queue
int keystate_lock; /* owns an input keystate lock */
unsigned int ignore_post_msg; /* ignore post messages newer than this unique id */
int esync_fd; /* esync file descriptor (signalled on message) */
@@ -129,7 +129,7 @@ index d34bc284d08..f4edb299dc3 100644
};
struct hotkey
@@ -319,6 +320,7 @@ static struct msg_queue *create_msg_queue( struct thread *thread, struct thread_
@@ -317,6 +318,7 @@ static struct msg_queue *create_msg_queue( struct thread *thread, struct thread_
queue->keystate_lock = 0;
queue->ignore_post_msg = 0;
queue->esync_fd = -1;
@@ -137,7 +137,7 @@ index d34bc284d08..f4edb299dc3 100644
list_init( &queue->send_result );
list_init( &queue->callback_result );
list_init( &queue->pending_timers );
@@ -1002,6 +1004,10 @@ static int is_queue_hung( struct msg_queue *queue )
@@ -1001,6 +1003,10 @@ static int is_queue_hung( struct msg_queue *queue )
if (get_wait_queue_thread(entry)->queue == queue)
return 0; /* thread is waiting on queue -> not hung */
}
@@ -148,9 +148,9 @@ index d34bc284d08..f4edb299dc3 100644
return 1;
}
@@ -3416,3 +3422,18 @@ DECL_HANDLER(get_rawinput_devices)
devices[i++] = e->device;
}
@@ -3456,3 +3462,18 @@ DECL_HANDLER(update_rawinput_devices)
process->rawinput_mouse = find_rawinput_device( process, 1, 2 );
process->rawinput_kbd = find_rawinput_device( process, 1, 6 );
}
+
+DECL_HANDLER(esync_msgwait)
@@ -168,5 +168,5 @@ index d34bc284d08..f4edb299dc3 100644
+ set_fd_events( queue->fd, req->in_msgwait ? POLLIN : 0 );
+}
--
2.30.2
2.35.1

View File

@@ -1,4 +1,4 @@
From 505384ad65984c3fc18c1c1a7b1fd39ecd0186f1 Mon Sep 17 00:00:00 2001
From 07694655cf43e87ffc6185a5e7fe8d1bdd8658a4 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Wed, 13 Jun 2018 23:32:04 -0500
Subject: [PATCH] kernel32/tests: Add some mutex tests.
@@ -8,11 +8,11 @@ Subject: [PATCH] kernel32/tests: Add some mutex tests.
1 file changed, 94 insertions(+)
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index ea54cb069df..790b7bfe797 100644
index bc85126d9aa..491052d5593 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -177,8 +177,23 @@ static void test_signalandwait(void)
CloseHandle(file);
@@ -227,8 +227,23 @@ static void test_temporary_objects(void)
ok(GetLastError() == ERROR_FILE_NOT_FOUND, "wrong error %lu\n", GetLastError());
}
+static HANDLE mutex, mutex2, mutices[2];
@@ -35,7 +35,7 @@ index ea54cb069df..790b7bfe797 100644
DWORD wait_ret;
BOOL ret;
HANDLE hCreated;
@@ -289,6 +304,85 @@ todo_wine_if(getenv("WINEESYNC")) /* XFAIL: due to the above */
@@ -339,6 +354,85 @@ todo_wine_if(getenv("WINEESYNC")) /* XFAIL: due to the above */
CloseHandle(hOpened);
CloseHandle(hCreated);
@@ -122,5 +122,5 @@ index ea54cb069df..790b7bfe797 100644
static void test_slist(void)
--
2.28.0
2.35.1

View File

@@ -1,25 +0,0 @@
From 240b46c41f284b6ff96b990b9b719a18919fb6dd Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 3 Mar 2021 08:56:39 +1100
Subject: [PATCH 1/2] ntdll: Check return parameter before use
---
dlls/ntdll/sec.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dlls/ntdll/sec.c b/dlls/ntdll/sec.c
index eccfc82ce8c..5c1c9b1fbb0 100644
--- a/dlls/ntdll/sec.c
+++ b/dlls/ntdll/sec.c
@@ -1172,6 +1172,8 @@ NTSTATUS WINAPI RtlAddAce(
return STATUS_INVALID_PARAMETER;
if (!RtlFirstFreeAce(acl,&targetace))
return STATUS_INVALID_PARAMETER;
+ if (!targetace)
+ return STATUS_ALLOTTED_SPACE_EXCEEDED;
nrofaces=0;ace=acestart;
while (((BYTE *)ace - (BYTE *)acestart) < acelen) {
nrofaces++;
--
2.30.1

View File

@@ -1,28 +0,0 @@
From 0d2d659fbfb73fe046626d256ca5ee2878d9288b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 8 Feb 2021 13:16:52 +1100
Subject: [PATCH 2/2] ntdll: RtlFirstFreeAce only return FALSE on error
---
dlls/ntdll/sec.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/dlls/ntdll/sec.c b/dlls/ntdll/sec.c
index 5c1c9b1fbb0..9cebcb4f58e 100644
--- a/dlls/ntdll/sec.c
+++ b/dlls/ntdll/sec.c
@@ -1149,9 +1149,8 @@ BOOLEAN WINAPI RtlFirstFreeAce(
return FALSE;
ace = (PACE_HEADER)(((BYTE*)ace)+ace->AceSize);
}
- if ((BYTE *)ace >= (BYTE *)acl + acl->AclSize)
- return FALSE;
- *x = ace;
+ if ((BYTE *)ace <= (BYTE *)acl + acl->AclSize)
+ *x = ace;
return TRUE;
}
--
2.30.1

View File

@@ -1 +0,0 @@
Fixes: [50624] Waves Central 12.0.5 fails to start.

View File

@@ -1,4 +1,4 @@
From 109ef0c4769a50904accb044a5d569af8261e305 Mon Sep 17 00:00:00 2001
From 0e455713af03b7f91fea4332c893390a8de8ca44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 00:50:50 +0100
Subject: [PATCH] ntdll/tests: Add basic tests for RtlQueryPackageIdentity.
@@ -20,7 +20,7 @@ index 90deb5865f8..428ebde23b3 100644
C_SRCS = \
atom.c \
diff --git a/dlls/ntdll/tests/rtl.c b/dlls/ntdll/tests/rtl.c
index aeae4e8adf3..52b06d33b54 100644
index 2e0bfb650e4..cdb159479f2 100644
--- a/dlls/ntdll/tests/rtl.c
+++ b/dlls/ntdll/tests/rtl.c
@@ -27,6 +27,9 @@
@@ -53,8 +53,8 @@ index aeae4e8adf3..52b06d33b54 100644
pLdrRegisterDllNotification = (void *)GetProcAddress(hntdll, "LdrRegisterDllNotification");
pLdrUnregisterDllNotification = (void *)GetProcAddress(hntdll, "LdrUnregisterDllNotification");
}
@@ -3682,6 +3691,76 @@ static void test_RtlDestroyHeap(void)
RtlRemoveVectoredExceptionHandler( handler );
@@ -3730,6 +3739,76 @@ static void test_RtlFirstFreeAce(void)
HeapFree(GetProcessHeap(), 0, acl);
}
+static void test_RtlQueryPackageIdentity(void)
@@ -130,7 +130,7 @@ index aeae4e8adf3..52b06d33b54 100644
START_TEST(rtl)
{
InitFunctionPtrs();
@@ -3721,6 +3800,7 @@ START_TEST(rtl)
@@ -3769,6 +3848,7 @@ START_TEST(rtl)
test_RtlInitializeCriticalSectionEx();
test_RtlLeaveCriticalSection();
test_LdrEnumerateLoadedModules();

View File

@@ -0,0 +1,144 @@
From b2c573c7d371f760d92b7490fd1aca002e2f18c6 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Tue, 26 Oct 2021 19:07:26 +0300
Subject: [PATCH] ntdll: Don't use Wine frames during exception processing on
x64.
CW-Bug-ID: #19570
---
dlls/ntdll/signal_x86_64.c | 65 +++++++++++++++++++++++++++-----------
1 file changed, 46 insertions(+), 19 deletions(-)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index b1ab4933b93..3d163fbc6ea 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -347,15 +347,32 @@ __ASM_GLOBAL_FUNC( RtlCaptureContext,
"fxsave 0x100(%rcx)\n\t" /* context->FltSave */
"ret" );
-static DWORD __cdecl nested_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
+DWORD __cdecl nested_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **dispatcher )
{
+ TRACE( "exception flags %#x.\n", rec->ExceptionFlags );
+
if (!(rec->ExceptionFlags & (EH_UNWINDING | EH_EXIT_UNWIND)))
- rec->ExceptionFlags |= EH_NESTED_CALL;
+ return ExceptionNestedException;
return ExceptionContinueSearch;
}
+/***********************************************************************
+ * exception_handler_call_wrapper
+ */
+DWORD exception_handler_call_wrapper( EXCEPTION_RECORD *rec, void *frame,
+ CONTEXT *context, DISPATCHER_CONTEXT *dispatch );
+__ASM_GLOBAL_FUNC( exception_handler_call_wrapper,
+ __ASM_SEH(".seh_endprologue\n\t")
+ "subq $0x28, %rsp\n\t"
+ __ASM_SEH(".seh_stackalloc 0x28\n\t")
+ __ASM_SEH(".seh_handler nested_exception_handler, @except\n\t")
+ "callq *0x30(%r9)\n\t" /* dispatch->LanguageHandler */
+ "nop\n\t"
+ "addq $0x28, %rsp\n\t"
+ "ret" );
+
/**********************************************************************
* call_handler
*
@@ -364,19 +381,19 @@ static DWORD __cdecl nested_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_
*/
static DWORD call_handler( EXCEPTION_RECORD *rec, CONTEXT *context, DISPATCHER_CONTEXT *dispatch )
{
- EXCEPTION_REGISTRATION_RECORD frame;
DWORD res;
- frame.Handler = nested_exception_handler;
- __wine_push_frame( &frame );
-
TRACE_(seh)( "calling handler %p (rec=%p, frame=%p context=%p, dispatch=%p)\n",
dispatch->LanguageHandler, rec, (void *)dispatch->EstablisherFrame, dispatch->ContextRecord, dispatch );
- res = dispatch->LanguageHandler( rec, (void *)dispatch->EstablisherFrame, context, dispatch );
+ res = exception_handler_call_wrapper( rec, (void *)dispatch->EstablisherFrame, context, dispatch );
TRACE_(seh)( "handler at %p returned %u\n", dispatch->LanguageHandler, res );
rec->ExceptionFlags &= EH_NONCONTINUABLE;
- __wine_pop_frame( &frame );
+ if (res == ExceptionNestedException)
+ {
+ rec->ExceptionFlags |= EH_NESTED_CALL;
+ res = ExceptionContinueSearch;
+ }
return res;
}
@@ -990,7 +1007,8 @@ PVOID WINAPI RtlVirtualUnwind( ULONG type, ULONG64 base, ULONG64 pc,
struct unwind_exception_frame
{
- EXCEPTION_REGISTRATION_RECORD frame;
+ BYTE dummy[0x28];
+ void *rip;
DISPATCHER_CONTEXT *dispatch;
};
@@ -999,7 +1017,7 @@ struct unwind_exception_frame
*
* Handler for exceptions happening while calling an unwind handler.
*/
-static DWORD __cdecl unwind_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
+DWORD __cdecl unwind_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **dispatcher )
{
struct unwind_exception_frame *unwind_frame = (struct unwind_exception_frame *)frame;
@@ -1019,27 +1037,36 @@ static DWORD __cdecl unwind_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_
return ExceptionCollidedUnwind;
}
+/***********************************************************************
+ * exception_handler_call_wrapper
+ */
+DWORD unwind_handler_call_wrapper( EXCEPTION_RECORD *rec, void *frame,
+ CONTEXT *context, DISPATCHER_CONTEXT *dispatch );
+__ASM_GLOBAL_FUNC( unwind_handler_call_wrapper,
+ __ASM_SEH(".seh_endprologue\n\t")
+ "movq %r9, 0x8(%rsp)\n\t"
+ "subq $0x28, %rsp\n\t"
+ __ASM_SEH(".seh_stackalloc 0x28\n\t")
+ __ASM_SEH(".seh_handler unwind_exception_handler, @except, @unwind\n\t")
+ "callq *0x30(%r9)\n\t" /* dispatch->LanguageHandler */
+ "nop\n\t"
+ "addq $0x28, %rsp\n\t"
+ "ret" );
+
/**********************************************************************
* call_unwind_handler
*
* Call a single unwind handler.
*/
-static DWORD call_unwind_handler( EXCEPTION_RECORD *rec, DISPATCHER_CONTEXT *dispatch )
+DWORD call_unwind_handler( EXCEPTION_RECORD *rec, DISPATCHER_CONTEXT *dispatch )
{
- struct unwind_exception_frame frame;
DWORD res;
- frame.frame.Handler = unwind_exception_handler;
- frame.dispatch = dispatch;
- __wine_push_frame( &frame.frame );
-
TRACE( "calling handler %p (rec=%p, frame=%p context=%p, dispatch=%p)\n",
dispatch->LanguageHandler, rec, (void *)dispatch->EstablisherFrame, dispatch->ContextRecord, dispatch );
- res = dispatch->LanguageHandler( rec, (void *)dispatch->EstablisherFrame, dispatch->ContextRecord, dispatch );
+ res = unwind_handler_call_wrapper( rec, (void *)dispatch->EstablisherFrame, dispatch->ContextRecord, dispatch );
TRACE( "handler %p returned %x\n", dispatch->LanguageHandler, res );
- __wine_pop_frame( &frame.frame );
-
switch (res)
{
case ExceptionContinueSearch:
--
2.35.1

View File

@@ -0,0 +1 @@
Fixes: [52396] ntdll: Don't use Wine frames during exception processing on x64.

View File

@@ -51,13 +51,13 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "dfff9217746e5076aba35513c6d4bc3d271d109c"
echo "a1af412482d36c4046061faa676ff7bc774f40eb"
}
# Show version information
version()
{
echo "Wine Staging 7.13"
echo "Wine Staging 7.15"
echo "Copyright (C) 2014-2019 the Wine Staging project authors."
echo "Copyright (C) 2018-2020 Alistair Leslie-Hughes"
echo ""
@@ -106,9 +106,9 @@ patch_enable_all ()
enable_ddraw_Silence_FIXMEs="$1"
enable_ddraw_version_check="$1"
enable_dinput_joy_mappings="$1"
enable_dsdmo_fx_support="$1"
enable_dsound_EAX="$1"
enable_dsound_Fast_Mixer="$1"
enable_dwrite_FontFallback="$1"
enable_eventfd_synchronization="$1"
enable_explorer_Video_Registry_Key="$1"
enable_fltmgr_sys_FltBuildDefaultSecurityDescriptor="$1"
@@ -146,12 +146,12 @@ patch_enable_all ()
enable_ntdll_NtQuerySection="$1"
enable_ntdll_NtSetLdtEntries="$1"
enable_ntdll_ProcessQuotaLimits="$1"
enable_ntdll_RtlFirstFreeAce="$1"
enable_ntdll_RtlQueryPackageIdentity="$1"
enable_ntdll_Serial_Port_Detection="$1"
enable_ntdll_Syscall_Emulation="$1"
enable_ntdll_WRITECOPY="$1"
enable_ntdll_ext4_case_folder="$1"
enable_ntdll_wine_frames="$1"
enable_nvapi_Stub_DLL="$1"
enable_nvcuda_CUDA_Support="$1"
enable_nvcuvid_CUDA_Video_Support="$1"
@@ -229,6 +229,7 @@ patch_enable_all ()
enable_wined3d_SWVP_shaders="$1"
enable_wined3d_Silence_FIXMEs="$1"
enable_wined3d_WINED3DFMT_B8G8R8X8_UNORM="$1"
enable_wined3d_adapter_create_output="$1"
enable_wined3d_bindless_texture="$1"
enable_wined3d_mesa_texture_download="$1"
enable_wined3d_rotate_WINED3D_SWAP_EFFECT_DISCARD="$1"
@@ -257,14 +258,13 @@ patch_enable_all ()
enable_winex11_drv_Query_server_position="$1"
enable_wininet_Cleanup="$1"
enable_winmm_mciSendCommandA="$1"
enable_winspool_drv_ClosePrinter="$1"
enable_wintab32_improvements="$1"
enable_wintrust_WTHelperGetProvCertFromChain="$1"
enable_ws2_32_SIO_IDEAL_SEND_BACKLOG_QUERY="$1"
enable_wscript_support_d_u_switches="$1"
enable_xactengine_initial="$1"
enable_xactengine3_7_Notification="$1"
enable_xactengine3_7_PrepareWave="$1"
enable_xactengine3_7_callbacks="$1"
}
# Enable or disable a specific patchset
@@ -343,15 +343,15 @@ patch_enable ()
dinput-joy-mappings)
enable_dinput_joy_mappings="$2"
;;
dsdmo-fx-support)
enable_dsdmo_fx_support="$2"
;;
dsound-EAX)
enable_dsound_EAX="$2"
;;
dsound-Fast_Mixer)
enable_dsound_Fast_Mixer="$2"
;;
dwrite-FontFallback)
enable_dwrite_FontFallback="$2"
;;
eventfd_synchronization)
enable_eventfd_synchronization="$2"
;;
@@ -463,9 +463,6 @@ patch_enable ()
ntdll-ProcessQuotaLimits)
enable_ntdll_ProcessQuotaLimits="$2"
;;
ntdll-RtlFirstFreeAce)
enable_ntdll_RtlFirstFreeAce="$2"
;;
ntdll-RtlQueryPackageIdentity)
enable_ntdll_RtlQueryPackageIdentity="$2"
;;
@@ -481,6 +478,9 @@ patch_enable ()
ntdll-ext4-case-folder)
enable_ntdll_ext4_case_folder="$2"
;;
ntdll-wine-frames)
enable_ntdll_wine_frames="$2"
;;
nvapi-Stub_DLL)
enable_nvapi_Stub_DLL="$2"
;;
@@ -712,6 +712,9 @@ patch_enable ()
wined3d-WINED3DFMT_B8G8R8X8_UNORM)
enable_wined3d_WINED3DFMT_B8G8R8X8_UNORM="$2"
;;
wined3d-adapter_create_output)
enable_wined3d_adapter_create_output="$2"
;;
wined3d-bindless-texture)
enable_wined3d_bindless_texture="$2"
;;
@@ -796,6 +799,9 @@ patch_enable ()
winmm-mciSendCommandA)
enable_winmm_mciSendCommandA="$2"
;;
winspool.drv-ClosePrinter)
enable_winspool_drv_ClosePrinter="$2"
;;
wintab32-improvements)
enable_wintab32_improvements="$2"
;;
@@ -811,15 +817,9 @@ patch_enable ()
xactengine-initial)
enable_xactengine_initial="$2"
;;
xactengine3_7-Notification)
enable_xactengine3_7_Notification="$2"
;;
xactengine3_7-PrepareWave)
enable_xactengine3_7_PrepareWave="$2"
;;
xactengine3_7-callbacks)
enable_xactengine3_7_callbacks="$2"
;;
*)
return 1
;;
@@ -1167,13 +1167,6 @@ patch_apply()
}
if test "$enable_xactengine3_7_callbacks" -eq 1; then
if test "$enable_xactengine3_7_Notification" -gt 1; then
abort "Patchset xactengine3_7-Notification disabled, but xactengine3_7-callbacks depends on that."
fi
enable_xactengine3_7_Notification=1
fi
if test "$enable_winex11_WM_WINDOWPOSCHANGING" -eq 1; then
if test "$enable_winex11__NET_ACTIVE_WINDOW" -gt 1; then
abort "Patchset winex11-_NET_ACTIVE_WINDOW disabled, but winex11-WM_WINDOWPOSCHANGING depends on that."
@@ -1673,6 +1666,19 @@ if test "$enable_dinput_joy_mappings" -eq 1; then
patch_apply dinput-joy-mappings/0004-dinput-Allow-mapping-of-controls-based-of-Genre-type.patch
fi
# Patchset dsdmo-fx-support
# |
# | This patchset fixes the following Wine bugs:
# | * [#52396] dsdmo: Add More FX interfaces.
# |
# | Modified files:
# | * dlls/dsdmo/dsdmo.idl, dlls/dsdmo/main.c
# |
if test "$enable_dsdmo_fx_support" -eq 1; then
patch_apply dsdmo-fx-support/0001-dsdmo-Add-Echo-FX-Support.patch
patch_apply dsdmo-fx-support/0002-dsdmo-Add-Compressor-FX-Support.patch
fi
# Patchset dsound-Fast_Mixer
# |
# | This patchset fixes the following Wine bugs:
@@ -1723,22 +1729,6 @@ if test "$enable_dsound_EAX" -eq 1; then
patch_apply dsound-EAX/0023-dsound-Fake-success-for-EAX-Set-Buffer-ListenerPrope.patch
fi
# Patchset dwrite-FontFallback
# |
# | This patchset fixes the following Wine bugs:
# | * [#44052] - Support for font fallback.
# |
# | Modified files:
# | * dlls/dwrite/analyzer.c, dlls/dwrite/layout.c, dlls/dwrite/tests/layout.c
# |
if test "$enable_dwrite_FontFallback" -eq 1; then
patch_apply dwrite-FontFallback/0001-dwrite-Test-IDWriteTextFormat-with-nonexistent-font.patch
patch_apply dwrite-FontFallback/0002-dwrite-Test-GetMetrics-with-custom-fontcollection.patch
patch_apply dwrite-FontFallback/0004-dwrite-Use-font-fallback-when-mapping-characters.patch
patch_apply dwrite-FontFallback/0005-dwrite-Use-MapCharacters-for-non-visual-characters.patch
patch_apply dwrite-FontFallback/0006-dwrite-Use-MapCharacters-for-dummy-line-metrics.patch
fi
# Patchset ntdll-DOS_Attributes
# |
# | This patchset fixes the following Wine bugs:
@@ -2374,19 +2364,6 @@ if test "$enable_ntdll_ProcessQuotaLimits" -eq 1; then
patch_apply ntdll-ProcessQuotaLimits/0001-ntdll-Add-fake-data-implementation-for-ProcessQuotaL.patch
fi
# Patchset ntdll-RtlFirstFreeAce
# |
# | This patchset fixes the following Wine bugs:
# | * [#50624] Waves Central 12.0.5 fails to start.
# |
# | Modified files:
# | * dlls/ntdll/sec.c
# |
if test "$enable_ntdll_RtlFirstFreeAce" -eq 1; then
patch_apply ntdll-RtlFirstFreeAce/0001-ntdll-Check-return-parameter-before-use.patch
patch_apply ntdll-RtlFirstFreeAce/0002-ntdll-RtlFirstFreeAce-only-return-FALSE-on-error.patch
fi
# Patchset ntdll-RtlQueryPackageIdentity
# |
# | Modified files:
@@ -2432,6 +2409,18 @@ if test "$enable_ntdll_ext4_case_folder" -eq 1; then
patch_apply ntdll-ext4-case-folder/0002-ntdll-server-Mark-drive_c-as-case-insensitive-when-c.patch
fi
# Patchset ntdll-wine-frames
# |
# | This patchset fixes the following Wine bugs:
# | * [#52396] ntdll: Don't use Wine frames during exception processing on x64.
# |
# | Modified files:
# | * dlls/ntdll/signal_x86_64.c
# |
if test "$enable_ntdll_wine_frames" -eq 1; then
patch_apply ntdll-wine-frames/0001-ntdll-Don-t-use-Wine-frames-during-exception-process.patch
fi
# Patchset nvcuda-CUDA_Support
# |
# | This patchset fixes the following Wine bugs:
@@ -2715,7 +2704,8 @@ fi
# | * [#33576] Support for stored file ACLs
# |
# | Modified files:
# | * dlls/advapi32/tests/security.c, server/change.c, server/file.c, server/file.h, server/object.c, server/object.h
# | * dlls/advapi32/tests/security.c, dlls/xactengine3_7/xact_dll.c, server/change.c, server/file.c, server/file.h,
# | server/object.c, server/object.h
# |
if test "$enable_server_Stored_ACLs" -eq 1; then
patch_apply server-Stored_ACLs/0001-server-Unify-the-storage-of-security-attributes-for-.patch
@@ -2948,7 +2938,7 @@ fi
# Patchset stdole32.idl-Typelib
# |
# | Modified files:
# | * dlls/stdole32.tlb/std_ole_v1.idl, include/stdole32.idl
# | * dlls/stdole32.tlb/std_ole_v1.idl, include/Makefile.in, include/stdole32.idl
# |
if test "$enable_stdole32_idl_Typelib" -eq 1; then
patch_apply stdole32.idl-Typelib/0001-include-Make-stdole32.idl-a-public-component.patch
@@ -3509,6 +3499,18 @@ if test "$enable_wined3d_WINED3DFMT_B8G8R8X8_UNORM" -eq 1; then
patch_apply wined3d-WINED3DFMT_B8G8R8X8_UNORM/0001-wined3d-Implement-WINED3DFMT_B8G8R8X8_UNORM-to-WINED.patch
fi
# Patchset wined3d-adapter_create_output
# |
# | This patchset fixes the following Wine bugs:
# | * [#53497] wined3d: Use wined3d_array_reserve() in wined3d_adapter_create_output()
# |
# | Modified files:
# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_private.h
# |
if test "$enable_wined3d_adapter_create_output" -eq 1; then
patch_apply wined3d-adapter_create_output/0001-wined3d-Use-wined3d_array_reserve-in-wined3d_adapter.patch
fi
# Patchset wined3d-bindless-texture
# |
# | This patchset fixes the following Wine bugs:
@@ -3821,6 +3823,18 @@ if test "$enable_winmm_mciSendCommandA" -eq 1; then
patch_apply winmm-mciSendCommandA/0001-winmm-Do-not-crash-in-Win-9X-mode-when-an-invalid-de.patch
fi
# Patchset winspool.drv-ClosePrinter
# |
# | This patchset fixes the following Wine bugs:
# | * [#53425] - Add more tracing to ClosePrinter
# |
# | Modified files:
# | * dlls/winspool.drv/info.c
# |
if test "$enable_winspool_drv_ClosePrinter" -eq 1; then
patch_apply winspool.drv-ClosePrinter/0001-winspool.drv-Add-more-tracing-to-ClosePrinter.patch
fi
# Patchset wintab32-improvements
# |
# | This patchset fixes the following Wine bugs:
@@ -3892,19 +3906,6 @@ if test "$enable_xactengine_initial" -eq 1; then
patch_apply xactengine-initial/0003-xactengine3_7-tests-Add-Global-settings-test.patch
fi
# Patchset xactengine3_7-Notification
# |
# | This patchset fixes the following Wine bugs:
# | * [#50546] xactengine3_7: Send Notification after the Wavebank is created.
# |
# | Modified files:
# | * dlls/xactengine3_7/xact_dll.c
# |
if test "$enable_xactengine3_7_Notification" -eq 1; then
patch_apply xactengine3_7-Notification/0001-xactengine3.7-Delay-Notication-for-WAVEBANKPREPARED.patch
patch_apply xactengine3_7-Notification/0002-xactengine3_7-Record-context-for-each-notications.patch
fi
# Patchset xactengine3_7-PrepareWave
# |
# | This patchset fixes the following Wine bugs:
@@ -3918,23 +3919,6 @@ if test "$enable_xactengine3_7_PrepareWave" -eq 1; then
patch_apply xactengine3_7-PrepareWave/0003-xactengine3_7-Implement-IXACT3Engine-PrepareInMemory.patch
fi
# Patchset xactengine3_7-callbacks
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * xactengine3_7-Notification
# |
# | This patchset fixes the following Wine bugs:
# | * [#49678] - xactengine: Implement callback notifications.
# |
# | Modified files:
# | * dlls/xactengine3_7/xact_dll.c, libs/faudio/include/FACT.h, libs/faudio/src/FACT.c, libs/faudio/src/FACT_internal.h
# |
if test "$enable_xactengine3_7_callbacks" -eq 1; then
patch_apply xactengine3_7-callbacks/0001-Add-support-for-private-contexts.patch
patch_apply xactengine3_7-callbacks/0002-xactengine3_7-notifications.patch
patch_apply xactengine3_7-callbacks/0004-xactengine3_7-Don-t-use-switch-with-constant-integer.patch
fi
if test "$enable_autoconf" -eq 1; then
if ! update_configure; then
abort "'autoreconf -f' failed."

View File

@@ -1,17 +1,30 @@
From 1a3f9029f375e5934ff2e87f83bd2cd5d546dd80 Mon Sep 17 00:00:00 2001
From 07fdb3ce4ca75bb568dfcb62708fde112b0b7b3c Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 17 Apr 2014 16:07:46 -0600
Subject: [PATCH] server: Unify the storage of security attributes for files
and directories. (try 7)
---
server/change.c | 45 ++++++---------------------------------------
server/file.c | 34 ++++++++++++++++++++++------------
server/file.h | 2 ++
3 files changed, 30 insertions(+), 51 deletions(-)
dlls/xactengine3_7/xact_dll.c | 1 +
server/change.c | 45 +++++------------------------------
server/file.c | 34 ++++++++++++++++----------
server/file.h | 2 ++
4 files changed, 31 insertions(+), 51 deletions(-)
diff --git a/dlls/xactengine3_7/xact_dll.c b/dlls/xactengine3_7/xact_dll.c
index f2737e0a9bd..23a961cb88e 100644
--- a/dlls/xactengine3_7/xact_dll.c
+++ b/dlls/xactengine3_7/xact_dll.c
@@ -414,6 +414,7 @@ static HRESULT WINAPI IXACT3SoundBankImpl_Prepare(IXACT3SoundBank *iface,
XACT3SoundBankImpl *This = impl_from_IXACT3SoundBank(iface);
XACT3CueImpl *cue;
FACTCue *fcue;
+
UINT ret;
HRESULT hr;
diff --git a/server/change.c b/server/change.c
index dd9e0bfee31..fc030159101 100644
index 5e9d94720a5..fc030159101 100644
--- a/server/change.c
+++ b/server/change.c
@@ -365,48 +365,15 @@ static int dir_set_sd( struct object *obj, const struct security_descriptor *sd,
@@ -47,7 +60,7 @@ index dd9e0bfee31..fc030159101 100644
- else if (obj->sd)
- owner = sd_get_owner( obj->sd );
- else
- owner = token_get_user( current->process->token );
- owner = token_get_owner( current->process->token );
-
- if (set_info & DACL_SECURITY_INFORMATION)
- {
@@ -70,7 +83,7 @@ index dd9e0bfee31..fc030159101 100644
static struct change_record *get_first_change_record( struct dir *dir )
diff --git a/server/file.c b/server/file.c
index 1fd0ac37df5..6032e228a9f 100644
index 1b4efb04bc5..291dd78cb60 100644
--- a/server/file.c
+++ b/server/file.c
@@ -499,18 +499,13 @@ mode_t sd_to_mode( const struct security_descriptor *sd, const struct sid *owner
@@ -133,7 +146,7 @@ index 1fd0ac37df5..6032e228a9f 100644
{
struct file *file = (struct file *)obj;
diff --git a/server/file.h b/server/file.h
index 358788096a0..38bcea802d6 100644
index b5b1e2a1077..5eb6065b7ac 100644
--- a/server/file.h
+++ b/server/file.h
@@ -168,6 +168,8 @@ extern void file_set_error(void);
@@ -146,5 +159,5 @@ index 358788096a0..38bcea802d6 100644
/* file mapping functions */
--
2.34.1
2.35.1

View File

@@ -1,4 +1,4 @@
From cd7fb7888c26a3ccbbc13404f671ed7525041e81 Mon Sep 17 00:00:00 2001
From b4f93b03b07b3c29f7cc3548431a487885c0f8c2 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 30 Mar 2015 12:50:21 +0200
Subject: [PATCH] server: Temporarily store the full security descriptor for
@@ -12,10 +12,10 @@ Subject: [PATCH] server: Temporarily store the full security descriptor for
4 files changed, 80 insertions(+), 47 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 7f0c248cd7a..f1ec827d683 100644
index 4b9e02af826..1e82353cfd0 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -3702,7 +3702,6 @@ static void test_CreateDirectoryA(void)
@@ -3774,7 +3774,6 @@ static void test_CreateDirectoryA(void)
ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %ld\n", error);
bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
ok(bret, "GetAclInformation failed\n");
@@ -23,7 +23,7 @@ index 7f0c248cd7a..f1ec827d683 100644
ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%ld != 0).\n",
acl_size.AceCount);
LocalFree(pSD);
@@ -3713,7 +3712,6 @@ static void test_CreateDirectoryA(void)
@@ -3785,7 +3784,6 @@ static void test_CreateDirectoryA(void)
ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %ld\n", error);
bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
ok(bret, "GetAclInformation failed\n");
@@ -31,7 +31,7 @@ index 7f0c248cd7a..f1ec827d683 100644
ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%ld != 0).\n",
acl_size.AceCount);
LocalFree(pSD);
@@ -3836,7 +3834,6 @@ static void test_CreateDirectoryA(void)
@@ -3908,7 +3906,6 @@ static void test_CreateDirectoryA(void)
ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error);
bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
ok(bret, "GetAclInformation failed\n");
@@ -39,7 +39,7 @@ index 7f0c248cd7a..f1ec827d683 100644
ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n",
acl_size.AceCount);
LocalFree(pSD);
@@ -4935,23 +4932,22 @@ static void test_GetSecurityInfo(void)
@@ -5024,23 +5021,22 @@ static void test_GetSecurityInfo(void)
bret = GetAce(pDacl, 0, (VOID **)&ace);
ok(bret, "Failed to get Current User ACE.\n");
bret = EqualSid(&ace->SidStart, user_sid);
@@ -96,7 +96,7 @@ index 5beedef4714..1ebda152ef9 100644
return &dir->obj;
diff --git a/server/file.c b/server/file.c
index d476f4b796e..e61de8283b8 100644
index 6bc0708f9b2..743493b8d37 100644
--- a/server/file.c
+++ b/server/file.c
@@ -187,7 +187,8 @@ struct file *create_file_for_fd_obj( struct fd *fd, unsigned int access, unsigne
@@ -167,7 +167,7 @@ index d476f4b796e..e61de8283b8 100644
- else if (obj->sd)
- owner = sd_get_owner( obj->sd );
- else
- owner = token_get_user( current->process->token );
- owner = token_get_owner( current->process->token );
+ /* calculate the new sd, save to a temporary variable before assigning */
+ new_sd = set_sd_from_token_internal( sd, obj->sd, set_info, current->process->token );
+ if (new_sd)
@@ -247,7 +247,7 @@ index d476f4b796e..e61de8283b8 100644
}
if (root_fd) release_object( root_fd );
diff --git a/server/file.h b/server/file.h
index abea05d33fd..81bcdc1c913 100644
index 4490287291e..65c28b3ac62 100644
--- a/server/file.h
+++ b/server/file.h
@@ -207,7 +207,8 @@ extern struct object *create_unix_device( struct object *root, const struct unic
@@ -261,5 +261,5 @@ index abea05d33fd..81bcdc1c913 100644
/* completion */
--
2.34.1
2.35.1

View File

@@ -1,4 +1,4 @@
From 96ac04f742980583ab06204facb5c9f838acb12c Mon Sep 17 00:00:00 2001
From 367dc97c7091a8dcca2c34073e03a94e0c0255e5 Mon Sep 17 00:00:00 2001
From: Mark Jansen <learn0more@gmail.com>
Date: Sat, 2 May 2015 13:47:30 +0200
Subject: [PATCH] shlwapi/tests: Add tests for AssocGetPerceivedType.
@@ -27,7 +27,7 @@ index b4f5b0cf8ce..0fb6e7fcbe8 100644
/*************************************************************************
diff --git a/dlls/shlwapi/tests/assoc.c b/dlls/shlwapi/tests/assoc.c
index 84eda1317bb..ffbcea9f028 100644
index 93e0d140518..a39cf49ea87 100644
--- a/dlls/shlwapi/tests/assoc.c
+++ b/dlls/shlwapi/tests/assoc.c
@@ -23,12 +23,13 @@
@@ -44,9 +44,9 @@ index 84eda1317bb..ffbcea9f028 100644
static HRESULT (WINAPI *pAssocCreate)(CLSID, REFIID, void **) = NULL;
+static HRESULT (WINAPI *pAssocGetPerceivedType)(LPCWSTR, PERCEIVED *, INT *, LPWSTR *) = NULL;
/* Every version of Windows with IE should have this association? */
static const WCHAR dotHtml[] = { '.','h','t','m','l',0 };
@@ -306,6 +307,282 @@ static void test_assoc_create(void)
/* Should every version of Windows with IE have .html association? */
@@ -301,6 +302,282 @@ static void test_assoc_create(void)
}
}
@@ -329,7 +329,7 @@ index 84eda1317bb..ffbcea9f028 100644
START_TEST(assoc)
{
HMODULE hshlwapi;
@@ -313,9 +590,11 @@ START_TEST(assoc)
@@ -308,9 +585,11 @@ START_TEST(assoc)
pAssocQueryStringA = (void*)GetProcAddress(hshlwapi, "AssocQueryStringA");
pAssocQueryStringW = (void*)GetProcAddress(hshlwapi, "AssocQueryStringW");
pAssocCreate = (void*)GetProcAddress(hshlwapi, "AssocCreate");

View File

@@ -1,4 +1,4 @@
From 1d1a3c94906ddd6501626ab5870735ab6ec6243b Mon Sep 17 00:00:00 2001
From 76236454bbff9d8b83448f5902e8ee55f0016343 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 22 Jan 2016 17:40:43 +0800
Subject: [PATCH] include: Make stdole32.idl a public component.
@@ -6,8 +6,9 @@ Subject: [PATCH] include: Make stdole32.idl a public component.
This makes it possible to import stdole32.tlb from other .idl files.
---
dlls/stdole32.tlb/std_ole_v1.idl | 119 +------------------------
include/Makefile.in | 1 +
include/stdole32.idl | 143 +++++++++++++++++++++++++++++++
2 files changed, 144 insertions(+), 118 deletions(-)
3 files changed, 145 insertions(+), 118 deletions(-)
create mode 100644 include/stdole32.idl
diff --git a/dlls/stdole32.tlb/std_ole_v1.idl b/dlls/stdole32.tlb/std_ole_v1.idl
@@ -137,6 +138,18 @@ index 359a81062ae..de053e98227 100644
- }
-};
+#include "stdole32.idl"
diff --git a/include/Makefile.in b/include/Makefile.in
index 384847f0d31..6e168669733 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -707,6 +707,7 @@ SOURCES = \
srrestoreptapi.h \
sspi.h \
stamp-h.in \
+ stdole32.idl \
stgprop.h \
sti.h \
storage.h \
diff --git a/include/stdole32.idl b/include/stdole32.idl
new file mode 100644
index 00000000000..107cee84591
@@ -287,5 +300,5 @@ index 00000000000..107cee84591
+ }
+};
--
2.33.0
2.35.1

View File

@@ -1,4 +1,4 @@
From f5f76efccaf16896cfaf455c3f8e5383675a5b79 Mon Sep 17 00:00:00 2001
From fccb5f82e6bf351fdf815f7a77f0c6be4ef1f8a4 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Wed, 15 Jun 2016 14:57:10 +0800
Subject: [PATCH] user32: Do not initialize dialog info for every window passed
@@ -18,11 +18,11 @@ has been forced, so passing TRUE to DIALOG_get_info() is redundant there.
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/user32/defdlg.c b/dlls/user32/defdlg.c
index 3c7a8a78855..b7d30a7f1cf 100644
index 238951aa21c..ad2b0fe9fa9 100644
--- a/dlls/user32/defdlg.c
+++ b/dlls/user32/defdlg.c
@@ -361,7 +361,7 @@ static LRESULT USER_DefDlgProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
LRESULT result = 0;
@@ -325,7 +325,7 @@ static LRESULT USER_DefDlgProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
LRESULT result;
/* Perform DIALOGINFO initialization if not done */
- if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return 0;
@@ -30,17 +30,17 @@ index 3c7a8a78855..b7d30a7f1cf 100644
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, 0 );
@@ -415,7 +415,7 @@ static LRESULT USER_DefDlgProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
LRESULT result = 0;
@@ -377,7 +377,7 @@ static LRESULT USER_DefDlgProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
LRESULT result;
/* Perform DIALOGINFO initialization if not done */
- if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return 0;
+ if (!(dlgInfo = DIALOG_get_info( hwnd, msg == WM_NCCREATE ))) return 0;
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, 0 );
result = WINPROC_CallDlgProcW( hwnd, msg, wParam, lParam );
diff --git a/dlls/user32/dialog.c b/dlls/user32/dialog.c
index a3efd5b6742..a226c764c49 100644
index 5c74de65ac0..5c74d00973d 100644
--- a/dlls/user32/dialog.c
+++ b/dlls/user32/dialog.c
@@ -212,7 +212,7 @@ static const WORD *DIALOG_GetControl32( const WORD *p, DLG_CONTROL_INFO *info,

View File

@@ -1,4 +1,4 @@
From e918b15543bd0fef3005fdd931e2f3a69b5f78c2 Mon Sep 17 00:00:00 2001
From bfd714f789759de6fda3c8d302f70154213b7c5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Wed, 24 Mar 2021 23:29:28 +0100
Subject: [PATCH] user32: Set SEND_HWMSG_RAWINPUT flags only when RAWINPUT is
@@ -20,7 +20,7 @@ __wine_send_input with INPUT_HARDWARE input type and a rawinput.
9 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c
index ff2b570957e..85004c13e10 100644
index c57a987cd14..6f503ddd6d0 100644
--- a/dlls/win32u/input.c
+++ b/dlls/win32u/input.c
@@ -131,6 +131,7 @@ UINT WINAPI NtUserSendInput( UINT count, INPUT *inputs, int size )
@@ -39,12 +39,12 @@ index ff2b570957e..85004c13e10 100644
+ status = send_hardware_message( 0, &input, &rawinput, SEND_HWMSG_INJECTED );
break;
case INPUT_HARDWARE:
SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
RtlSetLastWin32Error( ERROR_CALL_NOT_IMPLEMENTED );
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
index db8b893f805..54990243bf1 100644
index 5312be370a9..baa9112bc8e 100644
--- a/dlls/win32u/message.c
+++ b/dlls/win32u/message.c
@@ -2404,7 +2404,7 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, const RAWINPUT *r
@@ -2441,7 +2441,7 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, const RAWINPUT *r
req->input.mouse.flags = input->mi.dwFlags;
req->input.mouse.time = input->mi.time;
req->input.mouse.info = input->mi.dwExtraInfo;
@@ -53,7 +53,7 @@ index db8b893f805..54990243bf1 100644
break;
case INPUT_KEYBOARD:
req->input.kbd.vkey = input->ki.wVk;
@@ -2412,7 +2412,7 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, const RAWINPUT *r
@@ -2449,7 +2449,7 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, const RAWINPUT *r
req->input.kbd.flags = input->ki.dwFlags;
req->input.kbd.time = input->ki.time;
req->input.kbd.info = input->ki.dwExtraInfo;
@@ -63,10 +63,10 @@ index db8b893f805..54990243bf1 100644
case INPUT_HARDWARE:
req->input.hw.msg = input->hi.uMsg;
diff --git a/dlls/wineandroid.drv/keyboard.c b/dlls/wineandroid.drv/keyboard.c
index 20c6879de87..3352931bad2 100644
index 82035cc14dd..3a6f8771860 100644
--- a/dlls/wineandroid.drv/keyboard.c
+++ b/dlls/wineandroid.drv/keyboard.c
@@ -671,6 +671,7 @@ static BOOL get_async_key_state( BYTE state[256] )
@@ -674,6 +674,7 @@ static BOOL get_async_key_state( BYTE state[256] )
static void send_keyboard_input( HWND hwnd, WORD vkey, WORD scan, DWORD flags )
{
@@ -74,7 +74,7 @@ index 20c6879de87..3352931bad2 100644
INPUT input;
input.type = INPUT_KEYBOARD;
@@ -680,7 +681,7 @@ static void send_keyboard_input( HWND hwnd, WORD vkey, WORD scan, DWORD flags )
@@ -683,7 +684,7 @@ static void send_keyboard_input( HWND hwnd, WORD vkey, WORD scan, DWORD flags )
input.u.ki.time = 0;
input.u.ki.dwExtraInfo = 0;
@@ -84,7 +84,7 @@ index 20c6879de87..3352931bad2 100644
/***********************************************************************
diff --git a/dlls/wineandroid.drv/window.c b/dlls/wineandroid.drv/window.c
index 5143990836f..d91a5c4d3ff 100644
index 9406236a405..1b9b8e8f22f 100644
--- a/dlls/wineandroid.drv/window.c
+++ b/dlls/wineandroid.drv/window.c
@@ -424,6 +424,7 @@ static int process_events( DWORD mask )
@@ -147,7 +147,7 @@ index fd94591a2b8..fe96b077a55 100644
}
}
diff --git a/dlls/winemac.drv/keyboard.c b/dlls/winemac.drv/keyboard.c
index 824addad78b..5859aa8a4eb 100644
index b43ea0b5dc7..539502d79d9 100644
--- a/dlls/winemac.drv/keyboard.c
+++ b/dlls/winemac.drv/keyboard.c
@@ -990,6 +990,7 @@ void macdrv_compute_keyboard_layout(struct macdrv_thread_data *thread_data)
@@ -189,7 +189,7 @@ index 3f79dda2073..b1d50f39ac8 100644
diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c
index 3029cb4c5eb..a12ee3d54dd 100644
index 51644e3b5ba..2e4f3f7edcb 100644
--- a/dlls/winex11.drv/keyboard.c
+++ b/dlls/winex11.drv/keyboard.c
@@ -1134,6 +1134,7 @@ static WORD EVENT_event_to_vkey( XIC xic, XKeyEvent *e)

Some files were not shown because too many files have changed in this diff Show More