1 The Wine development release 7.20 is now available.
3 What's new in this release:
4 - Mono engine updated to version 7.4.0.
5 - Font linking improvements.
6 - A number of fixes for exception unwinding.
7 - Support for dumping EMF spool files in WineDump.
10 The source is available at:
12 https://dl.winehq.org/wine/source/7.x/wine-7.20.tar.xz
14 Binary packages for various distributions will be available from:
16 https://www.winehq.org/download
18 You will find documentation on https://www.winehq.org/documentation
20 You can also get the current source directly from the git
21 repository. Check https://www.winehq.org/git for details.
23 Wine is available thanks to the work of many people. See the file
24 AUTHORS in the distribution for the complete list.
26 ----------------------------------------------------------------
28 Bugs fixed in 7.20 (total 29):
30 - #15679 cygwin symlinks not working in wine
31 - #29998 Crysis 2 (>1.0) huge graphical issues after loading a savegame
32 - #38594 dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols (Visual C++ 2013 .pdb's)
33 - #38604 winedbg: internal crash/hangs when running ieframe/tests/ie.c with pdb debug symbols
34 - #44814 cygwin's bsdtar.exe needs a better ntdll.NtQueryEaFile stub
35 - #46822 Edit control in ADL search dialog gets initially not drawn in DC++ 0.868, regression
36 - #47595 Tequila City of Heroes Launcher - expect_no_runtimes Process exited with a Mono runtime loaded.
37 - #48197 Autonauts in steam under wine has a memory leak.
38 - #50573 division by zero in wineconsole when hovering mouse over
39 - #51529 CloseHandle(INVALID_HANDLE_VALUE) returns FALSE, GetLastError is ERROR_INVALID_HANDLE
40 - #51775 Axiom Verge 2 crashes on startup due to incomplete sapi implementation
41 - #52545 ACE rights parser should allow octal and decimal formats
42 - #52648 conhost.exe:tty test_read_console_control() fails in Hindi and Portuguese
43 - #52790 winedbg 'bt all' filled with dbghelp_dwarf RULE_VAL_EXPRESSION fixmes
44 - #53437 ZOSI Cloud crashes on start
45 - #53455 shell32:recyclebin - test_query_recyclebin() gets unexpected recyclebin size in Wine
46 - #53521 imm32:imm32 - test_default_ime_window_creation() fails on Windows 10 21H1+
47 - #53552 Line width calculation failure in WineMono.Tests.System.Windows.Media.TextFormatting.TextFormatterTest.NewlineCharacterCollapsibleTest
48 - #53608 Visual Novel Shin Koihime † Eiyuutan 4 plays opening movie in separate window
49 - #53669 Problems with two separate MetaTrader4 programs on the same Wine desktop
50 - #53679 The 64-bit ntdll:env fails on Windows 7
51 - #53724 Obduction fails in a random way out of a handful of possible ways
52 - #53770 Wrong locale data for Chinese locales for LOCALE_SNATIVEDIGITS class
53 - #53800 CRYPT_GetBuiltinDecoder Unsupported decoder for lpszStructType 1.3.6.1.4.1.311.2.1.4
54 - #53813 Let's encrypt certificate validation fails
55 - #53821 winbase.h: ReOpenFile declaration missing (and not available in any other header)
56 - #53829 Font links for MingLiU broken 32-bit wineprefixes
57 - #53832 wbemprox: where-clause seems to be case-sensitive
58 - #53838 Non-PE builds fail after "makedep: Make the installation directories architecture-generic."
60 ----------------------------------------------------------------
65 quartz/tests: Add a background brush test for video renderer.
66 quartz: Fix video flickering.
67 shell32/tests: Add DBCS file name tests for DragQueryFile.
68 shell32/tests: Add more DragQueryFile tests.
69 shell32: Merge ANSI part of DROPFILES handler into DragQueryFileW.
70 shell32: Reimplement DragQueryFileA to rely on its Unicode version.
71 shell32: Returns a number of copied characters in DropQueryFileW.
72 shell32: Returns a number of copied bytes in DropQueryFileA.
75 include: Add TOOLINFO[AW].
76 shell32: Move strndupW to dde.c.
77 shell32: Use standard C functions for memory allocation in dde.c.
78 shell32: Introduce combine_path helper for DDE.
79 shell32: Sanitize Program Manager icon and group names.
80 include: Add WSANO_ADDRESS to winsock2.h.
81 include: Move strto[iu]max(_l) from stdlib.h to inttypes.h.
83 msvcrt: Change return type of _putenv_s to errno_t.
84 include: Add _putenv_s.
85 shell32: Don't use strdupW or heap_* functions in shellole.c.
86 shell32: Don't use strdupW or heap_* functions in shelldispatch.c.
87 shell32: Don't use strdupW or heap_* functions in shelllink.c.
88 shell32: Remove unused function strdupW.
90 Alexandre Julliard (21):
91 nls: Update locales that have been added in recent Windows versions.
92 nls: Allow specifying a locale's native digits.
93 makedep: Pass a generic architecture value instead of the is_cross flag to various helpers.
94 makedep: Make the target flags architecture-generic.
95 makedep: Make the debug flags architecture-generic.
96 makedep: Make the delay load flags architecture-generic.
97 makedep: Make the extra C flags architecture-generic.
98 makedep: Make the installation directories architecture-generic.
99 makedep: Make the object files architecture-generic.
100 makedep: Make the import library files architecture-generic.
101 makedep: Make the makefile targets architecture-generic.
102 makedep: Add support for architecture-specific sources.
103 makedep: Add support for architecture-specific IDL objects.
104 makedep: Make the resource files architecture-generic.
105 makedep: Add a helper function to build a source file for one architecture.
106 makedep: Add a helper function to get a cross-compilation make variable.
107 makedep: Add a helper function to build an arch-specific module name.
108 makedep: Make the disabled flag architecture-generic.
109 makefiles: Store PE objects in subdirectories in the build tree.
110 configure: Remove no longer needed check for dlltool.
111 makedep: Remove arch directories on distclean.
113 Alistair Leslie-Hughes (8):
114 crypt32: Only report Unimplemented decoder when not found in external dll.
115 sapi: Implement ISpObjectToken OpenKey.
116 sapi: Move token structure before EnumTokens function.
117 sapi: Store registry key to Enum builder.
118 sapi: Implement ISpObjectTokenEnumBuilder Item.
119 sapi: Implement ISpObjectTokenEnumBuilder Next.
120 sapi: Add default voice registry key.
121 sapi: Add Voice enum tests.
124 quartz/tests: Add tests for MPEG layer-3 decoder interfaces.
125 quartz/tests: Add tests for MPEG layer-3 decoder aggregation.
126 quartz/tests: Test MPEG layer-3 decoder unconnected filter state.
127 quartz/tests: Add tests for IBaseFilter_EnumPins() on MPEG layer-3 decoder.
128 quartz/tests: Add tests for IBaseFilter_FindPin() on MPEG layer-3 decoder.
129 quartz/tests: Add tests for querying MPEG layer-3 decoder pin info.
131 Bartosz Kosiorek (26):
132 msvcrt: Add _mbctolower_l partial implementation.
133 msvcrt: Add _mbctoupper_l partial implementation.
134 msvcrt: Add _mbslwr_s_l partial implementation.
135 msvcrt: Add _mbsupr_s_l partial implementation.
136 msvcrt: Add _mbschr_l implementation.
137 msvcrt: Add _mbsicmp_l implementation.
138 msvcrt: Add _mbclen_l implementation.
139 msvcrt: Fix error handling for _mbscmp_l.
140 msvcrt: Add _ismbslead_l implementation.
141 msvcrt: Add _ismbstrail_l implementation.
142 msvcrt: Add _ismbcsymbol_l implementation.
143 msvcrt: Add _mbsinc_l implementation.
144 msvcrt: Fix error handling for strcat_s.
145 msvcrt: Fix error handling for strcpy_s.
146 gdiplus: Add GdipSetPenCompoundArray implementation.
147 gdiplus: Add GdipGetPenCompoundCount implementation.
148 gdiplus: Add GdipGetPenCompoundArray implementation.
149 msvcrt: Add _ismbchira_l implementation.
150 msvcrt: Add _ismbckata_l implementation.
151 msvcrt: Add _mbbtombc_l implementation.
152 ucrtbase: Export more _o_* functions.
153 msvcrt: Add _mbcjistojms_l implementation.
154 msvcrt: Add _mbcjmstojis_l implementation.
155 msvcrt: Add _mbctombb_l implementation.
156 msvcrt: Add _mbctohira_l implementation.
157 msvcrt: Add _mbctokata_l implementation.
160 mmdevapi: Set the name of internal threads.
161 xinput1_3: Set thread name for hid_update_thread_proc.
162 sechost: Set the name of internal threads.
163 ntdll: Set native thread names on Linux when set with SetThreadDescription().
164 server: Only require THREAD_SET_LIMITED_INFORMATION access to set thread description.
167 po: Update Traditional Chinese translation.
170 uiautomationcore: Add support for multiple providers on a single HUIANODE.
171 uiautomationcore: Determine provider type for nested node providers.
172 uiautomationcore: Add support for getting HWND providers to UiaNodeFromProvider().
173 uiautomationcore: Add support for getting HWND providers to uia_node_from_lresult().
174 uiautomationcore/tests: Ignore UIA_NativeWindowHandlePropertyId in certain tests.
175 uiautomationcore: Implement UiaRegisterProviderCallback.
176 uiautomationcore: Add UiaGetUpdatedCache stub.
177 uiautomationcore: Implement UiaGetUpdatedCache.
178 uiautomationcore: Add basic UiaCondition support to UiaGetUpdatedCache.
179 uiautomationcore/tests: Add tests for boolean UIA ConditionTypes.
180 uiautomationcore/tests: Add ConditionType_Property tests.
181 uiautomationcore: Add support for ConditionType_Not conditions.
182 uiautomationcore: Add support for ConditionType_{And/Or} conditions.
183 uiautomationcore: Implement ConditionType_Property conditional for UIAutomationType_Bool properties.
184 uiautomationcore: Add support for UIAutomationType_IntArray property comparisons.
187 kernel32/tests: Add tests for CancelSynchronousIo.
188 ntdll: Add NtCancelSynchronousIoFile stub.
189 ntdll: Implement NtCancelSynchronousIoFile.
190 kernelbase: Call NtCancelSynchronousIoFile in CancelSynchronousIo.
193 xmllite/writer: Null terminate duplicated strings.
196 dbghelp: Rework dwarf2_get_ranges() helper.
197 dbghelp: No longer call read_range() for inline site (dwarf).
198 dbghelp: Allow symt_block to be defined over non contiguous chunks.
199 dbghelp: Silence some FIXMEs.
200 oleaut32/tests: Fix test failing on UTF-8 locale.
201 ntdll/tests: Force alignment of output structures.
202 dbghelp: Use heap functions for allocation.
203 dbghelp: Realloc array of buckets inside struct vector.
204 conhost/tests: Fix tests for some keyboard layouts.
205 conhost/tests: Fix some tests on input sequences.
206 kernel32/tests: Workaround some broken Windows behavior in console tests.
209 user32: Test Get/SetWindowPlacement with invalid length.
210 win32u: Reject invalid length in SetWindowPlacement.
211 mscoree: Update Wine Mono to 7.4.0.
213 Etaash Mathamsetty (3):
214 ntoskrnl.exe: Implement IoCreateNotificationEvent.
215 ntoskrnl.exe: Fix formatting in IoCreateSynchronizationEvent.
216 ntoskrnl.exe: Use LoadLibraryW for MmGetSystemRoutineAddress.
219 ntdll: Prevent double free (Coverity).
222 ntdll: Add CFI unwind info to __wine_syscall_dispatcher (x86_64).
225 wintrust: Add a trailing linefeed to an ERR() message.
226 winetest: Let the get_subtests() caller report errors.
227 dbghelp: Fix the trailing linefeed of a WARN() message.
228 d3d10core/tests: Fix the spelling of a comment.
229 dbghelp: Fix the spelling of a couple of comments.
230 rpcrt4/tests: Fix the spelling of a couple of comments.
231 msdasql: Fix a typo in the is_fixed_length() function name.
232 ddraw/tests: Mark tests failing randomly on Windows 8 as flaky.
234 Gabriel Ivăncescu (28):
235 jscript: Implement Function.prototype.bind's `thisArg` properly.
236 jscript/tests: Fix copy paste mistake in JSON test.
237 jscript: Implement `reviver` argument for JSON.parse.
238 wininet: Handle offline state in InternetGetConnectedStateExW.
239 netprofm: Handle non-internet connectivity.
240 mshtml: Move the ConnectionPointContainer out of basedoc.
241 mshtml: Move the IServiceProvider interface out of basedoc.
242 mshtml: Move the Persist interfaces out of basedoc.
243 mshtml: Move the IOleCommandTarget interface out of basedoc.
244 mshtml: Move the OleObj interfaces out of basedoc.
245 mshtml: Move HTMLDocumentObj implementation to oleobj.c.
246 mshtml: Move the remaining non-IHTMLDocument* interfaces out of basedoc.
247 mshtml: Move the IHTMLDocument2 interface out of basedoc.
248 mshtml: Move the IHTMLDocument3 interface out of basedoc.
249 mshtml: Move the IHTMLDocument4 interface out of basedoc.
250 mshtml: Move the IHTMLDocument5 interface out of basedoc.
251 mshtml: Move the IHTMLDocument6 interface out of basedoc.
252 mshtml: Move the IHTMLDocument7 interface out of basedoc.
253 mshtml: Move the IDispatchEx interface out of basedoc.
254 mshtml: Get rid of the outer_unk in basedoc.
255 mshtml: Get rid of the outer window in basedoc.
256 mshtml: Get rid of the HTMLDocument basedoc.
257 jscript: Implement VariantChangeType for VT_DISPATCH and VT_UNKNOWN.
258 mshtml: Allow null or undefined listeners in attachEvent/detachEvent.
259 mshtml: Allow null or undefined func in addEventListener.
260 mshtml: Get rid of a EVENTID_LAST special case.
261 mshtml: Implement document.mimeType.
262 mshtml: Implement document.referrer.
265 ntdll: Fix build on systems without ENODATA.
266 loader: Unbreak FreeBSD builds (ARRAY_SIZE undefined).
269 crypt32: Parse OCSP responder name.
270 wbemprox: WQL string comparisons are case insensitive.
273 kernel32/tests: Remove tests comparing expected output in certain functions.
274 kernelbase: Add stubs for GetConsoleOriginalTitleA/W().
275 kernel32/tests: Add tests for GetConsoleOriginalTitleA/W().
276 kernelbase: Avoid memory leaks in GetConsoleTitleW().
279 user.exe: Pass resource ID as a string in DIALOG_CreateControls16.
280 makedep: Always use -mno-cygwin for extra test modules.
283 win32u: Fix data race in NtUserGetProcessDpiAwarenessContext.
284 gdiplus: Avoid recursively locking image in GdipImageRotateFlip.
285 gdiplus: Avoid copying GpImage's busy flag in select_frame_wic().
286 gdiplus: Replace GpImage's busy flag with SRWLOCK.
287 user32/tests: Test for window exposure behaviours.
288 kernel32/tests: Add test for pipe name with a trailing backslash.
289 ntdll/tests: Add tests for pipe names.
290 ntdll/tests: Add more tests for \Device\NamedPipe and \Device\NamedPipe\.
293 ntdll/tests: Add initial tests for reparse points.
294 ntdll: Add FSCTL_GET_REPARSE_POINT semi-stub.
297 win32u: Make sure that the stack buffer in set_multi_value_key is large enough.
298 ntdll: Move the dwarf reading routines to a shareable header.
299 ntdll: Add support for aarch64 in the dwarf implementation.
300 ntdll: Use the local dwarf implementation on arm64.
302 Michael Stefaniuc (11):
303 ntdll: Use ARRAY_SIZE instead of open coding it.
304 riched20/tests: Use ARRAY_SIZE instead of open coding it.
305 kernel32/tests: Use ARRAY_SIZE instead of open coding it.
306 server: Use ARRAY_SIZE instead of open coding it.
307 loader: Use ARRAY_SIZE instead of open coding it.
308 libs/wine: Use ARRAY_SIZE instead of open coding it.
309 widl: Use ARRAY_SIZE instead of open coding it.
310 winegcc: Use ARRAY_SIZE instead of open coding it.
311 wmc: Use ARRAY_SIZE instead of open coding it.
312 wrc: Use ARRAY_SIZE instead of open coding it.
313 makedep: Use ARRAY_SIZE instead of open coding it.
316 include: Add prototype for ReOpenFile().
319 dwrite/tests: Use existing to create factory instance.
320 d2d1: Test device context type in BindDC().
321 ntdll: Add some already implemented security descriptor exports.
322 kernelbase: Forward some of the security descriptor functions to ntdll.
323 kernelbase: Forward some directory info classes in GetFileInformationByHandleEx().
324 kernelbase: Make sure to provide a message for missing information classes in GetFileInformationByHandleEx().
325 kernelbase: Forward some more classes in GetFileInformationByHandleEx().
326 ntdll: Partially implement MemoryRegionInformation query.
327 kernelbase: Add QueryVirtualMemoryInformation().
328 user32: Add DragObject() stub.
329 win32u: Move NtUserDragDetect() to window.c.
330 mf/samplegrabber: Send MEStreamSinkRateChanged event.
331 mf/samplegrabber: Send MEStreamSinkScrubSampleComplete event.
334 wbemprox: Fix string length in get_value_bstr().
335 msvcrt: Display message box in abort() for specific CRT versions only.
336 winmm: Use a global timeout for refreshing joystick devices.
337 win32u: Store GPU luid in adapters cache.
338 win32u: Move NtUserDisplayConfigGetDeviceInfo implementation from user32.
339 win32u: Store output id in monitors cache.
340 win32u: Implement NtUserDisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME).
341 ws2_32/tests: Make test_so_reuseaddr() more conclusive.
342 ws2_32/tests: Add tests for reusing address without SO_REUSEADDR.
343 ws2_32/tests: Also test TCP6 in test_so_reuseaddr().
344 ntdll: Move SO_REUSEADDR handling to server.
345 server: Track SO_REUSEADDR value.
346 server: Set Unix SO_REUSEADDR on all the TCP sockets.
347 ws2_32/tests: Also test bind to any together with loopback in a different order.
350 winedump: Add initial EMF spool files support.
351 winedump: Fix buffer overflow in debugstr_wn helper.
352 winedump: Don't use static offset in dump_emfrecord.
353 winedump: Dump metafiles in EMF spool files.
354 winedump: Add prefix when dumping EMF files.
355 winedump: Add support for EMRI_METAFILE_EXT records.
356 comctl32: Add helper for calling PROPERTYSHEETPAGE callback.
357 comctl32: Add helper for getting flags from HPROPSHEETPAGE.
358 comctl32: Add helper for loading dialog template from HPROPSHEETPAGE.
359 comctl32: Add helper for getting title from HPROPSHEETPAGE.
360 comctl32: Add helper for getting icon from HPROPSHEETPAGE.
361 comctl32: Add helper for creating page HWND from HPROPSHEETPAGE.
362 comctl32: Add helper for getting template from HPROPSHEETPAGE.
363 comctl32: Add helper for setting header title in HPROPSHEETPAGE.
364 comctl32: Add helper for setting header subtitle in HPROPSHEETPAGE.
365 comctl32: Add helper for drawing header title and subtitle obtained from HPROPSHEETPAGE.
366 msvcrt: Fix mbcasemap initialization.
367 msvcrt: Add support for multi-byte characters in _mbctolower_l.
368 msvcrt: Add support for multi-byte characters in _mbctoupper_l.
369 msvcrt: Fix error handling in _mbsupr_s_l.
370 msvcrt: Fix error handling in _mbslwr_s_l.
371 winedump: Handle NULL in get_unicode_str.
372 msvcrt: Fix _putenv_s return value on error.
373 msvcrt: Fix _wputenv_s return value on error.
374 msvcrt: Fix _wputenv_s invalid argument handling.
375 comctl32: Create page if PROPSHEETPAGE was passed as HPROPSHEETPAGE to PropertySheetAW or PSM_INSERTPAGE.
376 comctl32: Don't use PROPSHEETPAGE structure to store internal HPROPSHEETPAGE data.
377 comctl32: Fix PROPSHEETPAGE[AW] structure content in messages and callbacks.
378 comctl32: Add support for adding extra data in CreatePropertySheetPage.
379 compstui: Add CPSFUNC_ADD_PFNPROPSHEETUI support.
380 compstui: Add CPSFUNC_ADD_PROPSHEETPAGE support.
381 compstui: Test that callbacks are executed.
382 maintainers: Update Microsoft C Runtime files list.
383 winemac.drv: Fix registry path size in create_original_display_mode_descriptor.
386 opengl32: Split is_extension_supported helper.
387 opengl32: Build extension list in is_extension_supported.
388 opengl32: Move filter_extensions (et al.) around.
389 opengl32: Use has_extension in filter_extensions_index.
390 win32u: Use session BaseNamedObjects for display_device_init mutex.
391 winex11.drv: Use session BaseNamedObjects for display_device_init mutex.
392 dinput/tests: Add dummy flaky test count.
393 ntoskrnl.exe/tests: Add dummy flaky test count.
394 schedsvc/tests: Add dummy flaky test count.
395 win32u: Write display modes to registry as binary blobs.
397 Stanislav Motylkov (1):
398 hhctrl.ocx: Fix toolbar icons order.
400 Vladislav Timonin (2):
401 d2d1: Update to ID2D1Device1.
402 d2d1: Implement ID2D1Device1::CreateDeviceContext.
405 wined3d: Do not enforce GL map access for resources with WINED3D_RESOURCE_ACCESS_CPU.
406 ws2_32/tests: Add more tests for iosb contents while a recv is pending.
407 ntdll: The async handle passed to set_async_direct_result() cannot be NULL.
408 ntdll: Fill the IOSB in sock_recv() only inside the "if (alerted)" block.
409 ntdll: Combine the "if (alerted)" blocks in sock_recv().
410 ntdll: Fill the IOSB in sock_send() only inside the "if (alerted)" block.
411 ntdll: Combine the "if (alerted)" blocks in sock_send().
412 ntdll: Fill the IOSB in sock_transmit() only inside the "if (alerted)" block.
415 comctl32/tests: Ignore WM_NCPAINT when testing WM_THEMECHANGED for updown control.
416 comctl32/tests: Test if WM_STYLECHANGED repaints controls.
417 comctl32/treeview: Don't repaint when handling WM_STYLECHANGED.
418 comctl32/listview: Don't repaint when handling WM_STYLECHANGED.
419 comctl32/animate: Don't repaint when handling WM_STYLECHANGED.
420 comctl32/datetime: Don't repaint when handling WM_STYLECHANGED.
421 comctl32/syslink: Don't repaint when handling WM_STYLECHANGED.
422 comctl32/tab: Don't repaint when handling WM_STYLECHANGED.
423 comctl32/updown: Don't repaint when handling WM_STYLECHANGED.
424 comctl32/tests: Use a toolbar with TBSTYLE_FLAT in toolbar visual tests.
427 win32u: Add mechanism for font specific system links.
428 win32u: Add font link for MS UI Gothic.
429 win32u: Add more linked fonts for Tahoma.
430 win32u: Add locale_dependent member to struct system_link_reg.
431 win32u: Add font links for Microsoft JhengHei.
432 win32u: Add font links for MingLiU.
433 win32u: Add font links for MS Gothic.
434 win32u: Add font links for Yu Gothic UI.
435 win32u: Add font links for Meiryo.
436 win32u: Add font links for MS Mincho.