WineHQ

Wine Announcement

The Wine development release 7.20 is now available.

What's new in this release:
  - Mono engine updated to version 7.4.0.
  - Font linking improvements.
  - A number of fixes for exception unwinding.
  - Support for dumping EMF spool files in WineDump.
  - Various bug fixes.

The source is available at:

  https://dl.winehq.org/wine/source/7.x/wine-7.20.tar.xz

Binary packages for various distributions will be available from:

  https://www.winehq.org/download

You will find documentation on https://www.winehq.org/documentation

You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

----------------------------------------------------------------

Bugs fixed in 7.20 (total 29):

 - #15679  cygwin symlinks not working in wine
 - #29998  Crysis 2 (>1.0) huge graphical issues after loading a savegame
 - #38594  dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols (Visual C++ 2013 .pdb's)
 - #38604  winedbg: internal crash/hangs when running ieframe/tests/ie.c with pdb debug symbols
 - #44814  cygwin's bsdtar.exe needs a better ntdll.NtQueryEaFile stub
 - #46822  Edit control in ADL search dialog gets initially not drawn in DC++ 0.868, regression
 - #47595  Tequila City of Heroes Launcher - expect_no_runtimes Process exited with a Mono runtime loaded.
 - #48197  Autonauts in steam under wine has a memory leak.
 - #50573  division by zero in wineconsole when hovering mouse over
 - #51529  CloseHandle(INVALID_HANDLE_VALUE) returns FALSE, GetLastError is ERROR_INVALID_HANDLE
 - #51775  Axiom Verge 2 crashes on startup due to incomplete sapi implementation
 - #52545  ACE rights parser should allow octal and decimal formats
 - #52648  conhost.exe:tty test_read_console_control() fails in Hindi and Portuguese
 - #52790  winedbg 'bt all' filled with dbghelp_dwarf RULE_VAL_EXPRESSION fixmes
 - #53437  ZOSI Cloud crashes on start
 - #53455  shell32:recyclebin - test_query_recyclebin() gets unexpected recyclebin size in Wine
 - #53521  imm32:imm32 - test_default_ime_window_creation() fails on Windows 10 21H1+
 - #53552  Line width calculation failure in WineMono.Tests.System.Windows.Media.TextFormatting.TextFormatterTest.NewlineCharacterCollapsibleTest
 - #53608  Visual Novel Shin Koihime † Eiyuutan 4 plays opening movie in separate window
 - #53669  Problems with two separate MetaTrader4 programs on the same Wine desktop
 - #53679  The 64-bit ntdll:env fails on Windows 7
 - #53724  Obduction fails in a random way out of a handful of possible ways
 - #53770  Wrong locale data for Chinese locales for LOCALE_SNATIVEDIGITS class
 - #53800  CRYPT_GetBuiltinDecoder Unsupported decoder for lpszStructType 1.3.6.1.4.1.311.2.1.4
 - #53813  Let's encrypt certificate validation fails
 - #53821  winbase.h: ReOpenFile declaration missing (and not available in any other header)
 - #53829  Font links for MingLiU broken 32-bit wineprefixes
 - #53832  wbemprox: where-clause seems to be case-sensitive
 - #53838  Non-PE builds fail after "makedep: Make the installation directories architecture-generic."

----------------------------------------------------------------

Changes since 7.19:

Akihiro Sagawa (8):
      quartz/tests: Add a background brush test for video renderer.
      quartz: Fix video flickering.
      shell32/tests: Add DBCS file name tests for DragQueryFile.
      shell32/tests: Add more DragQueryFile tests.
      shell32: Merge ANSI part of DROPFILES handler into DragQueryFileW.
      shell32: Reimplement DragQueryFileA to rely on its Unicode version.
      shell32: Returns a number of copied characters in DropQueryFileW.
      shell32: Returns a number of copied bytes in DropQueryFileA.

Alex Henrie (14):
      include: Add TOOLINFO[AW].
      shell32: Move strndupW to dde.c.
      shell32: Use standard C functions for memory allocation in dde.c.
      shell32: Introduce combine_path helper for DDE.
      shell32: Sanitize Program Manager icon and group names.
      include: Add WSANO_ADDRESS to winsock2.h.
      include: Move strto[iu]max(_l) from stdlib.h to inttypes.h.
      uuid: Add devguid.h.
      msvcrt: Change return type of _putenv_s to errno_t.
      include: Add _putenv_s.
      shell32: Don't use strdupW or heap_* functions in shellole.c.
      shell32: Don't use strdupW or heap_* functions in shelldispatch.c.
      shell32: Don't use strdupW or heap_* functions in shelllink.c.
      shell32: Remove unused function strdupW.

Alexandre Julliard (21):
      nls: Update locales that have been added in recent Windows versions.
      nls: Allow specifying a locale's native digits.
      makedep: Pass a generic architecture value instead of the is_cross flag to various helpers.
      makedep: Make the target flags architecture-generic.
      makedep: Make the debug flags architecture-generic.
      makedep: Make the delay load flags architecture-generic.
      makedep: Make the extra C flags architecture-generic.
      makedep: Make the installation directories architecture-generic.
      makedep: Make the object files architecture-generic.
      makedep: Make the import library files architecture-generic.
      makedep: Make the makefile targets architecture-generic.
      makedep: Add support for architecture-specific sources.
      makedep: Add support for architecture-specific IDL objects.
      makedep: Make the resource files architecture-generic.
      makedep: Add a helper function to build a source file for one architecture.
      makedep: Add a helper function to get a cross-compilation make variable.
      makedep: Add a helper function to build an arch-specific module name.
      makedep: Make the disabled flag architecture-generic.
      makefiles: Store PE objects in subdirectories in the build tree.
      configure: Remove no longer needed check for dlltool.
      makedep: Remove arch directories on distclean.

Alistair Leslie-Hughes (8):
      crypt32: Only report Unimplemented decoder when not found in external dll.
      sapi: Implement ISpObjectToken OpenKey.
      sapi: Move token structure before EnumTokens function.
      sapi: Store registry key to Enum builder.
      sapi: Implement ISpObjectTokenEnumBuilder Item.
      sapi: Implement ISpObjectTokenEnumBuilder Next.
      sapi: Add default voice registry key.
      sapi: Add Voice enum tests.

Anton Baskanov (6):
      quartz/tests: Add tests for MPEG layer-3 decoder interfaces.
      quartz/tests: Add tests for MPEG layer-3 decoder aggregation.
      quartz/tests: Test MPEG layer-3 decoder unconnected filter state.
      quartz/tests: Add tests for IBaseFilter_EnumPins() on MPEG layer-3 decoder.
      quartz/tests: Add tests for IBaseFilter_FindPin() on MPEG layer-3 decoder.
      quartz/tests: Add tests for querying MPEG layer-3 decoder pin info.

Bartosz Kosiorek (26):
      msvcrt: Add _mbctolower_l partial implementation.
      msvcrt: Add _mbctoupper_l partial implementation.
      msvcrt: Add _mbslwr_s_l partial implementation.
      msvcrt: Add _mbsupr_s_l partial implementation.
      msvcrt: Add _mbschr_l implementation.
      msvcrt: Add _mbsicmp_l implementation.
      msvcrt: Add _mbclen_l implementation.
      msvcrt: Fix error handling for _mbscmp_l.
      msvcrt: Add _ismbslead_l implementation.
      msvcrt: Add _ismbstrail_l implementation.
      msvcrt: Add _ismbcsymbol_l implementation.
      msvcrt: Add _mbsinc_l implementation.
      msvcrt: Fix error handling for strcat_s.
      msvcrt: Fix error handling for strcpy_s.
      gdiplus: Add GdipSetPenCompoundArray implementation.
      gdiplus: Add GdipGetPenCompoundCount implementation.
      gdiplus: Add GdipGetPenCompoundArray implementation.
      msvcrt: Add _ismbchira_l implementation.
      msvcrt: Add _ismbckata_l implementation.
      msvcrt: Add _mbbtombc_l implementation.
      ucrtbase: Export more _o_* functions.
      msvcrt: Add _mbcjistojms_l implementation.
      msvcrt: Add _mbcjmstojis_l implementation.
      msvcrt: Add _mbctombb_l implementation.
      msvcrt: Add _mbctohira_l implementation.
      msvcrt: Add _mbctokata_l implementation.

Brendan Shanks (5):
      mmdevapi: Set the name of internal threads.
      xinput1_3: Set thread name for hid_update_thread_proc.
      sechost: Set the name of internal threads.
      ntdll: Set native thread names on Linux when set with SetThreadDescription().
      server: Only require THREAD_SET_LIMITED_INFORMATION access to set thread description.

Chilung Chan (1):
      po: Update Traditional Chinese translation.

Connor McAdams (15):
      uiautomationcore: Add support for multiple providers on a single HUIANODE.
      uiautomationcore: Determine provider type for nested node providers.
      uiautomationcore: Add support for getting HWND providers to UiaNodeFromProvider().
      uiautomationcore: Add support for getting HWND providers to uia_node_from_lresult().
      uiautomationcore/tests: Ignore UIA_NativeWindowHandlePropertyId in certain tests.
      uiautomationcore: Implement UiaRegisterProviderCallback.
      uiautomationcore: Add UiaGetUpdatedCache stub.
      uiautomationcore: Implement UiaGetUpdatedCache.
      uiautomationcore: Add basic UiaCondition support to UiaGetUpdatedCache.
      uiautomationcore/tests: Add tests for boolean UIA ConditionTypes.
      uiautomationcore/tests: Add ConditionType_Property tests.
      uiautomationcore: Add support for ConditionType_Not conditions.
      uiautomationcore: Add support for ConditionType_{And/Or} conditions.
      uiautomationcore: Implement ConditionType_Property conditional for UIAutomationType_Bool properties.
      uiautomationcore: Add support for UIAutomationType_IntArray property comparisons.

Daniel Lehman (4):
      kernel32/tests: Add tests for CancelSynchronousIo.
      ntdll: Add NtCancelSynchronousIoFile stub.
      ntdll: Implement NtCancelSynchronousIoFile.
      kernelbase: Call NtCancelSynchronousIoFile in CancelSynchronousIo.

David Kahurani (1):
      xmllite/writer: Null terminate duplicated strings.

Eric Pouech (11):
      dbghelp: Rework dwarf2_get_ranges() helper.
      dbghelp: No longer call read_range() for inline site (dwarf).
      dbghelp: Allow symt_block to be defined over non contiguous chunks.
      dbghelp: Silence some FIXMEs.
      oleaut32/tests: Fix test failing on UTF-8 locale.
      ntdll/tests: Force alignment of output structures.
      dbghelp: Use heap functions for allocation.
      dbghelp: Realloc array of buckets inside struct vector.
      conhost/tests: Fix tests for some keyboard layouts.
      conhost/tests: Fix some tests on input sequences.
      kernel32/tests: Workaround some broken Windows behavior in console tests.

Esme Povirk (3):
      user32: Test Get/SetWindowPlacement with invalid length.
      win32u: Reject invalid length in SetWindowPlacement.
      mscoree: Update Wine Mono to 7.4.0.

Etaash Mathamsetty (3):
      ntoskrnl.exe: Implement IoCreateNotificationEvent.
      ntoskrnl.exe: Fix formatting in IoCreateSynchronizationEvent.
      ntoskrnl.exe: Use LoadLibraryW for MmGetSystemRoutineAddress.

Fabian Maurer (1):
      ntdll: Prevent double free (Coverity).

Florian Kübler (1):
      ntdll: Add CFI unwind info to __wine_syscall_dispatcher (x86_64).

François Gouget (8):
      wintrust: Add a trailing linefeed to an ERR() message.
      winetest: Let the get_subtests() caller report errors.
      dbghelp: Fix the trailing linefeed of a WARN() message.
      d3d10core/tests: Fix the spelling of a comment.
      dbghelp: Fix the spelling of a couple of comments.
      rpcrt4/tests: Fix the spelling of a couple of comments.
      msdasql: Fix a typo in the is_fixed_length() function name.
      ddraw/tests: Mark tests failing randomly on Windows 8 as flaky.

Gabriel Ivăncescu (28):
      jscript: Implement Function.prototype.bind's `thisArg` properly.
      jscript/tests: Fix copy paste mistake in JSON test.
      jscript: Implement `reviver` argument for JSON.parse.
      wininet: Handle offline state in InternetGetConnectedStateExW.
      netprofm: Handle non-internet connectivity.
      mshtml: Move the ConnectionPointContainer out of basedoc.
      mshtml: Move the IServiceProvider interface out of basedoc.
      mshtml: Move the Persist interfaces out of basedoc.
      mshtml: Move the IOleCommandTarget interface out of basedoc.
      mshtml: Move the OleObj interfaces out of basedoc.
      mshtml: Move HTMLDocumentObj implementation to oleobj.c.
      mshtml: Move the remaining non-IHTMLDocument* interfaces out of basedoc.
      mshtml: Move the IHTMLDocument2 interface out of basedoc.
      mshtml: Move the IHTMLDocument3 interface out of basedoc.
      mshtml: Move the IHTMLDocument4 interface out of basedoc.
      mshtml: Move the IHTMLDocument5 interface out of basedoc.
      mshtml: Move the IHTMLDocument6 interface out of basedoc.
      mshtml: Move the IHTMLDocument7 interface out of basedoc.
      mshtml: Move the IDispatchEx interface out of basedoc.
      mshtml: Get rid of the outer_unk in basedoc.
      mshtml: Get rid of the outer window in basedoc.
      mshtml: Get rid of the HTMLDocument basedoc.
      jscript: Implement VariantChangeType for VT_DISPATCH and VT_UNKNOWN.
      mshtml: Allow null or undefined listeners in attachEvent/detachEvent.
      mshtml: Allow null or undefined func in addEventListener.
      mshtml: Get rid of a EVENTID_LAST special case.
      mshtml: Implement document.mimeType.
      mshtml: Implement document.referrer.

Gerald Pfeifer (2):
      ntdll: Fix build on systems without ENODATA.
      loader: Unbreak FreeBSD builds (ARRAY_SIZE undefined).

Hans Leidekker (2):
      crypt32: Parse OCSP responder name.
      wbemprox: WQL string comparisons are case insensitive.

Hugh McMaster (4):
      kernel32/tests: Remove tests comparing expected output in certain functions.
      kernelbase: Add stubs for GetConsoleOriginalTitleA/W().
      kernel32/tests: Add tests for GetConsoleOriginalTitleA/W().
      kernelbase: Avoid memory leaks in GetConsoleTitleW().

Jacek Caban (2):
      user.exe: Pass resource ID as a string in DIALOG_CreateControls16.
      makedep: Always use -mno-cygwin for extra test modules.

Jinoh Kang (8):
      win32u: Fix data race in NtUserGetProcessDpiAwarenessContext.
      gdiplus: Avoid recursively locking image in GdipImageRotateFlip.
      gdiplus: Avoid copying GpImage's busy flag in select_frame_wic().
      gdiplus: Replace GpImage's busy flag with SRWLOCK.
      user32/tests: Test for window exposure behaviours.
      kernel32/tests: Add test for pipe name with a trailing backslash.
      ntdll/tests: Add tests for pipe names.
      ntdll/tests: Add more tests for \Device\NamedPipe and \Device\NamedPipe\.

Joel Holdsworth (2):
      ntdll/tests: Add initial tests for reparse points.
      ntdll: Add FSCTL_GET_REPARSE_POINT semi-stub.

Martin Storsjö (4):
      win32u: Make sure that the stack buffer in set_multi_value_key is large enough.
      ntdll: Move the dwarf reading routines to a shareable header.
      ntdll: Add support for aarch64 in the dwarf implementation.
      ntdll: Use the local dwarf implementation on arm64.

Michael Stefaniuc (11):
      ntdll: Use ARRAY_SIZE instead of open coding it.
      riched20/tests: Use ARRAY_SIZE instead of open coding it.
      kernel32/tests: Use ARRAY_SIZE instead of open coding it.
      server: Use ARRAY_SIZE instead of open coding it.
      loader: Use ARRAY_SIZE instead of open coding it.
      libs/wine: Use ARRAY_SIZE instead of open coding it.
      widl: Use ARRAY_SIZE instead of open coding it.
      winegcc: Use ARRAY_SIZE instead of open coding it.
      wmc: Use ARRAY_SIZE instead of open coding it.
      wrc: Use ARRAY_SIZE instead of open coding it.
      makedep: Use ARRAY_SIZE instead of open coding it.

Mihail Ivanchev (1):
      include: Add prototype for ReOpenFile().

Nikolay Sivov (13):
      dwrite/tests: Use existing to create factory instance.
      d2d1: Test device context type in BindDC().
      ntdll: Add some already implemented security descriptor exports.
      kernelbase: Forward some of the security descriptor functions to ntdll.
      kernelbase: Forward some directory info classes in GetFileInformationByHandleEx().
      kernelbase: Make sure to provide a message for missing information classes in GetFileInformationByHandleEx().
      kernelbase: Forward some more classes in GetFileInformationByHandleEx().
      ntdll: Partially implement MemoryRegionInformation query.
      kernelbase: Add QueryVirtualMemoryInformation().
      user32: Add DragObject() stub.
      win32u: Move NtUserDragDetect() to window.c.
      mf/samplegrabber: Send MEStreamSinkRateChanged event.
      mf/samplegrabber: Send MEStreamSinkScrubSampleComplete event.

Paul Gofman (14):
      wbemprox: Fix string length in get_value_bstr().
      msvcrt: Display message box in abort() for specific CRT versions only.
      winmm: Use a global timeout for refreshing joystick devices.
      win32u: Store GPU luid in adapters cache.
      win32u: Move NtUserDisplayConfigGetDeviceInfo implementation from user32.
      win32u: Store output id in monitors cache.
      win32u: Implement NtUserDisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME).
      ws2_32/tests: Make test_so_reuseaddr() more conclusive.
      ws2_32/tests: Add tests for reusing address without SO_REUSEADDR.
      ws2_32/tests: Also test TCP6 in test_so_reuseaddr().
      ntdll: Move SO_REUSEADDR handling to server.
      server: Track SO_REUSEADDR value.
      server: Set Unix SO_REUSEADDR on all the TCP sockets.
      ws2_32/tests: Also test bind to any together with loopback in a different order.

Piotr Caban (34):
      winedump: Add initial EMF spool files support.
      winedump: Fix buffer overflow in debugstr_wn helper.
      winedump: Don't use static offset in dump_emfrecord.
      winedump: Dump metafiles in EMF spool files.
      winedump: Add prefix when dumping EMF files.
      winedump: Add support for EMRI_METAFILE_EXT records.
      comctl32: Add helper for calling PROPERTYSHEETPAGE callback.
      comctl32: Add helper for getting flags from HPROPSHEETPAGE.
      comctl32: Add helper for loading dialog template from HPROPSHEETPAGE.
      comctl32: Add helper for getting title from HPROPSHEETPAGE.
      comctl32: Add helper for getting icon from HPROPSHEETPAGE.
      comctl32: Add helper for creating page HWND from HPROPSHEETPAGE.
      comctl32: Add helper for getting template from HPROPSHEETPAGE.
      comctl32: Add helper for setting header title in HPROPSHEETPAGE.
      comctl32: Add helper for setting header subtitle in HPROPSHEETPAGE.
      comctl32: Add helper for drawing header title and subtitle obtained from HPROPSHEETPAGE.
      msvcrt: Fix mbcasemap initialization.
      msvcrt: Add support for multi-byte characters in _mbctolower_l.
      msvcrt: Add support for multi-byte characters in _mbctoupper_l.
      msvcrt: Fix error handling in _mbsupr_s_l.
      msvcrt: Fix error handling in _mbslwr_s_l.
      winedump: Handle NULL in get_unicode_str.
      msvcrt: Fix _putenv_s return value on error.
      msvcrt: Fix _wputenv_s return value on error.
      msvcrt: Fix _wputenv_s invalid argument handling.
      comctl32: Create page if PROPSHEETPAGE was passed as HPROPSHEETPAGE to PropertySheetAW or PSM_INSERTPAGE.
      comctl32: Don't use PROPSHEETPAGE structure to store internal HPROPSHEETPAGE data.
      comctl32: Fix PROPSHEETPAGE[AW] structure content in messages and callbacks.
      comctl32: Add support for adding extra data in CreatePropertySheetPage.
      compstui: Add CPSFUNC_ADD_PFNPROPSHEETUI support.
      compstui: Add CPSFUNC_ADD_PROPSHEETPAGE support.
      compstui: Test that callbacks are executed.
      maintainers: Update Microsoft C Runtime files list.
      winemac.drv: Fix registry path size in create_original_display_mode_descriptor.

Rémi Bernon (10):
      opengl32: Split is_extension_supported helper.
      opengl32: Build extension list in is_extension_supported.
      opengl32: Move filter_extensions (et al.) around.
      opengl32: Use has_extension in filter_extensions_index.
      win32u: Use session BaseNamedObjects for display_device_init mutex.
      winex11.drv: Use session BaseNamedObjects for display_device_init mutex.
      dinput/tests: Add dummy flaky test count.
      ntoskrnl.exe/tests: Add dummy flaky test count.
      schedsvc/tests: Add dummy flaky test count.
      win32u: Write display modes to registry as binary blobs.

Stanislav Motylkov (1):
      hhctrl.ocx: Fix toolbar icons order.

Vladislav Timonin (2):
      d2d1: Update to ID2D1Device1.
      d2d1: Implement ID2D1Device1::CreateDeviceContext.

Zebediah Figura (8):
      wined3d: Do not enforce GL map access for resources with WINED3D_RESOURCE_ACCESS_CPU.
      ws2_32/tests: Add more tests for iosb contents while a recv is pending.
      ntdll: The async handle passed to set_async_direct_result() cannot be NULL.
      ntdll: Fill the IOSB in sock_recv() only inside the "if (alerted)" block.
      ntdll: Combine the "if (alerted)" blocks in sock_recv().
      ntdll: Fill the IOSB in sock_send() only inside the "if (alerted)" block.
      ntdll: Combine the "if (alerted)" blocks in sock_send().
      ntdll: Fill the IOSB in sock_transmit() only inside the "if (alerted)" block.

Zhiyi Zhang (10):
      comctl32/tests: Ignore WM_NCPAINT when testing WM_THEMECHANGED for updown control.
      comctl32/tests: Test if WM_STYLECHANGED repaints controls.
      comctl32/treeview: Don't repaint when handling WM_STYLECHANGED.
      comctl32/listview: Don't repaint when handling WM_STYLECHANGED.
      comctl32/animate: Don't repaint when handling WM_STYLECHANGED.
      comctl32/datetime: Don't repaint when handling WM_STYLECHANGED.
      comctl32/syslink: Don't repaint when handling WM_STYLECHANGED.
      comctl32/tab: Don't repaint when handling WM_STYLECHANGED.
      comctl32/updown: Don't repaint when handling WM_STYLECHANGED.
      comctl32/tests: Use a toolbar with TBSTYLE_FLAT in toolbar visual tests.

Ziqing Hui (10):
      win32u: Add mechanism for font specific system links.
      win32u: Add font link for MS UI Gothic.
      win32u: Add more linked fonts for Tahoma.
      win32u: Add locale_dependent member to struct system_link_reg.
      win32u: Add font links for Microsoft JhengHei.
      win32u: Add font links for MingLiU.
      win32u: Add font links for MS Gothic.
      win32u: Add font links for Yu Gothic UI.
      win32u: Add font links for Meiryo.
      win32u: Add font links for MS Mincho.