Wine Announcement

The Wine development release 1.7.48 is now available.

What's new in this release (see below for details):
  - Fleshed out OpenMP implementation.
  - I/O stream support in the MSVCIRT C++ runtime.
  - Support for pixel snapping in DirectWrite.
  - More support for OpenGL core contexts.
  - Various bug fixes.

The source is available from the following locations:

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 1.7.48 (total 39):

  11059  Sid Meier's Railroads Demo crashes on startup
  16519  EssentialPIM: Bold text not rendering correctly
  17506  Achtung die Kurve: Game doesn't start
  18191  Notepad corrupts files saved as utf-8 without a byte order mark (BOM)
  19289  Gtk+/Pango based applications have ugly font rendering or crash on startup
  19666  Multiple applications start wrong executable if whitespace present in name ('ShellExecute' doesn't quote executable name)(FoxitReader 3.0, GTA2 Manager)
  22399  Quake III Arena installer: Text area is scrolled at the bottom, and all text is selected
  26439  Chernobyl terrorist attack demo crashes on start
  27238  Tesla: The Weather Man demo: movement keys not working (GetKeyState should fallback to GetAsyncKeyState for threads without message queue)
  31063  Crash bug after finishing conversion in FormatFactory
  31643  Multiple games and applications crash on unimplemented function vcomp.dll._vcomp_fork (Gothic 3 demo, NeXTA)
  31984  Multiple games need d3dx9_36.dll.D3DXComputeTangentFrameEx (Starlaxis, Chernobyl Terrorist Attack Demo, The Endless Forest 3)
  32227  P2kCommander v6.0.0 crashes on startup (Wine's ungif reports app .gif image as broken)
  33153  DirectX11 games need d3d11.dll.D3D11CreateDeviceAndSwapChain (ARMA III Alpha, Strike Suit Zero, Stalker CoP, Perspective)
  33989  iexplore.exe crash when logging in to
  34356  Multiple applications fail to install or crash on startup due gdiplus enumeration/query failure for GIF encoder support (Magnus 2011 translation dictionaries, Movie Collector v9.x)
  34939  Dragon NaturallySpeaking does not run in 64-bit version
  34947  Creo Elements/Direct Modeling Express 4.0 InstallShield based installer shows oversized "installation completed" setup wizard window
  35493  IMVU shows loading bar, but will not start.
  35534  Oblivion: very loud/distorted/horrible collision sounds
  36336  NaturallySpeaking doesn't work with alsa or pasuspender
  36966  Turkey - Europe/Istanbul timezone is not detected
  37129  Clang Static Analyzer: Buffer overflow
  37281  Lord of The Rings Online: Crashes
  37449  Lexware Quicken 2014 Deluxe reports error 0x0000054f on startup (Promon Shield DRM needs RtlDecompressBuffer with COMPRESSION_FORMAT_LZNT1 support)
  38027  HyperStudio 5 (.NET 4.0 app) fails to start, reports 'tiff_get_decode_info unhandled grayscale sample count 2'
  38697  wineconsole: Cannot enable or disable Insert Mode through user dialog
  38712  win-key press incorrectly recognized
  38735  Windows Performance Analyzer from Windows SDK 8.1 Windows Performance Toolkit crashes due to 'IDWriteFontFace::GetGdiCompatibleGlyphMetrics' stub
  38806  Starcraft Campaign Editor does not scroll to bottom after copying a trigger
  38848  valgrind shows several uninitialized values in dmime/tests/dmime.c:test_track()
  38895  Multiple applications fail to load or crash due to incorrect security cookie randomization by loader (IrfanView WebP plugin, Word Viewer 2007)
  38904  Ufo Aftermath launcher hangs on start (missing "HKLM\Software\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers" registry key)
  38908  PlanetSide 2 v5.2.4.x launcher process exit causes wineserver crash
  38913  valgrind shows some definite leaks in d3drm/tests/d3drm.c:
  38914  valgrind shows uninitialized memory in dlls/dwrite/tests/layout.c
  38925  ipstats.c:1992 runtime error: index 32 out of bounds for type 'char [32]'
  38937  Bully: Scholarship Edition crashes on starting a new game (needs vcomp.dll._vcomp_for_static_simple_init implementation)
  38952  PDF-Xchange Viewer crashes when we launch OCR


Changes since 1.7.47:

Aaryaman Vasishta (6):
      d3drm: Move AddRef from device2->device3.
      d3drm: Move Release from device2->device3.
      d3drm: Move QueryInterface from device2->device3.
      d3drm/tests: Fix leaks while creating device in tests (Valgrind).
      d3drm: Thunk relevant IDirect3DRMDevice2 stubs to version 3.
      d3drm: Add stubs for IDirect3DRMDevice methods.

Akihiro Sagawa (3):
      po: Update Japanese translation.
      po: Fix a mistake in Japanese translation.
      mciseq: Ensure the player thread termination when stopping.

Alasdair Sinclair (1):
      ntdll: Add missing WINAPI to RtlDecompressFragment.

Alex Henrie (3):
      user32: Simplify if-else statement.
      user32: Scroll listbox item completely into view on LB_SETCURSEL.
      user32/tests: Correct spelling of "Invisible".

Alexandre Julliard (2):
      server: Don't associate a thread to the MJ_CREATE and MJ_CLOSE requests.
      winebuild: Add DllMain to the list of functions that should be private.

Alistair Leslie-Hughes (1):
      include: Correct spelling of Tessellate.

Andrew Cook (1):
      server: Implement JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE.

André Hentschel (10):
      iphlpapi: Fix possible Out-of-bounds write (Coverity).
      ws2_32: Pass correct buffer length to WS_inet_ntop (Coverity).
      mcicda: Remove dead code (Coverity).
      wordpad: Copy the correct amount of data with lstrcpynW (Coverity).
      notepad: Use character count for GetFileTitleW (Coverity).
      widl: Remove unused initializer (Clang).
      krnl386.exe16: Remove unused initializers (Clang).
      winedbg: Remove dead variable (Clang).
      dwrite: Remove unused initializer (Clang).
      winedump: Dump load config when available.

Aurimas Fišeras (1):
      po: Update Lithuanian translation.

Austin English (2):
      loader: Add HKLM\Software\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers registry key.
      winsta: Add initial winsta.h.

Christian Costa (2):
      d3dx9_36: Add stub for D3DXComputeTangentFrameEx.
      d3dx9_36: Add stub for D3DXIntersect.

Dan Kegel (2):
      vcomp: Implement stub for _vcomp_fork.
      vcomp/tests: Add additional tests for _vcomp_fork.

Daniel Lehman (2):
      msvcp90: Implement time_get<char> ctors and dtors (Valgrind).
      gdi32: Check for NULL pointer in GetOutlineTextMetrics.

Dmitry Timoshkov (15):
      kernel32: Fix compilation of loader tests with PSDK.
      kernel32/tests: Add a loader test using minimal PE image that Windows7 is able to load.
      ole32: Fix a memory leak.
      include: Add support for NtCurrentTeb and PSDK compiler in 64-bit mode.
      winex11.drv: On KeymapNotify event also sychronize WinKey state.
      windowscodecs: Add support for 8bpp grayscale TIFF with 8bpp alpha.
      gdiplus: Move the burden of supporting GIF encoding to the WIC backend.
      windowscodecs/tests: Add some tests for loading truncated GIF images.
      windowscodecs: Don't fail to decode GIF if an image has been already loaded.
      ntdll: Cache contents of IMAGE_TLS_DIRECTORY instead of saving a directory pointer.
      windowscodecs: Properly handle empty GIF extension blocks.
      user32: Add a test to show that fonts returned by SystemParametersInfo(SPI_GETNONCLIENTMETRICS) should be listed by EnumFontFamilies(hdc, NULL).
      gdi32: Add a test for enumerating substituted fonts.
      gdi32: EnumFontFamilies should enumerate substituted fonts only when directly asked for.
      user32: SystemParametersInfo(SPI_GETNONCLIENTMETRICS) should return real font names.

Erich Hoover (2):
      ntoskrnl.exe: Improve IoGetDeviceObjectPointer stub to appease SecuROM 5.x.
      ntdll: Only set the security cookie if it has not already been set.

Frédéric Delanoy (2):
      wineconsole: Leave more room for translations in resource file.
      po: Update French translation.

Hans Leidekker (19):
      msi: Check the return value of MSI_QueryGetRecord (Coverity).
      msi: Fix a couple of memory leaks (Coverity).
      msi: Add a stub implementation of MsiJoinTransaction.
      msi/tests: Avoid another test failure on win2k3.
      ieframe: Implement IViewObject::GetAdvise and IViewObject::SetAdvise.
      ieframe: Never pass a NULL string pointer with DISPID_STATUSTEXTCHANGE.
      user32: Add a stub implementation of UnregisterPowerSettingNotification.
      user32: Return a fake handle from RegisterPowerSettingNotification.
      server: Make returning used privileges optional in token_access_check.
      msi/tests: Mark a test result on win2k3 as broken.
      wininet/tests: Include the error code in a failure message.
      davclnt: Add stub implementations of DavRegisterAuthCallback and DavUnregisterAuthCallback.
      iphlpapi: Add a partial implementation of CreateSortedAddressPairs.
      iphlpapi: Implement a couple of interface identifier conversion functions.
      include: Add definition of MIB_IF_ROW2.
      iphlpapi: Implement GetIfEntry2.
      netprofm: Create a connection point object for INetworkCostManagerEvents.
      netprofm: Improve the stub for INetworkCostManager::GetDataPlanStatus.
      netapi32: Implement DavGetHTTPFromUNCPath.

Henri Verbeet (18):
      d2d1: Implement d2d_factory_CreateRectangleGeometry().
      d2d1: Also bind the pixel shader and blend state in d2d_brush_bind_resources().
      d2d1: Introduce a separate function to construct pixel shader constant buffers for brushes.
      d2d1: Implement d2d_d3d_render_target_FillGeometry().
      d2d1: Implement d2d_geometry_sink_AddLines().
      d2d1: Properly trace "vertex_count" in d2d_path_geometry_triangulate().
      d2d1/tests: Don't call compare_surface() inside ok().
      d2d1: Implement d2d_geometry_sink_SetFillMode().
      d2d1: Implement initial support for drawing bezier curves.
      d2d1: Add some FIXMEs for unimplemented functionality to d2d_d3d_render_target_DrawGlyphRun().
      d3d10core: Implement d3d10_device_CopySubresourceRegion().
      d2d1: Add a missing TRACE to d2d_d3d_render_target_FillRectangle().
      d2d1: Implement d2d_d3d_render_target_FillRoundedRectangle().
      d2d1: Implement d2d_d3d_render_target_FillEllipse().
      d2d1: Fix the bitmap DPI scale for bitmap brushes.
      d2d1: Implement d2d_d3d_render_target_GetPixelFormat().
      include: Add WIC error codes to winerror.h.
      d2d1: Also infer the alpha mode in d2d_d3d_render_target_CreateBitmapFromWicBitmap().

Hugh McMaster (3):
      wineconsole: Rearrange user dialog to make room for new controls and improve resource strings.
      wineconsole: Allow users to enable or disable Insert Mode via the user dialog.
      kernel32: Enabling/disabling Insert Mode via the user dialog should take effect immediately.

Huw D. M. Davies (15):
      rpcrt4: Initialize CorrDespIncrement to zero and mark the pre-Vista behaviour as broken.
      rpcrt4: Set CorrDespIncrement to the size of the (non-range) /robust payload.
      rpcrt4: Add missing calls to NdrCorrelationInitialize/Free.
      rpcrt4: Use CorrDespIncrement to skip over the correlation descriptor.
      rpcrt4: Procedures containing a range within a conformance have a larger correlation descriptor.
      msi: Fix a registry key leak.
      msi: Be more selective about which access modes are used to open or create keys.
      advapi32: Don't call CloseServiceHandle() with an invalid handle.
      msi: Don't call CloseServiceHandle() with an invalid handle.
      net: Don't call CloseServiceHandle() with an invalid handle.
      wbemprox: Don't call CloseServiceHandle() with an invalid handle.
      mshtml/tests: Fix a crash on Win 2008.
      winhttp: Fix a reference leak.
      winhttp: Don't wait for the task thread to exit.

Iván Matellanes (21):
      msvcirt: Implement ios locking control.
      msvcirt: Implement ios object locking.
      msvcirt: Implement ios stream locking.
      msvcirt: Implement ios static locking.
      msvcirt: Implement ios::flags.
      msvcirt: Implement ios::setf.
      msvcirt: Implement ios::unsetf.
      msvcirt: Implement ios::fill.
      msvcirt: Implement ios::precision.
      msvcirt: Implement ios::width.
      msvcirt: Implement ios::tie.
      msvcirt: Implement ios::rdbuf.
      msvcirt: Implement ios::delbuf.
      msvcirt: Implement ios status-testing functions.
      msvcirt: Implement ios operators.
      msvcirt: Add ios format flag masks.
      msvcirt: Implement ios manipulators.
      msvcirt: Implement ios::bitalloc.
      msvcirt: Add support for ios state variables.
      msvcirt: Add ios instance counter.
      msvcirt: Correct the statebuf array exports.

Jacek Caban (7):
      ieframe: Allow travellog buffer to grow even if we're loading from the history.
      ieframe: Fixed invalid COM object usage.
      widl: Don't output C++ default value if the argument is followed by another without default value.
      include: Added inspectable.idl file.
      ieframe: Release client site interface before destroying embedding window.
      ieframe: Added support for OnFocus notifications.
      ieframe: Improved debug traces.

Jactry Zeng (2):
      gdi32: Add a helper to map font replacement.
      gdi32: Add multiple font replacement support.

Jarkko Korpi (1):
      widl: Increase buffer size in typegen.c.

Julian Rüger (1):
      po: Update German translation.

Lauri Kenttä (1):
      po: Update Finnish translation.

Matteo Bruni (8):
      wined3d: Make the core extensions enabling table-based.
      wined3d: Add more entries to the core extensions table.
      wined3d: Bind a VAO when using core profile contexts.
      wined3d: Avoid glBegin() / glEnd() in check_fbo_compat() when possible.
      wined3d: Don't run check_filter() on core contexts.
      wined3d: Allow to apply extension emulation wrappers independently.
      wined3d: Don't crash when emulating GL_EXT_fogcoord.
      wined3d: Only install emulation wrappers when required.

Michael Müller (1):
      aclocal.m4: Search for otool using AC_CHECK_TOOL.

Michael Stefaniuc (6):
      include: Add IAMVfwCaptureDialogs declaration.
      qcap: Remove initialization code from QI of VfwCapture.
      qcap: There can be only ONE QueryInterface in VfwCapture!.
      qcap: Support COM aggregation in VfwCapture.
      qcap/tests: Add COM tests for VfwCapture.
      wined3d: Merge two adjacent ifs with identical condition (PVS-Studio).

Nikolay Sivov (30):
      dwrite: Implement pixel snapping in Draw().
      dwrite: Check GetGdiCompatibleMetrics() return value (Coverity).
      dwrite: Implement SetWordWrapping() for layout.
      dwrite: Handle negative emsize in GetGdiCompatibleMetrics().
      dwrite: Implement GetMetrics() for trimming sign.
      dwrite: Remove excessive tracing when forwarding to IDWriteTextFormat1.
      dwrite: Fix EndFigure notification in GetGlyphRunOutline().
      po: Update Russian translation.
      dwrite: Make sure explicit levels are always initialized (Valgrind).
      dwrite/tests: Fix trimming sign instance leak (Valgrind).
      dwrite: Fix transform matrix usage for pixel snapping.
      dwrite: Partially implement GetGdiCompatibleGlyphAdvances().
      dwrite: Partial implementation of GetGdiCompatibleGlyphMetrics().
      dwrite: Properly pass measuring mode to renderer.
      dwrite/tests: Some tests for CreateGdiCompatibleTextLayout().
      dwrite: Round advances returned from GetGdiCompatibleGlyphPlacements().
      dwrite: Fix vector transformation in GetGlyphOrientationTransform().
      dwrite: Aliased texture could only be requested for aliased rendering mode.
      dwrite: Improve parameter validation in GetGdiCompatibleGlyphAdvances(), add some tests.
      dwrite/tests: Some tests for bounds returned by GetAlphaTextureBounds().
      dwrite: Round centered alignment shift for compatible layouts.
      dwrite/tests: Some tests for isNewline clusters.
      dwrite: Bitmap render target uses top-down DIB.
      dwrite: Update cached bitmap size on Resize() as well.
      shell32: Added GetCurrentProcessExplicitAppUserModelID() stub.
      webservices: Added WsCreateError stub.
      user32: Initialize buffer before sending WM_GETTEXT.
      user32: Don't send WM_GETTEXT from GetWindowText() with invalid buffer length.
      dwrite/tests: Some tests for GetRecommendedRenderingMode().
      dwrite: Implement GetRecommendedRenderingMode().

Piotr Caban (6):
      shell32: Remove code for separating arguments from file path.
      shell32: Handle executable with space in path in SHELL_execute.
      shell32: Fix SHELL_execute code that removes quote arround file name.
      msvcrt: Don't call DeleteCriticalSection on static critical section.
      winemac.drv: Release mouse capture when destroying window specified in SetCapture call.
      mshtml: Test body.offsetHeight value in quirks mode.

Qian Hong (1):
      kernel32: Fix GetComputerName buffer overflow.

Sebastian Lackner (30):
      ntdll: Fix incorrect assignment in assert statement (Coverity).
      dwrite: Avoid dereferencing NULL pointer for fonts without VDMX.
      vcomp: Implement omp_get_max_threads and omp_set_num_threads.
      vcomp: Implement omp_{get,set}_nested.
      vcomp: Implement _vcomp_set_num_threads and omp_get_thread_num.
      server: Avoid sending unexpected wakeup with uninitialized cookie value.
      kernel32/tests: Repeat test for SignalObjectAndWait multiple times to test wineserver wakeup cookie management.
      configure: Do not assume gcc strength reduce bug when cross-compiling.
      shell32: Ensure that commandline is null-terminated when no parameters are given.
      ntdll: Avoid possible deadlock by using _exit() in NtTerminateProcess.
      vcomp: Add multithreaded implementation for _vcomp_fork.
      vcomp: Implement _vcomp_barrier.
      vcomp/tests: Add initial tests.
      vcomp: Implement _vcomp_sections_init and _vcomp_sections_next.
      vcomp/tests: Add tests for vcomp sections.
      vcomp: Allow calls to _vcomp_sections_init outside of parallel environment.
      vcomp: Fix handling of _vcomp_fork with ifval == FALSE.
      vcomp: Implement omp_in_parallel and add tests.
      vcomp: Implement _vcomp_for_static_simple_init and _vcomp_for_static_end.
      vcomp/tests: Add tests for _vcomp_for_static_simple_init.
      vcomp: Implement _vcomp_for_static_init.
      vcomp/tests: Add tests for _vcomp_for_static_init.
      ntdll/tests: Add basic tests for RtlQueueWorkItem.
      ntdll: Reimplement RtlQueueWorkItem on top of new threadpool API.
      vcomp: Implement 32-bit atomic integer functions.
      vcomp/tests: Add tests for 32-bit atomic integer functions.
      vcomp: Implement atomic float functions.
      vcomp/tests: Add tests for atomic float functions.
      vcomp: Implement atomic double functions.
      vcomp/tests: Add tests for atomic double functions.

Vincent Povirk (1):
      winex11.drv: Don't change net_wm maximized state for minimized windows.

YongHao Hu (1):
      msvcp110: Fix TRACE msg of tr2 functions.

Zhenbo Li (3):
      mshtml: Add IHTMLXMLHttpRequest::responseText() method implementation.
      mshtml: Add IHTMLXMLHttpRequest::status property implementation.
      mshtml: Add nsChannel_GetResponseStatusText implementation.

Alexandre Julliard
[email protected]