Wine Announcement

The Wine development release 7.21 is now available.

What's new in this release:
  - OpenGL library converted to PE.
  - Support for multi-architecture PE builds.
  - More preparation work for Vulkan 32-on-64 support.
  - Support for creating import libraries without dlltool.
  - Locale data updates.
  - Various bug fixes.

The source is available at:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.21 (total 25):

 - #29974  StarBurn 13 crashes on disabling skins
 - #51418  fotoBiz X - Fatal error on startup
 - #51779  Visual Studio msvsmon fails to bind server socket in child processes
 - #52467  Kaseya Live Connect management software sub-component crashes
 - #53081  Retina Mode broken since 7f7f9fa22c5cbe629e79a54257d5bd21403e80db
 - #53100  Euphoria: freezes every second while controllers are plugged in
 - #53153  SetWindowPos() incorrectly computes exposure region of parent window with WS_EX_COMPOSITED
 - #53484  dxgi:dxgi times out on the debiant VM
 - #53590  GetFileInformationByHandleEx() not fully implemented causing boost::directory_iterator failures with boost v1.79 and newer
 - #53606  First intro stops on last frame in multiple games (Darksiders Genesis, The Medium)
 - #53617  Imaris fails at exit with error, and keeps a process running.
 - #53631  Multiple 64-bit applications have issues with dialogs (DipTrace, foobar2000 installer)
 - #53676  vbscript can not exec_script - invalid number of arguments for Randomize
 - #53738  Cherry MIDI sequencer cannot read files with a path including CJK characters
 - #53749  Hotel Giant 2: black screen after changing resolution or enabling anti-aliasing
 - #53768  Winfile crashes due to unimplemented user32.dll.DragObject
 - #53798  Port Royale 2: incomplete text rendering
 - #53849  Apiset DLLs broken in non-PE builds
 - #53856  Wine 7.20 installs some windows files to the wrong location
 - #53859  Hades shows black screen at Vulkan mode
 - #53861  Non-PE builds fail after "makefiles: Add support for multiple PE architectures."
 - #53872  Adobe Reader XI crash opening settings in Protected Mode
 - #53879  Gothic 1 doesn't launch (msdbi.dll failed to initialize)
 - #53888  vbscript does not allow Mid on non VT_BSTR
 - #53893  ws2_32:sock - test_WSASocket() gets an unexpected raw protocol name in French on Windows


Changes since 7.20:

Alex Henrie (13):
      include: Include minidumpapiset.h in imagehlp.h.
      msvcrt: Change return type of _splitpath_s to errno_t.
      include: Add _splitpath_s.
      msvcrt: Change return type of freopen_s to errno_t.
      include: Add freopen_s.
      msvcrt: Change return type of wcsncat_s to errno_t.
      include: Add wcsncat_s.
      cmd: Remove inapplicable comment from WCMD_getfileowner.
      cmd: Use the wcsrev function instead of reimplementing it.
      include: Add sdkddkver.h.
      uuid: Add propkey.h.
      include: Define PROPSHEETPAGE[AW]_V[1-4].
      mscoree: Use standard C functions for memory allocation in assembly.c.

Alexandre Julliard (34):
      makefiles: Add support for multiple PE architectures.
      makedep: Always generate a fake module for the native architecture.
      ntdll: Fix trace formats for 64-bit values on ARM64.
      wow64: Load dependencies of 64-bit modules only from the 64-bit system directory.
      msvcrt: Use WINAPIV calling convention for variadic functions.
      xml2: Use WINAPIV calling convention for variadic functions.
      xslt: Use WINAPIV calling convention for variadic functions.
      ntdll: Reimplement KeUserModeCallback in assembly on i386.
      ntdll: Reimplement KeUserModeCallback in assembly on x86_64.
      ntdll: Reimplement KeUserModeCallback in assembly on ARM.
      ntdll: Reimplement KeUserModeCallback in assembly on ARM64.
      faudio: Import upstream release 22.11.
      png: Import upstream release 1.6.38.
      zlib: Import upstream release 1.2.13.
      lcms2: Import upstream release 2.14.
      xml2: Import upstream release 2.10.3.
      xslt: Import upstream release 1.1.37.
      nls: Update locale data to CLDR version 42.
      kernelbase: Update timezone data to version 2022f.
      win32u: Always use the full union for sysparams entries.
      ntdll: Don't inline NtCurrentTeb() in Unix libraries.
      openal32: Remove dll.
      ntdll: Use a pthread key for the TEB on all platforms.
      ntdll: Move the initialization of the thread register into signal_start_thread().
      ntdll: Use a separate function pointer for the TEB hack on ARM64.
      ntdll: Use a proper Unix syscall for load_so_dll().
      ntdll: Use a proper Unix syscall for init_builtin_dll().
      ntdll: Use a proper Unix syscall for unwind_builtin_dll().
      ntdll: Use a proper Unix syscall for RtlGetSystemTimePrecise().
      Revert "light.msstyles: Add nonclient metrics.".
      ntdll: Add a Wine-specific process info class for the LDT copy.
      makedep: Remove support for "hybrid" Unix libraries.
      winegcc: Remove support for "hybrid" Unix libraries.
      winebuild: Remove support for "hybrid" Unix libraries.

Anton Baskanov (6):
      quartz/tests: Add tests for MPEG layer-3 decoder IEnumMediaTypes.
      winegstreamer: Add a skeleton MPEG layer-3 decoder filter.
      quartz/tests: Add tests for MPEG layer-3 decoder accepted media types.
      winegstreamer: Reject incompatible input media types in MPEG layer-3 decoder.
      quartz/tests: Add tests for MPEG layer-3 decoder sink connection.
      winegstreamer: Reject incompatible output types in MPEG layer-3 decoder.

Arkadiusz Hiler (1):
      cmd/tests: Make sure for /f doesn't loop infinitely on NULs.

Bartosz Kosiorek (19):
      msvcrt: Add _fprintf_l implementation.
      msvcrt: Add _fprintf_p implementation.
      msvcrt: Add _fprintf_p_l implementation.
      msvcrt: Add _fprintf_s_l implementation.
      msvcrt: Add _fwprintf_p implementation.
      msvcrt: Add _fwprintf_p_l implementation.
      msvcrt: Add _fwprintf_s_l implementation.
      msvcrt: Add _scprintf_l implementation.
      msvcrt: Add _scprintf_p implementation.
      msvcrt: Add _scprintf_p_l implementation.
      msvcrt: Add _swprintf_p_l implementation.
      msvcp90: Add _Cin_func implementation.
      msvcp90: Add _Wcin_func implementation.
      msvcp90: Add _Cout_func implementation.
      msvcp90: Add _Clog_func implementation.
      msvcp90: Add _Cerr_func implementation.
      msvcp90: Add _Wcout_func implementation.
      msvcp90: Add _Wclog_func implementation.
      msvcp90: Add _Wcerr_func implementation.

Bernhard Kölbl (3):
      mf/tests: Test for copier node in topology using evr.
      mf: Assume same up and downstream media type for copier creation.
      mf: Set media types for output nodes in the media session.

Brendan Shanks (12):
      ntdll: Print correct thread rename trace if non-pseudo-handle to current thread is used.
      winemac: Remove pre-Mac OS X 10.8 workarounds.
      ntdll: Set the QoS class of the main Wine thread on macOS.
      ntdll: Add a Wine-specific THREADINFOCLASS to set just the native thread name.
      ntdll: Add native thread renaming for exception method.
      dsound: Set name of internal threads.
      winepulse: Set name of internal threads.
      winealsa: Set name of internal threads.
      ntdll: Fix runtime availability check for pthread_attr_set_qos_class_np.
      ntdll: Suppress deprecation warnings when calling MPTaskIsPreemptive().
      ntdll: Stop using deprecated kIOMasterPortDefault constant.
      winemac.drv: Stop using deprecated kIOMasterPortDefault constant.

Connor McAdams (7):
      uiautomationcore: Add UiaNavigate stub.
      uiautomationcore: Add parent link check to prepare_uia_node().
      uiautomationcore: Add helper function for returning a new node from an IWineUiaProvider.
      uiautomationcore: Implement ConditionType_True parent navigation for HUIANODEs.
      uiautomationcore: Partially implement ConditionType_True sibling navigation for HUIANODEs.
      uiautomationcore: Implement ConditionType_True child navigation for HUIANODEs.
      uiautomationcore: Add support for navigating between sibling node providers of a parent HUIANODE.

Dmitry Timoshkov (1):
      uxtheme: Protect CloseThemeData() from invalid input.

Eric Pouech (13):
      dbghelp: No longer pass inline site's address upon creation.
      dbghelp: Store address range as FAM in symt_inlinesite.
      dbghelp: Use addr_range for storing symt_function address and size.
      dbghelp: Get rid of symt_inlinesite by merging it inside symt_function.
      user32: Fix rounding issue in edit tests for char pos messages.
      conhost/tests: Fix some conditions on tty test termination.
      rpcrt4: Fix unexpected exception in ndr_marshal tests.
      shell32/tests: Improve timeout detection in shlexec tests.
      dbghelp: Added missing DECLSPEC_HIDDEN attribute.
      dbghelp: Introduce a helper for module lookup.
      dbghelp: Support loading modules from Wine's multi-arch build tree.
      cmd: Use CRT file I/O function inside 'for /F' handling.
      riched20: Fix failing test in UTF8 locales.

Etaash Mathamsetty (1):
      ntoskrnl.exe: Implement KeInitializeGuardedMutex.

Evan Tang (4):
      kernel32: Null-terminate the atom names passed to NtAddAtom.
      riched20: Move test class creation to a helper function.
      riched20: Add test for EN_CHANGE events during window creation.
      riched20: Don't emit EN_CHANGE events during window creation.

Fabian Maurer (6):
      wbemproxy/tests: Prevent double free (Coverity).
      shell32: Prevent double free (Coverity).
      win32u: Prevent use after free (Coverity).
      ntdll/tests: Fix uninitialized read in ok (Coverity).
      sapi: Prevent resource leak (Coverity).
      msvcrt/tests: Fix typo (Coverity).

Gabriel Ivăncescu (12):
      mshtml/tests: Handle broken localStorage on native.
      mshtml: Implement isContentEditable for HTML elements.
      mshtml: Improve locale stub for KeyboardEvent.
      mshtml: Return E_ABORT if wine-gecko's OnDataAvailable aborts the binding.
      mshtml: Don't include fragment in storage event's url prop.
      mshtml: Implement HTMLLocation_put_hash.
      mshtml: Implement document.importNode.
      mshtml: Use nsIDOMDocument instead of nsIDOMHTMLDocument where possible.
      jscript: Convert filetime to date properly using unsigned division.
      include: Add IDOMParser interface, dispinterface, and coclass.
      include: Add CLSID_XHTMLDocument and CLSID_SVGDocument.
      mshtml: Add SVG and XHTML document information to the registry.

Georg Lehmann (4):
      winevulkan: Update to VK spec version 1.3.233.
      winevulkan: VkDeviceAddress needs alignment.
      winevulkan: Fix handling bitmasks in needs_alignment.
      winevulkan: Fix handling enums in needs_alignment.

Hans Leidekker (5):
      rsaenh: Pass exact size to BCryptFinishHash().
      bcrypt: Use get_object() in more places.
      bcrypt: Validate hash output length.
      netprofm: Store a list manager pointer in the network object instead of creating a new list manager.
      netprofm: Use CRT allocation functions.

Jacek Caban (41):
      winevulkan: Support optional dispatch handles.
      winevulkan: Assert Unix call result in generated thunks.
      winevulkan: Assert Unix call result in private thunks.
      winevulkan: Don't check thunk_type in VkParam.needs_unwrapping.
      winevulkan: Don't store conversion functions in VkParam.
      winevulkan: Introduce needs_host_type helper function.
      winevulkan: Remove unneeded needs_conversion() calls.
      winevulkan: Store returnedonly attribute in VkVariable.
      winevulkan: Pass direction to needs_conversion helpers.
      winevulkan: Move get_conversions implementation to VkVariable.
      winevulkan: Remove no longer used Direction.INPUT_OUTPUT.
      winevulkan: Pass type as uint32_t to wine_vk_unwrap_handle.
      winevulkan: Support output array conversion in _generate_array_conversion_func.
      winevulkan: Drop "static_array" from conversion function names.
      winevulkan: Use separated classes for struct and array conversions.
      winevulkan: Use struct conversion functions for array conversion implementations.
      winevulkan: Don't declare host types for structs that don't need it.
      winevulkan: Skip unsupported functions in a few more places.
      mshtml: Always use navigate_fragment for fragment-only navigation in navigate_uri.
      winevulkan: Move find_next_struct implementation to vulkan_private.h.
      winevulkan: Convert struct chains in struct conversion functions.
      winevulkan: Avoid unneeded copies in struct conversion functions.
      winevulkan: Support output dynamic array conversion.
      winevulkan: Always fill output in fill_luid_property.
      winevulkan: Store parent in VkVariable.
      winevulkan: Support pointer dynamic array lengths.
      winevulkan: Use generated thunks for vkGetImageSparseMemoryRequirements(2) conversion.
      winevulkan: Use const types in conversion function declarations.
      winevulkan: Convert struct chain conversions for all structs that need it.
      winevulkan: Use generated thunks for VkPipelineCreationFeedback conversion.
      winevulkan: Support conversion of optional parameters.
      winevulkan: Fix handling unions in needs_alignment().
      winevulkan: Preserve const in array conversion output types.
      winevulkan: Add support for pointer array conversion.
      winevulkan: Use local params struct declarations for 32-bit thunks.
      winevulkan: Fix host aliases declaration.
      winevulkan: Use local structs declarations for 32-bit conversion functions.
      winevulkan: Get rid of *_host types.
      winevulkan: Remove no longer used make_vulkan functions.
      winevulkan: Move needs_unwrapping implementation to VkVariable.
      winevulkan: Don't generate private thunk prototypes for PE-only functions.

Jinoh Kang (7):
      server: Correctly expose composited parent window and its child on position change.
      server: Redraw composited window child when its z-order changes.
      server: Don't invalidate the newly exposed child region on the parent if it doesn't clip children.
      ntdll: Move CFI helper macros out of signal_x86_64.c.
      ntdll: Add CFI unwind info to __wine_syscall_dispatcher (i386).
      comctl32/tests: Flush events before testing edit control SetFocus() messages.
      comctl32/tests: Flush events before testing edit control IME messages.

Martin Storsjö (5):
      winegcc: Prefer -Wl,--pdb=<file> over -Wl,-pdb,<file>.
      ntdll: Add ARM EHABI unwind instructions in assembly functions.
      ntdll: Implement ARM EHABI unwinding.
      ntdll: Write ret_len with the right size in user_mode_callback_return on arm64.
      ntdll: Readd the missed initialization of the thread register on arm.

Mohamad Al-Jaf (2):
      setx: Add stub program.
      certutil: Add stub program.

Nikolay Sivov (9):
      mf/session: Add support for MESessionScrubSampleComplete event.
      vbscript: Implement PRNG functions.
      comctl32/edit: Check for control destruction on notification return.
      user32/edit: Check for control destruction on notification return.
      vbscript: Fix a typo in Right() argument type check.
      vbscript: Improve invalid argument checks in Right().
      vbscript: Improve argument type handling in Mid().
      d2d1/tests: Use correct flags constants with D3D11CreateDevice().
      vbscript: Add support for argument list in ReDim.

Paul Gofman (28):
      ws2_32/tests: Add tests for SO_EXCLUSIVEADDRUSE.
      ws2_32: Track SO_EXCLUSIVEADDRUSE option value.
      server: Make SO_REUSEADDR and SO_EXCLUSIVEADDRUSE mutually exclusive.
      server: Use struct bound_addr as a key to bound_addresses_tree.
      server: Set error in check_addr_usage().
      server: Use htonl() with INADDR_ANY in ipv4addr_from_v6().
      server: Do not translate loopback addr in ipv4addr_from_v6().
      server: Support SO_EXCLUSIVEADDRUSE socket option.
      http.sys: Use SO_EXCLUSIVEADDRUSE on listening socket.
      include: Add windows.gaming.ui.idl.
      windows.gaming.ui.gamebar: Add stub DLL.
      windows.gaming.ui.gamebar: Add IGameBarStatics interface.
      mf: Handle timer time behind clock time in present_clock_schedule_timer().
      mf/samplegrabber: Process samples in paused state in ignore_clock mode.
      mf/samplegrabber: Handle samples receieved in paused state.
      secure32/tests: Add tests for ApplyControlToken (schannel).
      secur32: Allocate buffer for either ISC_REQ_ALLOCATE_MEMORY or NULL output in schan_InitializeSecurityContextW().
      secur32: Add semi-stub for ApplyControlToken (schannel).
      secur32: Implement ApplyControlToken for SCHANNEL_SHUTDOWN.
      ws2_32/tests: Don't test protocol name in test_WSASocket().
      ntdll: Pass limit instead of zero_bits to map_view().
      ntdll: Factor out allocate_virtual_memory().
      ntdll: Support HighestEndingAddress in NtAllocateVirtualMemoryEx().
      ntdll/tests: Add tests for memory address requirements.
      wow64: Support MEM_ADDRESS_REQUIREMENTS in wow64_NtAllocateVirtualMemoryEx().
      wow64: Set HighestEndingAddress in wow64_NtAllocateVirtualMemoryEx() if it is absent.
      ntdll: Pass alignemnt mask to map_view().
      ntdll: Support specified alignment in NtAllocateVirtualMemoryEx().

Piotr Caban (5):
      wineps.drv: Add DrvDocumentPropertySheets implementation.
      winspool.drv: Use DrvDocumentPropertySheets driver entry in DocumentProperties.
      wineps.drv: Remove DrvDocumentProperties entry point.
      msvcrt: Fix errno set on read from write-only file.
      msvcrt: Fix errno set on write to read-only file.

Rémi Bernon (64):
      win32u: Add a BOOL force parameter to update_display_cache.
      win32u: Force update display cache after NtUserChangeDisplaySettingsEx.
      win32u: Add primary adapter name parameter to ChangeDisplaySettings.
      winemac.drv: Use the primary adapter name instead of calling back win32u.
      win32u: Add is_primary parameter to GetCurrentDisplaySettings.
      winex11.drv: Use the primary adapter info instead of calling back win32u.
      winmm: Use a separate last_check for joyGetDevCapsW and joyGetPosEx.
      winmm: Add missing void parameter in function definition.
      winebus.sys: Ignore SDL events for devices which aren't started.
      win32u: Lock display devices while applying display settings.
      win32u: Write display settings to the registry in apply_display_settings.
      win32u: Read mode from the registry if GetCurrentDisplaySettings fails.
      winebuild: Split get_link_name into a separate get_abi_name helper.
      winebuild: Use asm_name to add underscore prefix in asm_globl.
      winebuild: Split output_static_lib into output_(import|static)_lib.
      opengl32: Create a unixlib interface for GL functions.
      opengl32: Use the unixlib for glGet(String|Integerv).
      opengl32: Move the null functions to unix_thunks.c.
      opengl32: Use the unixlib interface for EXT functions.
      opengl32: Use the unixlib interface for WGL functions.
      opengl32: Avoid using internal functions in wglUseFontBitmaps.
      opengl32: Avoid using internal functions in wglUseFontOutlines.
      opengl32: Introduce a new NtUserCallOpenGLDebugMessageCallback callback.
      opengl32: Move some WGL functions to unix_wgl.c.
      opengl32: Use the unixlib interface for more WGL functions.
      winebuild: Avoid calling asm_name twice in function arguments.
      comctl32/tests: Remove a now succeeding todo_wine.
      xaudio2_7/tests: Mark tests failing randomly as flaky.
      mf: Always enumerate branch source types for transform nodes.
      mf: Add some topology source node checks in IMFMediaSession_SetTopology.
      gitlab: Add a 2s wait between macOS build iterations.
      opengl32: Introduce new disabled_extensions_index helper.
      opengl32: Move extension filtering helpers to unix_wgl.c.
      opengl32: Move glGetStringi extension filtering to unix_wgl.c.
      opengl32: Move glGetString extension filtering to unix_wgl.c.
      opengl32: Move glGetIntegerv extension filtering to unix_wgl.c.
      opengl32: Move function / extension registry mapping to unix_thunks.c.
      opengl32: Move wglGetProcAddress extension filtering to unix_wgl.c.
      winebuild: Introduce a new --without-dlltool winebuild flag.
      winebuild: Implement import lib generation without dlltool.
      winebuild: Enable unwind tables by default in PE files.
      winebuild: Implement delay import lib generation without dlltool.
      winebuild: Fix import hint value for symbols imported by name.
      winebuild: Put the delay import descriptor in data section.
      winegstreamer: Introduce new wm_stream_allocate_sample helper.
      winegstreamer: Split the wm_reader_get_stream_sample helper.
      winegstreamer: Allow wg_parser_stream_get_buffer to wait on all streams.
      winegstreamer: Return no buffer when wg_parser stream is disabled.
      winegstreamer: Merge wm_reader_get_stream_sample with GetNextSample.
      opengl32: Avoid calling back the wglMakeCurrent win32 thunk.
      opengl32: Use glReserved1[0] and glReserved1[1] for draw and read DCs.
      opengl32: Split opengl_ext.h into private.h and unix_private.h.
      opengl32: Avoid recursively entering WGL critical section.
      opengl32: Use ntdll registry functions to read disabled extensions.
      opengl32: Build with msvcrt.
      opengl32: Use msvcrt allocation functions.
      opengl32: Use RtlSetLastWin32Error instead of SetLastError.
      kernel32/tests: Test more Global/Local functions with invalid pointers.
      kernel32/tests: Test (Global|Local)Handle with heap allocated pointers.
      ntdll: Introduce a new heap block_set_flags helper.
      ntdll: Store the user flags in the heap block flags.
      ntdll: Check block user flags in RtlSetUserValueHeap.
      ntdll: Check block user flags in RtlGetUserInfoHeap.
      ntdll: Implement RtlSetUserFlagsHeap.

Santino Mazza (2):
      user32/tests: Test for MB_SYSTEMMODAL.
      user32/msgbox: Implement MB_SYSTEMMODAL.

Sebastián Aedo (2):
      netprofm: Add INetwork_GetNetworkConnections test.
      netprofm: Implement network_GetNetworkConnections.

Stefan Dösinger (1):
      ntdll: Fix building on Mojave / Xcode 11.3.1.

Tarcísio Ladeia de Oliveira (1):
      gdi32/tests: Fix assertion message.

Tim Clem (3):
      wow64: Truncate too-large regions from NtQueryVirtualMemory(MemoryBasicInformation).
      wow64: Return error from NtQueryVirtualMemory(MemoryRegionInformation) for a too-large address.
      wow64: Truncate too-large regions from NtQueryVirtualMemory(MemoryRegionInformation).

Torge Matthies (1):
      ntdll: Fix incorrectly sized mov in user_mode_callback_return.

Zebediah Figura (12):
      winevulkan: Do not pass win32 allocation callbacks directly to the Unix side.
      winecoreaudio: Disable thread DllMain() calls.
      winecoreaudio: Clean up the timer queue handle in DllMain().
      wined3d: Factor out creating the window state thread.
      wined3d: Set the window state thread description only if it's actually a new thread.
      d3d8/tests: Test drawing from a managed texture after Reset().
      d3d9/tests: Test drawing from a managed texture after Reset().
      wined3d: Factor out a mark_managed_resource_dirty() helper.
      wined3d: Add a dirty rect to managed textures when resetting.
      wined3d: Always invalidate ~map_binding in texture write maps.
      d3d8: Build without -DWINE_NO_LONG_TYPES.
      d3d9: Build without -DWINE_NO_LONG_TYPES.

Zhiyi Zhang (15):
      comctl32/button: Initialize dtFlags in PB_Paint().
      win32u: Skip detached monitors in is_window_rect_full_screen().
      winex11.drv: Initialize escape.drawable in X11DRV_GetDC().
      winecfg: Use SM_CYSIZE to set and get caption height.
      winecfg: Adjust top-level window rectangles after theme changes.
      user32: Hook drawing menu buttons.
      uxtheme: Support drawing themed menu buttons.
      user32/tests: Test creating a fullscreen window spanning multiple monitors.
      winex11.drv: Support _NET_WM_FULLSCREEN_MONITORS.
      d2d1/tests: Add hwnd render target pixel format tests.
      d2d1: Use D2D1_ALPHA_MODE_IGNORE if D2D1_ALPHA_MODE_UNKNOWN is used for creating hwnd render targets.
      uxtheme: Reference count theme classes.
      uxtheme: Use atomic functions for reference counting.
      light.msstyles: Add nonclient metrics.
      user32: Use NtUserSetWindowLongPtr() in set_dialog_proc().

Ziqing Hui (4):
      usp10/tests: Add CJK shaping test.
      usp10/tests: Add Hiragana shaping test.
      usp10/tests: Add Katakana shaping test.
      gdi32/uniscribe: Add fallback font for Kana and CJK script.

wuliande (1):
      msvcp90: Make _Condition_variable_* function pointers static.