Commit graph

160048 commits

Author SHA1 Message Date
Michael Stefaniuc c2d800f1db server: Use ARRAY_SIZE instead of open coding it. 2022-10-25 10:58:49 +02:00
Michael Stefaniuc 03edb068de kernel32/tests: Use ARRAY_SIZE instead of open coding it. 2022-10-25 10:58:49 +02:00
Michael Stefaniuc 90b6288f54 riched20/tests: Use ARRAY_SIZE instead of open coding it. 2022-10-25 10:58:49 +02:00
Michael Stefaniuc f5c573b199 ntdll: Use ARRAY_SIZE instead of open coding it. 2022-10-25 10:58:49 +02:00
Nikolay Sivov e6069c2530 d2d1: Test device context type in BindDC().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-10-25 10:58:18 +02:00
Rémi Bernon ffbe1e6229 win32u: Write display modes to registry as binary blobs.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53484
2022-10-25 10:57:33 +02:00
Joel Holdsworth 65797763b3 ntdll: Add FSCTL_GET_REPARSE_POINT semi-stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39627
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53439
Signed-off-by: Joel Holdsworth <joel@airwebreathe.org.uk>
2022-10-24 21:37:45 +02:00
Joel Holdsworth ed8161883a ntdll/tests: Add initial tests for reparse points. 2022-10-24 21:37:20 +02:00
Alistair Leslie-Hughes a67b9e7961 sapi: Add Voice enum tests. 2022-10-24 21:19:44 +02:00
Alistair Leslie-Hughes c651cf190c sapi: Add default voice registry key. 2022-10-24 21:19:42 +02:00
Alistair Leslie-Hughes 490f8aaae0 sapi: Implement ISpObjectTokenEnumBuilder Next. 2022-10-24 21:19:40 +02:00
Alistair Leslie-Hughes ca3ffa655d sapi: Implement ISpObjectTokenEnumBuilder Item. 2022-10-24 21:19:39 +02:00
Alistair Leslie-Hughes ff1c963366 sapi: Store registry key to Enum builder. 2022-10-24 21:19:37 +02:00
Alistair Leslie-Hughes 2e9d351526 sapi: Move token structure before EnumTokens function. 2022-10-24 21:19:34 +02:00
Eric Pouech 5a8350120c conhost/tests: Fix some tests on input sequences.
Correctly handling keyboards (French, German...) which report right-alt
as ctrl+alt in VkKeyScan().

Splitting escape_test input tests into pure virtual keys on one hand,
and modified char key on the other.
Generating the virtual codes for the later instead of hardcoding the
results (bound to generic US keyboard).

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52980
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-24 18:50:36 +02:00
Eric Pouech bdad6f2c85 conhost/tests: Fix tests for some keyboard layouts.
Some keyboards (French, German and some others) report the right alt key
(which is some cases the right-shift one) as ctrl+alt.
Add proper handling for ctrl+alt return from VkKeyScan().

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52980
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-24 18:50:29 +02:00
Bartosz Kosiorek 5b425baf92 msvcrt: Add _ismbstrail_l implementation. 2022-10-24 18:49:50 +02:00
Bartosz Kosiorek 80c97dc38b msvcrt: Add _ismbslead_l implementation. 2022-10-24 18:49:46 +02:00
Bartosz Kosiorek 927a9a5a04 msvcrt: Fix error handling for _mbscmp_l. 2022-10-24 18:49:46 +02:00
Bartosz Kosiorek eee55c3588 msvcrt: Add _mbclen_l implementation. 2022-10-24 18:49:42 +02:00
Bartosz Kosiorek beb7f9fa2d msvcrt: Add _mbsicmp_l implementation. 2022-10-24 18:49:38 +02:00
Bartosz Kosiorek fce3c3cc09 msvcrt: Add _mbschr_l implementation. 2022-10-24 18:49:34 +02:00
Gabriel Ivăncescu 0c0efd3f63 mshtml: Move the IHTMLDocument7 interface out of basedoc.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-10-24 18:48:55 +02:00
Gabriel Ivăncescu 070cd2e82a mshtml: Move the IHTMLDocument6 interface out of basedoc.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-10-24 18:48:55 +02:00
Gabriel Ivăncescu 3b14acbd7f mshtml: Move the IHTMLDocument5 interface out of basedoc.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-10-24 18:48:55 +02:00
Gabriel Ivăncescu 527c2b286d mshtml: Move the IHTMLDocument4 interface out of basedoc.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-10-24 18:48:55 +02:00
Gabriel Ivăncescu 833a7a6202 mshtml: Move the IHTMLDocument3 interface out of basedoc.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-10-24 18:48:55 +02:00
Gabriel Ivăncescu eaaae51695 mshtml: Move the IHTMLDocument2 interface out of basedoc.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-10-24 18:48:55 +02:00
Gabriel Ivăncescu 0759e86527 mshtml: Move the remaining non-IHTMLDocument* interfaces out of basedoc.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-10-24 18:48:55 +02:00
Gabriel Ivăncescu c72686aec8 mshtml: Move HTMLDocumentObj implementation to oleobj.c.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-10-24 18:48:55 +02:00
Martin Storsjö 0cb2798125 win32u: Make sure that the stack buffer in set_multi_value_key is large enough.
This fixes stack overflows since
edecac8afd.

Signed-off-by: Martin Storsjö <martin@martin.st>
2022-10-24 18:48:39 +02:00
Ziqing Hui 7486c4061e win32u: Add font links for MS Mincho. 2022-10-24 18:43:13 +02:00
Ziqing Hui fa411158df win32u: Add font links for Meiryo. 2022-10-24 18:43:13 +02:00
Ziqing Hui 802c122661 win32u: Add font links for Yu Gothic UI. 2022-10-24 18:43:13 +02:00
Alexandre Julliard 25735da0de makedep: Make the extra C flags architecture-generic. 2022-10-24 16:19:47 +02:00
Alexandre Julliard 815e766d9d makedep: Make the delay load flags architecture-generic. 2022-10-24 16:19:47 +02:00
Alexandre Julliard 55e2335f64 makedep: Make the debug flags architecture-generic. 2022-10-24 16:19:47 +02:00
Alexandre Julliard afc286fb51 makedep: Make the target flags architecture-generic. 2022-10-24 16:19:47 +02:00
Alexandre Julliard 24d791e2e9 makedep: Pass a generic architecture value instead of the is_cross flag to various helpers. 2022-10-24 16:19:47 +02:00
Paul Gofman 6d9dd6e488 winmm: Use a global timeout for refreshing joystick devices. 2022-10-24 11:18:45 +02:00
Alex Henrie d6facdc0b8 shell32: Remove unused function strdupW. 2022-10-24 11:18:37 +02:00
Alex Henrie 0a66cfa9a2 shell32: Don't use strdupW or heap_* functions in shelllink.c. 2022-10-24 11:18:37 +02:00
Alex Henrie e3a74a9178 shell32: Don't use strdupW or heap_* functions in shelldispatch.c. 2022-10-24 11:18:37 +02:00
Alex Henrie e8aba9c412 shell32: Don't use strdupW or heap_* functions in shellole.c. 2022-10-24 11:18:37 +02:00
Jinoh Kang 72c0c88f2a gdiplus: Replace GpImage's busy flag with SRWLOCK.
Today, the image_unlock() helper function has a data race due to
non-atomic write to GpImage's 'busy' flag which is accessible by other
threads.  Also, it lacks a release fence, which means that other threads
can observe the unlocked (busy = 0) state too early when the current
thread unlocks the image; specifically, the write to the 'busy' field of
the GpImage can be reordered before the last read/write to any other
fields of the same GpImage.

Fix this by replacing the 'busy' field of GpImage with SRWLOCK.
2022-10-24 11:17:39 +02:00
Jinoh Kang 7abca9742a gdiplus: Avoid copying GpImage's busy flag in select_frame_wic().
The 'busy' field in GpImage is used as an atomic variable.  The C11
standard (§5.1.2.4, paragraph 25) states that two conflicting actions to
a memory location shall be both atomic operations, or otherwise properly
synchronized; otherwise, it constitutes a data race.

However, select_frame_wic() performs a non-atomic access to the 'busy'
field on a GpImage that is potentially accessible by other threads.
This happens when select_frame_wic() copies new_image to the old image
object.  Although it does attempt to preserve the value of the 'busy'
field by setting new_image->busy = image->busy first, thereby
effectively assigning an identical value to the field, it is unclear
that this does not actually constitute a theoretical, if not practical,
data race.  This also prevents replacing the busy flag with a mutex or
other synchronization primitives.

Therefore, skip the 'busy' field when copying fields from the new image
to the original image object.
2022-10-24 11:17:37 +02:00
Jinoh Kang d6b4321125 gdiplus: Avoid recursively locking image in GdipImageRotateFlip.
GdipImageRotateFlip() calls GdipBitmapLockBits() while holding the image
lock, resulting in a recursive lock.

Since GdipImageRotateFlip() uses GdipBitmapLockBits() only to obtain
Scan0 and Stride, replace them with equivalent fields from GpBitmap
itself.
2022-10-24 11:17:35 +02:00
Esme Povirk 8e73b48f34 win32u: Reject invalid length in SetWindowPlacement. 2022-10-24 11:16:06 +02:00
Esme Povirk f91eb0a9e0 user32: Test Get/SetWindowPlacement with invalid length. 2022-10-24 11:16:06 +02:00
Paul Gofman c698ba86d4 msvcrt: Display message box in abort() for specific CRT versions only. 2022-10-24 11:13:39 +02:00