The Wine development release 1.9.4 is now available
What's new in this release (see below for details):Wine 1.9.4 released
- Support for color glyphs and font fallbacks in DirectWrite.
- Improvements to the WebServices reader.
- Support for more formats in Direct3D 11.
- Simplified syntax and clean up of tests marked todo.
- Various bug fixes.
The source is available from the following locations:
http://dl.winehq.org/wine/source/1.9/wine-1.9.4.tar.bz2
http://mirrors.ibiblio.org/wine/source/1.9/wine-1.9.4.tar.bz2
Binary packages for various distributions will be available from:
http://www.winehq.org/download
You will find documentation on http://www.winehq.org/documentation
You can also get the current source directly from the git
repository. Check http://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 1.9.4 (total 27):
9823 Mentioning "wine eject" in SGML
11657 Problems with MessageBox API
12217 Documentation should be in XML and not SGML format
13683 Ultima IX: Mouse pointer missing when reading books, under inventory
19733 Pendulumania crashes
21454 Dolphin Wii/GCN emulator crashes on rom load
27680 Multiple 64-bit applications crash on startup (violation of the Windows 64-bit ABI, stack pointer (RSP) must be 16-byte aligned when making a call to Win64 API)
29862 BitComet versionDOS error mappings.
winemac.drv: Don't bother storing the OpenGL version.
libwine: Define some functions only on i386 (Clang).
mscoree: Improve RuntimeHost_Invoke()'s error output a bit.
dinput: Don't define a debug channel when it isn't used.
gdi32: Declare our intent explicitly to the compiler.
mscoree: Implement ICorRuntimeHost::CreateDomain{, Ex}().
advapi32: Don't print 32-bit values as long integers.
winemac.drv: Don't print 32-bit values as long integers (Clang).
secur32: Don't print 32-bit values as long integers (Clang).
quartz: Remove unused variable (Clang).
winemac.drv: Actually make the GL context current even if no drawables were given.
Detlef Riekenberg (1):
api-ms-win-core-localization-l1-1-0: Add stub dll.
Dmitry Timoshkov (1):
kernel32: CompareStringW should abort on the first nonmatching character to avoid an invalid memory access.
François Gouget (16):
shell32/tests: Fix okShell()'s tracing so it takes todo and other flags into account.
shell32/tests: Fix the DDE tests on Windows 10.
shell32/tests: Fix test_dde_default_app() on Windows XP SP1.
shell32/tests: Fix a ShellExecute() race condition.
shell32/tests: Remove support for a todo_wine flag in ShellExecute()'s test_lnks() loop.
shell32/tests: Skip a few ShellExecute() tests when the process has insufficient privileges.
shell32/tests: Move a test_argify() check so it is run even if we could not create associations.
shell32/tests: Fix the ShellExecute() environment variable inheritance checks.
shell32/tests: Allow the short and long forms when checking a ShellExecute() path.
shell32/tests: Fix an ok() call so it shows which DDE test caused the failure.
shell32/tests: Use todo_wine_if() in tests.
shell32/tests: Take into account the Windows 10 DDE race condition.
schedsvc/tests: Recognize Windows 10's RPC version.
msvcrt/tests: Fix the Norwegian locale tests on Windows 10.
crypt32/tests: Clarify some base64 test failed messages.
shell32/tests: Only look for Explorer windows for the progman tests.
FrÃdÃric Delanoy (10):
po: Update French translation.
imagehlp/tests: Use todo_wine_if() in tests.
kernel32/tests: Use todo_wine_if() in tests.
mscms/tests: Use todo_wine_if() in tests.
ddraw/tests: Use todo_wine_if() in tests.
d3d9/tests: Use todo_wine_if() in tests.
d3d8/tests: Use todo_wine_if() in tests.
dwrite/tests: Use todo_wine_if() in tests.
ieframe/tests: Use todo_wine_if() in tests.
mshtml/tests: Use todo_wine_if() in tests.
Hans Leidekker (11):
webservices: Implement WsFindAttribute.
webservices: Reset the attribute index in read_element.
webservices: Insert an end element node for self-closing tags in the reader.
webservices: Implement WS_MOVE_TO_ROOT_ELEMENT in the reader.
webservices: Implement WS_MOVE_TO_NEXT_ELEMENT in the reader.
webservices: Implement WS_MOVE_TO_PREVIOUS_ELEMENT in the reader.
webservices: Implement WS_MOVE_TO_CHILD_ELEMENT in the reader.
webservices: Implement WS_MOVE_TO_END_ELEMENT in the reader.
webservices: Implement WS_MOVE_TO_PARENT_ELEMENT in the reader.
webservices/tests: Add tests.
msi: Fix the CHAR column type.
Henri Verbeet (50):
ddraw/tests: Rewrite yv12_test().
ddraw/tests: Rewrite offscreen_test().
ddraw/tests: Rewrite rectangle_settings().
wined3d: Introduce wined3d_texture_get_overlay_position().
wined3d: Introduce wined3d_texture_set_overlay_position().
wined3d: Introduce wined3d_texture_update_overlay().
wined3d: Get rid of wined3d_surface_update_overlay_z_order().
wined3d: Get rid of wined3d_device_update_surface().
wined3d: Store the "user_memory" pointer in the texture instead of the surface.
wined3d: Store custom pitches in the texture instead of the surface.
ddraw: Use the correct height when calculating the linear size in ddraw_surface_init().
wined3d: Handle slice pitch and alignment as well in wined3d_format_calculate_pitch().
wined3d: Use wined3d_format_calculate_pitch() in surface_download_data().
wined3d: Use wined3d_texture_get_pitch() in texture3d_sub_resource_upload_data().
wined3d: Use wined3d_texture_get_pitch() in wined3d_volume_upload_data().
wined3d: Use wined3d_texture_get_pitch() in wined3d_volume_map().
wined3d: Use wined3d_texture_get_pitch() in surface_create_dib_section().
wined3d: Use wined3d_texture_get_pitch() in surface_download_data().
wined3d: Use wined3d_texture_get_pitch() in surface_upload_from_surface().
wined3d: Use wined3d_texture_get_pitch() in wined3d_surface_map().
wined3d: Use wined3d_texture_get_pitch() in read_from_framebuffer().
wined3d: Use wined3d_texture_get_pitch() in surface_load_texture().
ddraw: Use wined3d_texture_get_pitch() in ddraw_surface_init().
wined3d: Get rid of the surface parameter to wined3d_device_parent_ops.surface_created().
wined3d: Ignore wined3d_sampler_desc.srgb_decode if WINED3D_SRGB_READ_WRITE_CONTROL is not set.
wined3d: Use FIELD_OFFSET to calculate the size in surface_create_dib_section().
wined3d: Use a wined3d_string_buffer to dump the intermediate shader code.
d3d8: Disable WINED3D_SRGB_READ_WRITE_CONTROL.
ddraw: Disable WINED3D_SRGB_READ_WRITE_CONTROL.
wined3d: Get rid of the unused _WINEDDOVERLAYFX structure.
ddraw: Handle DDBLT_DDROPS in ddraw_surface7_Blt().
wined3d: Get rid of unused/unimplemented WINEDDBLT_* flags.
wined3d: Replace WINEDDBLTFX with a new structure that only includes the used fields.
wined3d: Use wined3d_texture_blt() in resolve_depth_buffer().
ntdll: Add special handling for int $0x2d exceptions.
wined3d: Allocate the sub_resources array as part of the texture.
wined3d: Introduce wined3d_texture_get_sub_resource_parent().
ddraw: Use wined3d_texture_get_sub_resource_parent() in ddraw_surface_create().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_device_GetBackBuffer().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_device_create_surface().
d3d8: Use wined3d_texture_get_sub_resource_parent() in device_parent_create_swapchain_texture().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_swapchain_GetBackBuffer().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_2d_LockRect().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_2d_UnlockRect().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_2d_GetSurfaceLevel().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_cube_LockRect().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_cube_UnlockRect().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_cube_GetCubeMapSurface().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_3d_LockBox().
d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_3d_UnlockBox().
Hugh McMaster (30):
reg: Remove stub output from the 'add' and 'delete' functions.
reg: Split reg_printfW into separate functions.
reg: Use FormatMessage for easier internationalization support.
reg: Output messages with a variable number of arguments and convert message arrays to strings.
reg: Specify the data type that is unsupported.
reg: Output program name instead of the generic 'Error'.
reg: Ask the user whether they want to overwrite an existing registry value.
reg: Do not allow combinations of /v, /ve or /va in the 'delete' function.
reg: Do not allow /v and /ve to be used together in the 'add' function.
reg/tests: Add tests for /v* flags.
reg: Add support for the default registry value in ask_confirm().
reg: Ask the user if they want to delete the subkey, value, default value or all values.
reg/tests: Add tests for /d with no data argument.
reg/tests: Fix incorrect expected value.
reg: Fail when /d is used without an accompanying argument.
reg: Call RegCloseKey before exiting if the user chooses to cancel the overwriting operation.
reg: Fail if REG_DWORD is passed with no data argument.
reg: Handle data from REG_NONE.
reg: Handle data for REG_EXPAND_SZ.
reg: Handle data for REG_DWORD_LITTLE_ENDIAN and REG_DWORD_BIG_ENDIAN.
reg: Add case for REG_MULTI_SZ.
reg: Abort the process if get_regdata returns NULL.
reg/tests: Add two more tests for REG_DWORD.
reg: Fail if strtolW cannot convert the entire data string into a DWORD.
reg: Use strtoulW during conversion so we can set any value in the DWORD range.
reg: Fail if the data argument for REG_DWORD begins with a minus sign.
reg: Explicitly use base 10 or base 16 with strtoulW.
reg: Fail if /s is used without an accompanying argument.
reg/tests: Add a test for /s with no separator character.
reg: Fail if the separator for REG_MULTI_SZ is not one character in length.
Huw D. M. Davies (1):
usp10: ScriptPlace should honour the fZeroWidth attribute.
Jacek Caban (6):
d3d11.idl: Added D3D11_QUERY_DATA_TIMESTAMP_DISJOINT declaration.
mshtml/tests: Fixed style tests on IE6.
mshtml/tests: Fixed xmlhttprequest tests on IE7.
ntdll: Pass SYNCHRONIZE flag in NtOpenFile and NtCreateFile calls.
ntdll: Don't call NtOpenKeyEx directly from NtOpenKey.
urlmon/tests: Use todo_wine_if in uri.c tests.
Jactry Zeng (3):
user32/tests: Test DDE end to end with Chinese text that starts with Latin characters.
mlang/tests: Simplify test with todo_wine_if.
riched32/tests: Simplify tests with todo_wine_if.
Jianqiu Zhang (1):
wpcap: Fix crash on pcap_loop.
Joachim Priesner (1):
comctl32: Treeview: Set visible = TRUE when deleting first visible item.
Józef Kucia (23):
wined3d: Move internal format queries to separate function.
wined3d: Add support for separate sRGB formats.
d3d11: Enable sRGB decode.
d3d11/tests: Add test for sRGB textures.
d3d10core/tests: Add test for sRGB textures.
wined3d: Allow to query if surface format supports gamma correction.
d3d9/tests: Add test for surface format gamma correction query.
wined3d: Add support for WINED3DFMT_R16_UINT format.
wined3d: Add support for WINED3DFMT_R32G32B32A32_UINT format.
wined3d: Add support for WINED3DFMT_R32G32B32A32_SINT format.
wined3d: Extend support for typeless formats.
d3d11/tests: Test creation of typeless resources.
wined3d: Fix comment in init_format_texture_info().
wined3d: Add remaining sRGB formats.
wined3d: Introduce table with typed format channels.
wined3d: Rename getFmtIdx() to get_format_idx().
wined3d: Use format id as index in formats table whenever possible.
wined3d: Copy channel info for typed formats from typeless formats.
wined3d: Move more formats to typed_formats table.
dxgi: Return S_OK in dxgi_factory_MakeWindowAssociation() stub.
d3d11: Do not generate ERR messages for unrecognized shader bytecode.
d3d11: Extract SM5 shader code from DXBC.
d3d11/tests: Test creation of level_9_* shaders.
Ken Thomases (2):
wined3d: Change calls of GetDC() to GetDCEx() with DCX_CACHE so the HDC is not shared with other threads.
winemac: Wrap performing requests from background threads in an autorelease pool.
Lauri Kenttä (2):
po: Improve Finnish translation.
po: Update Finnish translation.
Louis Lenders (1):
uxtheme: Fix CloseThemeData with invalid handle value.
Marcus Meissner (1):
ntdll: Cast left shifted 1 to be ulong wide (Coverity).
Matteo Bruni (5):
d3d8: Make CheckDeviceType() fail for display formats other than D3DFMT_X8R8G8B8 and D3DFMT_R5G6B5 in full-screen.
wined3d: Add WINED3DFMT_FLAG_RENDERTARGET to WINED3DFMT_B5G5R5X1_UNORM.
wined3d: Mark a couple of unimplemented relative addressing cases with FIXMEs.
d3d10core/tests: Test relative addressing in constant buffers.
wined3d: Add shader limits for SM5.
Michael Müller (14):
msvideo.dll16: Translate 16 bit address in lparam for MCIWNDM_SETTIMEFORMATA message.
include: Add definitions for Win8 pseudo handles.
server: Add support for Win8 pseudo handles.
advapi32/tests: Add tests for Win8 pseudo handles.
api-ms-win-core-com-l1-1-1: Add dll.
api-ms-win-core-delayload-l1-1-1: Add dll.
api-ms-win-core-libraryloader-l1-2-0: Add dll.
api-ms-win-core-kernel32-legacy-l1-1-1: Add dll.
api-ms-win-eventing-classicprovider-l1-1-0: Add dll.
api-ms-win-core-winrt-registration-l1-1-0: Add dll.
ntdll: Implement SystemRecommendedSharedDataAlignment class in NtQuerySystemInformation.
kernel32: Allow to pass NULL as old protection in VirtualProtect for Win9x compatibility.
api-ms-win-core-wow64-l1-1-0: Add dll.
api-ms-win-core-threadpool-l1-2-0: Add dll.
Nikolay Sivov (53):
ntdll: Remove redundant NULL check (Coverity).
dwrite: Accept platform 0 name records if there's nothing, else.
dwrite: Don't create enumerator with invalid palette.
dwrite: Implement IsColorFont().
dwrite: Implement color glyph run decomposition.
dwrite: Improve error handling in ConvertFontToLOGFONT() (Coverity).
dwrite/tests: Added a drawing test for run reordering case.
dwrite: Support optional glyph offsets for color runs.
dwrite: Fetch all glyphs at once instead of locking/unlocking for every glyph.
gdi32: Fix otmfsSelection to have italic style set in case of oblique simulation.
gdi32/tests: Turn some asserts in font tests into regular tests.
po: Update Russian translation.
gdi32: Fix otmfsSelection to have bold style set in case of bold simulation.
dwrite: Add a helper to test for isolate class instead of relying on enum layout.
dwrite: Use enum members for class testing, simplify reseting to NI before applying Nx rules.
comctl32/tests: Simplify tests using todo_wine_if().
msxml3/tests: Simplify a couple of tests using todo_wine_if().
usp10: Use memcpy() to return ScriptLayout() results.
dwrite: Add support for PFM files in Analyze().
gdi32/tests: Simplify tests using todo_wine_if().
user32/tests: Simplify some tests using todo_wine_if().
advapi32/tests: Simplify tests using todo_wine_if().
comdlg32/tests: Simplify a test using todo_wine_if().
gdi32: Only REG_SZ and REG_MULTI_SZ types make sense for font replacement, ignore the rest.
dwrite: Support font replacement registry settings.
dwrite: Implement stub for system IDWriteFontFallback.
dwrite: Keep factory reference for each layout.
dwrite: Move local stream tracing to a separate channel.
dwrite: Initial implementation of MapCharacters().
dwrite: Use current layout fallback when creating run font faces.
po: Update Russian translation.
dwrite: Suppress noisy message when parsing name records.
mpr: Query for NPAddConnection and NPAddConnection3 when loading a provider.
riched20/tests: Use todo_wine_if() in tests.
xmllite/tests: Use todo_wine_if() in tests.
kernel32/tests: Use todo_wine_if() in tests.
dwrite: Force advances to zero for isZeroWidthSpace glyphs.
dwrite: Use itemizer hint to reset invisible run glyph count.
dwrite: Add fallback data for some of Japanese ranges.
dwrite: Always use system font collection to create fallback fonts.
include: Add initial dwrite_3.idl.
include: Some more definitions for dwrite_3.idl.
dwrite: Update to IDWriteTextLayout3.
dwrite: Implement InvalidateLayout().
dwrite: Update to IDWriteTextFormat1.
xaudio2_7/tests: Use todo_wine_if() in tests.
ws2_32/tests: Use todo_wine_if() in tests.
wmiutils/tests: Use todo_wine_if() in tests.
wininet/tests: Use todo_wine_if() in tests.
usp10/tests: Use todo_wine_if() in tests.
kernel32/tests: Additional test for GetStringTypeW() and Zl/Zp categories.
dwrite: Make SetBidiLevel() calls relative to initial text source position.
dwrite: Fix Unknown/Common/Inherited script categories handling.
Pierre Schweitzer (1):
mpr: Partially implement WNetUseConnectionW().
Piotr Caban (4):
user32: Select text control content while setting dialog focus.
user32/tests: Add more dialog creation message tests.
msvcrt: Don't use isdigit in places where only 0-9 digits are handled.
msvcr120: Add wcstof implementation.
Qian Hong (2):
advapi32/tests: Add invalid parameter tests for AccessCheck.
advapi32/tests: Add more invalid parameter tests for AccessCheck.
RafaÅ HarabieÅ (1):
msvcr120: Implement atoll, _atoll_l, _wtoll, _wtoll_l.
Riccardo Bortolato (1):
wined3d: Get rid of wined3d_device_get_surface_from_dc().
Sebastian Lackner (57):
server: Fix memory leak of object name structure.
server: Fix an invalid memory access in subtract_overlapping (Valgrind).
vcomp/tests: Reenable architecture dependent tests.
vcomp: Implement 64-bit atomic instructions.
vcomp/tests: Add tests for 64-bit atomic instructions.
ntdll/tests: Simplify exception tests by using todo_wine_if.
kernel32/tests: Simplify activation context tests by using todo_wine_if.
mmsystem.dll16: Fix argument order in GlobalAlloc16 call.
kernel32/tests: Move logic of okChildInt macro into a function.
kernel32/tests: Disable Windows version dependent test for pcPriClassBase.
combase: Implement WindowsCompareStringOrdinal.
combase/tests: Add tests for WindowsCompareStringOrdinal.
combase: Implement WindowsTrimStringStart.
combase: Implement WindowsTrimStringEnd.
combase/tests: Add tests for WindowsTrimString{Start,End}.
ntdll: Implement RtlInterlockedPushListSListEx and fix calling convention of RtlInterlockedPushListSList.
kernel32/tests: Clean up interlocked SList tests.
kernel32/tests: Add tests for RtlInterlockedPushListSList[Ex].
kernel32: Forward InterlockedPushListSList[Ex] to ntdll.
ntdll: Skip unused import descriptors when loading libraries.
avifil32/tests: Remove a couple of unnecessary tests.
crypt32/tests: Remove duplicate test.
msvcp100/tests: Use brackets to protect arguments in call_func2 macro.
msvcrt/tests: Use brackets to protect arguments in call_func2 macro.
msvcp60/tests: Use brackets to protect arguments in call_func macros.
msvcp90/tests: Use brackets to protect arguments in call_func macros.
msvcr90/tests: Use brackets to protect arguments in call_func2 macro.
xaudio2_7: Unset DebugInfo->Spare[0] before destroying critical sections.
mciqtz32: Unset DebugInfo->Spare[0] before destroying critical sections.
winmm: Unset DebugInfo->Spare[0] before destroying critical sections.
vmm.vxd: Fix protection flags passed to VirtualAlloc.
kernel32/tests: Add additional tests for CompareStringA.
opengl32: Ensure extension tables generated by make_opengl contain earliest GL_VERSION for each function.
kernel32/tests: Add test to show that CompareStringW aborts on first non-matching character.
kernel32/tests: Add a test to show that VirtualFree fails with type MEM_FREE.
kernel32/tests: Ensure VirtualAlloc tests do not depend on previous memory allocations.
ntdll/tests: Fix flags passed to VirtualFree in exception tests.
kernel32/tests: Fix flags passed to VirtualFree in multiple tests.
ntoskrnl.exe: Fix calling convention of InterlockedPopEntrySList.
ntoskrnl.exe: Fix calling convention of InterlockedPushEntrySList.
ntoskrnl.exe: Fix calling convention of ObfReferenceObject.
ntoskrnl.exe: Use debugstr_us() to trace UNICODE_STRING.
oleaut32/tests: Avoid misleading assignment in refcounting tests.
ws2_32/tests: Add tests for getsockopt() with SO_SNDBUF and SO_RCVBUF optname.
kernel32: Do not inherit QT_* environment variables to Windows environment.
services: Start SERVICE_FILE_SYSTEM_DRIVER services with winedevice.
winegstreamer: Manually assign union variables.
ntdll/tests: Add tests for RtlInitializeCriticalSectionEx.
mshtml/tests: Fix operator priority in ok() condition.
vbscript/tests: Fix operator priority in ok() condition.
ntdll: Mimic Windows behaviour when calling debug service.
ntdll: Implement handling of int $0x2d for x86_64.
ntdll/tests: Add more tests for calling int $0x2d on x86 and x86_64.
ntdll/tests: Add additional tests for instruction pointer in debug service tests.
ntdll/tests: Add separate tests for exception handling of int $0x3.
ntdll: Fix up instruction pointer in context for EXCEPTION_BREAKPOINT on x86_64.
ntdll: Set correct number of arguments for breakpoint exceptions.
Stefan Dösinger (5):
wined3d: Introduce wined3d_texture_get_pitch().
wined3d: Remove the DIB extra line hack.
wined3d: Store texture sub-resources as structures containing resource pointers.
wined3d: Introduce wined3d_texture_check_block_align().
wined3d: Track SFLAG_NONPOW2 per-texture.
Stefan Leichter (1):
kernel32: Return a dummy value in GetSystemPreferredUILanguages.
Vincent Povirk (4):
gdiplus/tests: Add test for GdipWidenPath.
kernel32/tests: Avoid testing for a hard-coded timezone name.
gdiplus/tests: Add test for matrix transform in GdipWidenPath.
gdiplus: Fix GdipWidenPath transform for non-pixel pens.
YongHao Hu (2):
msvcp120/tests: Simplify tests by using todo_wine_if.
msvcp110: Add tr2_sys__Symlink implementation and test.