The Wine development release 1.7.31 is now available.

What's new in this release (see below for details):
  - New version of the Gecko engine based on Firefox 34.
  - Support for the Visual Studio 2013 version of the C/C++ runtimes.
  - More font metrics support in DirectWrite.
  - Some more Direct2D work.
  - Various bug fixes.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.7.31.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.31.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.7.31 (total 51):

   3766  GRE Powerprep Software crashes
   9190  Warhammer: Dark Omen doesn't launch
  10085  Adobe Bridge CS2 complains that it can't start due to licensing restrictions (affects photoshop)
  10212  Microsoft Crimson Skies crashes after startup
  13632  ShipSimulator 2008 freezes after start playing (needs d3dx9_36.D3DXCreatePolygon)
  16584  chaostheory music lack of drums
  16699  OpenGL anti-aliasing capabilities of graphics driver not exposed to Google Sketchup 7/8 (needs WGL_SWAP_COPY_ARB support)
  16832  Hinterland fails to run, wine reports Unhandled page fault to NULL
  18289  wine gets some wrong charcodes on some keyboard mappings
  18689  Wine serial-handling consumes 100% CPU when using USB->Serial-converter
  24787  WoW 4.x D3D: Player shadow broken with orm=backbuffer
  25247  Alien Swarm: Can't join or create game, game hangs
  25342  Bionic Commando: Rearmed.  Dark foreground graphics
  25392  Unable to start qm.exe from state-machine.com website on Ubuntu 10.04 LTS
  25399  EasyCash & Tax crashes when executing "Select New Datadirectory" menu entry
  27736  Virtual Sailor 7 settings screen: boats and scenery options are unavailable
  28675  FUEL: Abandoned Vehicles Do Not Appear where they should
  29861  MiPony crashes after startup with null pointer access in fire_event
  30492  VMware vSphere Client v5.0 Update 1 fails, needs ntoskrnl.exe.IoRegisterPlugPlayNotification
  30572  Multiple applications need vectored continue handler support (.NET 3.x/4.x/Silverlight, Lync from Office 2013)
  30737  Dde_OnRequest should return groups_data instead of NULL
  31410  Hamster Free eBook Converter 1.0.0.x installer crashes on startup
  32111  Element Client for Perfect World crashes on startup
  32448  WoW, The memory could not be "read". Sound/video performance issues
  32825  ThunderMini: hangs randomly after change the status of the file
  32977  Solidworks 2012 needs unimplemented function dwmapi.dll.DwmInvalidateIconicBitmaps (Win7 mode)
  32978  Solidworks 2012 : OpenGL Display refresh problems with keyboard events (mouse is OK)
  33323  Garena Messenger crashes on startup
  33993  Microsoft Jet fails to install
  34184  Skype 6.6 and above cannot start, Runtime error 217 at 00XXXXXX, Loading of typelib L"uc.tlb" failed with error 1006
  34539  Final Fantasy XIV Benchmark: moving the window inside a virtual desktop causes mouse focus issues
  34573  Cinema 4D R15 crashes on unimplemented function IPHLPAPI.DLL.NotifyIpInterfaceChange
  34857  Hoyle Casino 2011 game won't launch.
  34915  user32:msg fails on Windows XP
  34941  Ruby 1.9.x interpreter hangs with OS-level thread concurrency error (critical section not initialized in msvcrt internal semi-documented 'ioinfo' struct)
  35133  The Incredible Adventures of Van Helsing (Steam) crashes with built-in d3dx9_36
  35722  MS Visual C++ 2008 Redistributable KB-hotfix installer, part of Nero 10 installer crashes on unimplemented function msi.dll.MsiRemovePatchesW
  36713  Watch_Dogs requires ws2_32.inet_pton
  36752  mp3DirectCut 2.20 crashes when stopping mp3 playback
  37074  Ironclads series: missing text in the menus without native d3dx9_36
  37120  PVS-Studio Error: Equivalent branches of if operator
  37354  Battle.net launcher does not start in Windows 7 mode: "Cannot load Qt platform plugin Windows" (FindFirstFileExW needs info level 'FindExInfoBasic' support)
  37374  Behringer X-32 Edit crashes on startup
  37381  Matlab 2010 crashes on unimplemented function msvcr80.dll._ungetc_nolock
  37461  Sid Meier's Civilization: Beyond Earth (Steam) crashes on unimplemented function msvcp110.dll.?length@?$codecvt@GDH@std@@QBEHAAHPBD1I@Z
  37490  dwrite/analyzer.c:1226:5: warning: comparison of unsigned expression < 0 is always false
  37493  Silverlight 5.1 msi installer fails with Wine 1.7.30 - Transform doesn't update ProductVersion property
  37511  Multiple games and applications need 'msvcp120.dll' (PPSSPP 0.9.x)
  37519  ooVoo 3.6.x (video chat client) doesn't launch
  37539  Altap Salamander 3.04 crashes on startup on missing shell32.RegenerateUserEnvironment
  37548  .NET applications using native .NET Frameworks fail to load, reporting 'CLR error: 80004005. The program will now terminate.' ('RtlAddVectoredContinueHandler' is a stub)

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

Changes since 1.7.30:

Alex Henrie (4):
      kernel32/tests: Add UTF-7 non-encoded surrounding characters tests.
      kernel32/tests: Add UTF-7 encoded surrounding characters tests.
      kernel32/tests: Add UTF-7 stray + sign removal tests.
      kernel32/tests: Add UTF-7 implicit termination tests.

Alexandre Julliard (2):
      msvcp60: Add some missing exports.
      configure: Don't require libXext for Xrender.

Amine Khaldi (1):
      gdi32/tests: Add basic tests for the handling of dwCount parameter in ExtCreateRegion.

André Hentschel (6):
      urlmon/tests: Clarify ok() condition (PVS-Studio).
      user32/tests: Clarify ok() condition (PVS-Studio).
      ntdll/tests: Clarify ok() conditions (PVS-Studio).
      xmllite/tests: Clarify ok() condition (PVS-Studio).
      avifil32: Simplify comparing two unsigned ints (PVS-Studio).
      ntdll/tests: Get rid of "defined but not used" warnings on non-x86(_64) platforms.

Austin English (4):
      msi: Add stubs for MsiRemovePatches(A/W).
      ntoskrnl.exe: Add a stub for IoRegisterPlugPlayNotification.
      shell32: Add a stub for RegenerateUserEnvironment.
      ntdll: Add stubs for vectored continue handler.

Bruno Jesus (12):
      comctl32/tests: Remove dead assignments in treeview.c (Cppcheck).
      comctl32/tests: Remove a dead assignment in misc.c (Cppcheck).
      mciavi32: Initialize a variable (Cppcheck).
      crypt32: Remove dead assignments in cert.c (Cppcheck).
      compobj.dll16: Remove dead assignments in compobj.c (Cppcheck).
      ws2_32: Add tests and implement inet_pton.
      dinput: Ensure variable is initialized when #define is not found (Cppcheck).
      po: Update Brazilian Portuguese translation.
      version: Handle NULL puLen parameter for VerQueryValueA/W.
      server: Add a missing socket protocol attribution.
      server: Store the time of the socket connection.
      ole32: Avoid a possible null dereference.

Chen Yuan (2):
      mshtml: Add IHTMLStyle5::maxWidth property implementation.
      mshtml: Add IHTMLStyle5::maxHeight property implementation.

Guillaume Charifi (1):
      oleaut32: Implement TLB dependencies lookup in resources.

Hans Leidekker (6):
      msi: Pass a database pointer to msi_clone_properties instead of a package pointer.
      msi: Update properties after each transform that affects the property table.
      msi: Call execute_script directly in InstallFinalize.
      advapi32: Return success from LsaAddAccountRights.
      server: Set the security descriptor of named pipe objects.
      odbc32: Add a version resource.

Henri Verbeet (14):
      d3d10core: Implement d3d10_device_ClearState().
      d3d10core/tests: Add a test for ID3D10Device_ClearState().
      d2d1: Pass the correct vtbl in d2d_linear_gradient_brush_init().
      d2d1: Implement d2d_gradient_GetGradientStopCount().
      d2d1: Implement d2d_gradient_GetGradientStops().
      wined3d: Make a copy of shader signature string data.
      wined3d: Calculate the SM4 output mapping in shader_sm4_init().
      d3d10core: Free the output signature after creating the wined3d shader.
      wined3d: Use the input signature to setup SM4 pixel shader input semantics.
      d3d10core: Set wined3d state in d3d10_device_OMSetBlendState().
      d2d1: Add an initial d2d_d3d_render_target_FillRectangle() implementation.
      d2d1: Implement d2d_solid_color_brush_SetColor().
      d2d1: Implement d2d_solid_color_brush_GetColor().
      d2d1: Implement d2d_solid_color_brush_SetOpacity().

Huw D. M. Davies (4):
      comctl32/tests: Post a key-down message rather than use keybd_event.
      mlang: Accept "ascii" as an alias for "us-ascii".
      user32: Make the combo's listbox a topmost window.
      winemac: WS_EX_DLGMODALFRAME shouldn't prevent the window being resizeable.

Iván Matellanes (12):
      msvcrt: Avoid locking the file in _fclose_nolock.
      msvcrt: Use correct type for fread and fwrite return values.
      msvcrt: Added _fputc_nolock implementation.
      msvcrt: Added _fputwc_nolock implementation.
      msvcrt: Added _ungetc_nolock implementation.
      msvcrt: Added _ungetwc_nolock implementation.
      msvcrt: Added _getc_nolock implementation.
      msvcrt: Added _getwc_nolock implementation.
      msvcrt: Added _putc_nolock implementation.
      msvcrt: Added _putwc_nolock implementation.
      msvcrt: Add missing declarations in wchar.h.
      msvcrt: Added _fread_nolock_s implementation.

Jacek Caban (14):
      mshtml: Wine Gecko 2.34 release.
      urlmon: Update existing session if user agent changes.
      mshtml: Added IHTMLTable:cellPadding property implementation.
      mshtml: Added IHTMLScriptElement:onerror property semi-stub implementation.
      mshtml: Added IDispatchEx support to HTMLTxtRange object.
      mshtml: Added support for IDispatchEx to HTMLSelectionObject object.
      mshtml: Ignore query and hash parts in res protocol handler.
      mshtml: Added IHTMLTxtRange::moveToElementText implementation.
      mshtml: Moved IHTMLElement2 implementation to htmlelem.c.
      mshtml: Added IHTMLElement2::put_dir implementation.
      mshtml: Added IHTMLTxtRange::pasteHTML implementation.
      mshtml: Properly handle errors in IHTMLStyleSheet::get_rules now that Gecko part is fixed.
      wpcapi.idl: Added WPCFLAG_RESTRICTION declaration.
      mshtml: Fixed tests on recent IEs.

Jonas Maebe (1):
      wined3d: Add NVIDIA Geforce GT 750M to supported device list.

Jonathan Vollebregt (7):
      reg/tests: Delete keys manually to prevent timeout on winxp/win2k.
      reg/tests: Move key format test section below first key creation.
      reg/tests: Test for empty type and empty binary input.
      reg/tests: Test result for deleting key that doesn't exist.
      advapi32/tests: Add trailing slashes tests for RegOpen/CreateKey.
      advapi32/tests: Fix bad cleanup in test_reg_create_key.
      advapi32/tests: Test RegDeleteKey with empty string parameter.

Marcus Meissner (1):
      dwrite: Fixed memory leak on error (Coverity).

Mark Harmstone (1):
      winealsa: Disable channel remapping for capture devices.

Matteo Bruni (11):
      wined3d: Add ATI1N texture format support.
      wined3d: Dirtify pixel shader on texture format change.
      d3d9/tests: Add a test for ATI1N and ATI2N texture formats.
      d3d8/tests: Add a test for ATI1N and ATI2N texture formats.
      d3d9/tests: Add an ATI1N entry to the test_volume_blocks test.
      d3d8/tests: Add an ATI1N entry to the test_volume_blocks test.
      winex11.drv: Actually report WGL_SWAP_EXCHANGE_ARB as the swap method.
      winex11.drv: Add support for GLX_OML_swap_method.
      d3dx9: Handle GUID_WICPixelFormat8bppGray format.
      d3dx9: Use an alpha-capable format when creating textures with a color key.
      d3dx9: Improve the scoring for fallback formats.

Michael Stefaniuc (17):
      urlmon/tests: Visually separate two if statements (PVS-Studio).
      crypt32/tests: Avoid an always true ok() condition (PVS-Studio).
      d3d8/tests: Remove an always false condition (PVS-Studio).
      gdi32: Remove a basically unused variable (PVS-Studio).
      advapi32/tests: Simplify empty string check (PVS-Studio).
      shlwapi/tests: Simplify empty string check (PVS-Studio).
      msi: Simplify check for an empty string (PVS-Studio).
      shell32: Simplify check for empty string (PVS-Studio).
      wininet: Simplify the check for an empty string (PVS-Studio).
      riched20/tests: Simplify the check for an empty string (PVS-Studio).
      gameux: Simplify the check for an empty string (PVS-Studio).
      mciwave: Simplify the check for an empty string (PVS-Studio).
      crypt32/tests: Remove an unused assignment (PVS-Studio).
      oleaut32/tests: Simplify the check for an empty string (PVS-Studio).
      avifil32: Simplify the check for an empty string (PVS-Studio).
      appwiz.cpl: Simplify the check for an empty string (PVS-Studio).
      fusion/tests: Simplify the check for an empty string (PVS-Studio).

Nikolay Sivov (21):
      msvcr120: Added VS2013 CRT dll.
      dwrite: Map Mac language id to locale name.
      dwrite: Remove null checks for family and collection pointers, those are always set now.
      dwrite/tests: Some tests for custom font collections.
      dwrite: Fix setting oblique simulation on font creation.
      dwrite: Fix compiler warning regarding unsigned type of enum member.
      dwrite: Implement GetFaceNames().
      dwrite: Implement remaining methods of IDWriteLocalizedStrings.
      dpnet/tests: Fix a test failure caused by uninitialized argument.
      user32/tests: Use win_skip() where appropriate.
      dwrite: Don't cache fontface instance in font data.
      dwrite: File and factory are always set now for all collections.
      dwrite: Added a separate helper to fill font metrics structure.
      dwrite: Use public APIs to get file streams from fontface.
      dwrite: Implement GetMetrics() for fontface.
      dwrite: Implement GetMetrics() for DWRITE_FONT_METRICS1.
      dwrite: Added a basic test for TryGetFontTable().
      dwrite: Respond to IID_IDWriteTextLayout1 too.
      dwrite: Implement ConvertFontToLOGFONT().
      include: Add a couple more defines for D3DPRESENT_* flags.
      dwrite: Remove OpenType language id from cache.

Piotr Caban (6):
      msvcp110: Add codecvt::length export.
      user32: Move IME window procedure to user32.
      msvcrt: Initialize file descriptor critical section.
      msvcrt: Rename msvcrt_get_ioinfo function.
      msvcrt: Use fd critical section in _commit.
      msvcrt: Use fd critical section in _close.

Qian Hong (2):
      user32: Add more exception handlings for timer callbacks.
      user32/tests: Test exception handling for timer callbacks.

Sebastian Lackner (20):
      iphlpapi: Add stub for CancelMibChangeNotify2.
      iphlpapi: Add stub for NotifyIpInterfaceChange.
      user32: Fix invalid argument passed to ExtCreateRegion.
      kernel32: Set proper error codes if FindFirstFileExW doesn't support specific search_ops / levels.
      winealsa.drv: Avoid endless loop if registry keys are not accessible.
      kernel32: Implement FindFirstFileExW level FindExInfoBasic.
      kernel32/tests: Add tests for FindFirstFileExW level FindExInfoBasic.
      winecoreaudio.drv: Avoid endless loop if registry keys are not accessible.
      usp10: Silence repeated GSUB_apply_ChainContext[Subst|Pos] FIXMEs.
      user32/tests: Add tests for MsgWaitForMultipleObjectsEx.
      ntoskrnl.exe: Fix incorrect interpretation of SIB byte when parsing x86 opcode.
      krnl386.exe16: Fix incorrect interpretation of SIB byte when parsing x86 opcode.
      d3dx9_36: Implement D3DXCreatePolygon.
      d3dx9_36/tests: Add tests for D3DXCreatePolygon.
      d3dx9_36/tests: Remove code to skip test which should never fail.
      ntdll/tests: Add basic tests for Rtl[Add|Remove]VectoredContinueHandler.
      ntdll: Implement Rtl[Add|Remove]VectoredContinueHandler semi-stubs.
      d3dx9_36: Allow NULL pointer for optional arguments of D3DXIntersectTri.
      psapi/tests: Add tests for GetPerformanceInfo function.
      kernel32: Fix implementation of K32GetPerformanceInfo.

Stefan Dösinger (15):
      d3d9/tests: Check if the current display settings match the registry settings.
      d3d8/tests: Check if the current display settings match the registry settings.
      d3d9/tests: The device restores the mode settings from the registry.
      d3d8/tests: The device restores the mode settings from the registry.
      ddraw/tests: Check if the current display settings match the registry settings.
      ddraw/tests: Fix some COM macro versions in test_coop_level_mode_set.
      d3d9/tests: Fix some wndproc comparison error messages.
      d3d8/tests: Fix some wndproc comparison error messages.
      d3d9/tests: Allow passing a resolution to reset_device.
      ddraw/tests: Rename modes and rectangles in test_coop_level_mode_set.
      ddraw/tests: Ddraw restores the mode settings from the registry.
      d3d/tests: Test fog interpolation.
      d3d9/tests: Allow passing a resolution to reset_device in d3d9ex.
      d3d8/tests: Allow passing a resolution to reset_device.
      wined3d: Add new D3DCREATE flags.

Vincent Povirk (9):
      windowscodecs: Fix race condition loading libpng.
      windowscodecs: Treat missing GUID list keys as empty.
      windowscodecs: Implement MetadataReaderInfo_GetContainerFormats.
      windowscodecs: Implement MetadataReaderInfo_GetPatterns.
      windowscodecs: Implement MetadataReaderInfo_MatchesPattern.
      windowscodecs: Don't check undefined memory in tests on Wine.
      windowscodecs: Implement ComponentFactory_CreateMetadataReaderFromContainer.
      windowscodecs: Add fallback to unknown metadata reader.
      ole32: Add support for pasting CF_BITMAP.

Yifu Wang (1):
      msvcp120: Added VS2013 CPP runtime dll.

YongHao Hu (1):
      msvcp90: Add std_Ctraits::Isnan implementation.

--
Alexandre Julliard
julliard@winehq.org
