OK, I just submitted an updated change. I spent a lot of time yesterday and today getting the logic right, testing various /O options, side by side with Windows. This looks right to me. I did abstain from cleaning up the use of the global variables. This change at least does not add any. Cleaning those up will be an exercise for (another person at) another time. Let me know what you think of the change.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7131#note_93212
The Windows Bluetooth stack uses private IOCTLs in order to set the [discoverability](https://learn.microsoft.com/en-us/windows/win32/api/blueto… and [connectability](https://learn.microsoft.com/en-us/windows/win32/api/bluetoo… status of a local radio, and to start/stop the device inquiry procedure. This MR introduces 3 wine-specific IOCTL codes for the same purposes, as most applications seem to the Win32 API itself for these operations:
* IOCTL_WINBTH_RADIO_SET_FLAG
* IOCTL_WINEBTH_RADIO_START_DISCOVERY
* IOCTL_WINEBTH_RADIO_STOP_DISCOVERY
--
v5: winebth.sys: Call bluez_watcher_close as part of bluetooth_shutdown.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_STOP_DISCOVERY.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_START_DISCOVERY.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_SET_FLAG.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7216
@piotr The build-linux stage is still complaining about email, and I can't figure out why. I checked, and all my commits where done with the config set correctly.
I merged changes from wine/master, so, now, everything is up to date.
I'm wondering if I should close this MR and create a new one. Can you make an advice?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7109#note_93189
This MR intends to add the complex numbers related functions:
* cimag
* _FCbuild
* crealf
* cimagf
These functions are defined in dlls/msvcr120/math.c and mapped in dlls/msvcr120/msvcr120.spec and dlls/ucrbase/ucrbase.spec.
The related tests were added in dlls/mscr120/tests/msvcr120.c and result were checked.
--
v6: fixed msvcr120_app spec
Revert "fixed msvcr120_app spec" because of missing user info
winex11: Attach currently active Vulkan onscreen surface in vulkan_surface_update_offscreen().
win32u: Don't invalidate existing Vulkan surface when a new one is created for window.
win32u: Check for NULL hwnd before calling vulkan_surface_presented() driver callback.
win32u: Nullify surface hwnd when detaching Vulkan surface.
winex11: Allow Withdrawn requests to override Iconic <-> Normal transitions.
include: Add signbit declarations for c++.
dinput: Clamp FFB effect report value to the field range.
dinput/tests: Add more tests for force feedback.
win32u: Implement NtUserPostQuitMessage().
win32u: Implement NtUserMessageBeep().
win32u: Implement NtUserEnumClipboardFormats().
win32u: Implement NtUserCreateMenu() and NtUserCreatePopupMenu().
win32u: Implement NtUserGetThreadState().
win32u: Implement NtUserReleaseCapture().
win32u: Implement NtUserDestroyCaret().
hhctrl: Use wide character string literals.
cryptui: Use wide character string literals.
ntdll: Fix the return value of NtDelayExecution.
ntdll/tests: Add tests for NtDelayExecution and Sleep(Ex).
sapi: Remove some unnecessary traces.
sapi: Implement IStream methods for SpStream.
sapi: Implement ISpStream::GetFormat.
sapi: Implement ISpStream::Close.
sapi: Implement ISpStream::Set/GetBaseStream.
sapi: Adding missing interfaces for SpStream.
include: Use flexible array-member in some structure declarations.
include: Add a couple of definitions to mscvpdb.h.
include: Add some new definitions for dbghelp.h.
win32u: Use the first vertical alternates table regardless of script.
gdi32/tests: Add tests for script-independent vertical glyph lookup.
wineps: Use simple strings for glyph names.
wineps: Remove some unused AFM values.
wineps: Don't parse the glyph name or encoding when loading AFM files.
wineps: Don't store the glyph name or encoding for individual glyphs.
user32/tests: Add tests for WM_COPYDATA.
win32u: Allocate a separate user buffer when packing a large WM_COPYDATA message for user32.
wintypes: Stub of IRandomAccessStreamReferenceStatics interface.
wintypes: Stub of Windows.Storage.Streams.RandomAccessStreamReference runtimeclass.
wintypes: Return S_OK from data_writer_activation_factory_ActivateInstance().
wintypes: Stub of Windows.Storage.Streams.DataWriter runtimeclass.
wintypes: Reimplement Windows.Foundation.Metadata.{ApiInformation,PropertyValue} separately.
wintypes/tests: Add interface tests.
include: Don't import .idl when DO_NO_IMPORTS is defined.
shlwapi: Use wide character string literals.
winhlp32: Use wide character string literals.
tapi32: Use wide character string literals.
hhctrl: Fix spelling of "local" in OnTopicChange.
ntdll/tests: Add RtlRealSuccessor() tests.
ntdll: Implement RtlRealSuccessor().
ntdll/tests: Add RtlRealPredecessor() tests.
ntdll: Implement RtlRealPredecessor().
wine.inf: Pass command line arguments to msiexec.
wined3d: Add Nvidia RTX40xx series desktop models data.
wined3d: Add Nvidia RTX30xx series desktop models data.
prntvpt: Implement writing PageImageableSize capabilities.
prntvpt: Implement writing PageMediaSize capabilities.
wined3d/spirv: Implement alpha test.
wined3d: Feed alpha ref through a push constant buffer.
wined3d/glsl: Move legacy alpha test to shader_glsl_apply_draw_state().
wined3d/spirv: Implement flat shading.
wined3d: Use ps_compile_args in shader_spirv_compile_arguments.
wined3d: Bind the right push constant buffers when FFP is toggled.
ole32: Set property storage clsid on creation.
ole32: Fix IPropertyStorage::ReadMultiple return value when some properties are missing.
ole32: Add support for reading VT_R4 property.
secur32: Update max token size for Negotiate.
kerberos: Update sizes to match modern implementations.
propsys: Remove FIXME() from PropVariantChangeType().
kernel32/tests: Match the value in the debug message the test condition.
crypt32: Don't assert in Context_Release() on invalid refcount.
crypt32/tests: Add a test for deleting and adding certs during enumeration.
crypt32: Only remove cert from mem store list when deleting it.
crypt32: Release existing cert context in add_cert_to_store().
crypt32: Don't try to release zero-refcount context in MemStore_addContext().
crypt32: Factor out memstore_free_context() function.
crypt32: Release cert context in CertDeleteCertificateFromStore().
msvcp140: Fix field order in _Mtx_t.
msvcp140/tests: Add more tests for _Mtx_t.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7109
On Wed Jan 29 09:48:53 2025 +0000, Joe Souza wrote:
> After spending some time looking at the existing code, I find that it's
> not that far off from working properly. It correctly allows for
> multiple options to be specified on the command line, and correctly
> handles the exclusive options (i.e. of /N, /E, /S, /D, it correctly
> allows only one of these to take effect). What it gets wrong is that in
> Windows, the first of the exclusive options encountered takes
> precedence, where in current Wine code, it's the last exclusive option
> encountered that takes precedence. Current wine code also does not sort
> directory names for /G.
> All that in mind, the code does not need to be changed to allow multiple
> sort options to be passed to the qsort algorithm. We could clean up the
> use of global variables a bit, sort the directory names for /G, and fix
> the code such that /O by itself is implied /O:NE (which my prior
> proposed change did).
agreed
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7131#note_93185