The Wine development release 1.7.40 is now available.

What's new in this release (see below for details):
  - Support for kernel job objects.
  - Various fixes to the ListView control.
  - Better support for OOB data in Windows Sockets.
  - Support for DIB images in the OLE data cache.
  - Improved support for MSI patches.
  - Some fixes for ACL file permissions.
  - Various bug fixes.

The source is available from the following locations:

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

  19231  Trine Demo fails to start without native d3dx9_36
  21433  InqScribe: Installed fine, but no output or UI response when running installed app
  22139  CDBurnerXP 3.0.x produces a "fail" message after choosing a mode
  26223  Multiple apps and games need wmvcore.dll.WMCreateReader implementation (Nail'd demo)
  26748  World Series of Poker crashes when starting up a game
  30648  SEGA Genesis / Mega Drive Classic Collection (Steam) crashes on startup
  30723  Playchess listview control is broken
  31579  Microsoft Visio 2007-2010 crashes on exit (unload of msctf component with ThreadMgr/CBT hook still alive)
  32361  epson stylus t13 installer problem: wine: Unimplemented function setupx.dll16.DiOpenClassRegKey
  33164  row-resize / col-resize cursor is wrong (Listview)
  34254  Wine64 seh:RtlUnwindEx error with c++ exception handling
  35135  Air Video Server HD 1.x crashes on startup (NULL SERVER_INFO_101.sv101_comment returned from NetServerGetInfo)
  36133  valgrind shows some leaks in gdiplus/tests/image.c
  36190  comdlg32/itemdlg shows a ton of valgrind warnings
  36305  valgrind shows a possible leak in netapi32/tests/access.c
  36332  Total Commander 8.x: moving files between folders renders them inaccessible (SetNamedSecurityInfo)
  36656  valgrind shows an unintialized write in comdlg32/tests/itemdlg.c
  36709  Multiple applications/games from Windows 7 need slc.SLGetWindowsInformationDWORD semi-stub/implementation
  36842  Can't set a static crontrol's text to empty by passing NULL pointer
  37731  Montezuma's Revenge Remake fails with fatal error when quitting the game
  37960  Paint.NET 4.0.5 does not install: unimplemented function KERNEL32.dll.QueryThreadCycleTime
  38205  Unreal Tournament 3 Black Edition installer fails after the language selection
  38238  user32:input right-clicks outside its windows
  38248  Worms World Party (w/SetCooperativeLevel workaround/hacks) and older versions of Worms Armageddon black screen on startup
  38256  Myst Online Uru Live: too dark/missing textures
  38261  Playchess doesn't install anymore
  38282  Header control fails to update/synchronize listview when columns order changes
  38288  Wrong pointer in icnsformat.c IcnsFrameEncode_WriteSource
  38317  winetricks xna31 fails

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

Changes since 1.7.39:

Aaryaman Vasishta (1):
      d3drm: Fix hard-coded HRESULT return in Direct3DRMFrame_create.

Alexandre Julliard (11):
      server: Fix the string type in traces for I/O completion names.
      dsound: Fix an error return code.
      server: Post a notification to the desktop window when a top-level window is destroyed.
      explorer: Cleanup system tray icons when their owner is destroyed instead of polling.
      winex11: Cleanup system tray icons when their owner is destroyed instead of polling.
      user32: Remove left-over freeing of the edit text with ES_PASSWORD.
      comctl32: Print full flag values in traces.
      msacm32: Print full flag values in traces.
      riched20/tests: Print full flag values in traces.
      user32/tests: Print full flag values in traces.
      winmm: Print full flag values in traces.

Alistair Leslie-Hughes (2):
      odbccp32: Implement SQLWritePrivateProfileStringA/W.
      msctf: Always return FALSE in DllCanUnloadNow.

Andrew Cook (15):
      kernel32/tests: Add tests for IsProcessInJob.
      kernel32/tests: Add tests for TerminateJobObject.
      kernel32/tests: Add tests for QueryInformationJobObject.
      kernel32/tests: Add tests for job object completion ports.
      kernel32/tests: Add tests for JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE.
      kernel32/tests: Add tests for JOB_OBJECT_LIMIT_BREAKAWAY_OK.
      kernel32/tests: Add tests for job inheritance.
      kernel32/tests: Extend IsProcessInJob tests.
      server: Implement CreateJobObject.
      server: Implement AssignProcessToJobObject.
      server: Implement IsProcessInJob.
      server: Implement job limit flags.
      server: Implement job inheritance.
      server: Implement io completion messages for job objects.
      server: Track handle count of objects.

Andrew Eikum (2):
      oleaut32: Allow typelib filenames longer than MAX_PATH.
      wineoss.drv: Don't skip over position updates of less than one fragment.

Andrey Gusev (1):
      d3dx9_36: Assorted spelling and typos fixes.

André Hentschel (5):
      include: Add more header guards.
      ntdll: Add support for FreeBSD on ARM.
      ntdll: Fix CPU level on ARM.
      ntdll: Get available CPU info from FreeBSD on ARM.
      loader: Run checks also on ARM Linux.

Aric Stewart (2):
      wineqtdecoder: Unload the AsyncReader on movie processing failure.
      winmm: sndPlaySound can play resource sounds.

Austin English (2):
      kernel32: Add a stub for QueryThreadCycleTime.
      include: Add initial mfapi.h.

Bruno Jesus (13):
      netapi32/tests: Fix a memory leak (Valgrind).
      netapi32: Return an empty comment instead of NULL pointer in NetServerGetInfo.
      winmm/tests: Add a basic joystick interactive test.
      ws2_32: Don't try to receive data in an OOB_INLINED socket with MSG_OOB.
      ws2_32: Convert send/recv flags to native system.
      ws2_32: Add a helper to check if a socket is bound or not.
      ws2_32: Ensure sockets in exceptfds get set when an error occurs.
      ws2_32: Do not poll unbound descriptors.
      ws2_32: Check for OOB data in select() calls when not OOB_INLINED.
      ws2_32/tests: Add more WSAEnumNetworkEvents tests.
      ws2_32/tests: Skip part of OOB test to unfreeze NT4 test.
      ws2_32: Fix return value when receiving with MSG_OOB without data to read.
      ws2_32: Better trace setsockopt/getsockopt.

Christoph von Wittich (2):
      riched20: EM_SETSEL should not return 0.
      riched20: Handle SCF_WORD.

David Hedberg (1):
      comdlg32: Only attempt to update the layout if the dialog window exists.

David Naylor (2):
      configure: Recognise host starting in 'amd64'.
      configure: Explicitly set host_cpu for 'amd64'.

Dmitry Timoshkov (1):
      shell32: Update version information to match XP values.

Erich Hoover (1):
      advapi32/tests: Add tests for inheriting ACL attributes.

François Gouget (40):
      taskschd: Remove an unneeded NONAMELESSUNION directive.
      storage.dll16: Remove an unneeded NONAMELESSSTRUCT directive.
      system.drv16: Remove an unneeded NONAMELESSSTRUCT directive.
      toolhelp.dll16: Remove unneeded NONAMELESSXXX directives.
      twain_32: Remove unneeded NONAMELESSXXX directives.
      msctf: Mark internal symbols with hidden visibility.
      msi: Mark internal symbols with hidden visibility.
      msxml3: Mark internal symbols with hidden visibility.
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      urlmon: Remove unneeded NONAMELESSXXX directives.
      wineoss.drv: Remove an uneeded NONAMELESSUNION directive.
      usbd.sys: Remove an unneeded NONAMELESSSTRUCT directive.
      user32: Remove an unneeded NONAMELESSSTRUCT directive.
      windowscodecs: Remove unneeded NONAMELESSXXX directives.
      mshtml: Mark internal symbols with hidden visibility.
      oleaut32: Mark internal symbols with hidden visibility.
      opengl32: Mark internal symbols with hidden visibility.
      riched20: Mark internal symbols with hidden visibility.
      winex11.drv: Remove unneeded NONAMELESSXXX directives.
      wininet: Remove an unneeded NONAMELESSSTRUCT directive.
      winspool.drv: Remove unneeded NONAMELESSXXX directives.
      winmm: Remove unneeded NONAMELESSSTRUCT directives.
      explorer: Remove an uneeded NONAMELESSUNION directive.
      secur32: Mark internal symbols with hidden visibility.
      sxs: Mark internal symbols with hidden visibility.
      user32: Mark internal symbols with hidden visibility.
      wbemprox: Mark internal symbols with hidden visibility.
      winedbg: Remove unneeded NONAMELESSXXX directives.
      rpcss: Remove unneeded NONAMELESSXXX directives.
      regedit: Remove an unneeded NONAMELESSSTRUCT directive.
      winecfg: Remove unneeded NONAMELESSXXX directives.
      wineconsole: Remove an unneeded NONAMELESSSTRUCT directive.
      wineps.drv: Mark internal symbols with hidden visibility.
      wininet; Mark internal symbols with hidden visibility.
      wmp: Mark internal symbols with hidden visibility.
      shell32: Point the 'My Documents' symbolic link to the XDG or OS X 'Documents' folder if they exist.
      widl: Remove unneeded NONAMELESSXXX directives.
      winedump: Remove unneeded NONAMELESSXXX directives.
      winhlp32: Remove an unneeded NONAMELESSSTRUCT directive.
      winefile: Remove an unneeded NONAMELESSUNION directive.

Frédéric Delanoy (1):
      Assorted spelling/grammar fixes.

Hans Leidekker (17):
      msi: Fall back to the database summary information stream in MSI_OpenPackageW.
      msi: Avoid allocating a database handle only to retrieve the summary information.
      msi: Use the last sequence number specified for patch media when updating media records.
      msi: Check the component enabled flag earlier.
      msi: Skip files from the original media if a patch is applied.
      msi: Check file state before installing global assemblies.
      msi: Import mspatcha instead of loading it dynamically.
      msi: Store the disk id for file patches.
      msi: Don't apply file patches in the cabinet extraction callback.
      msi: Don't mark global assembly files as installed when they are extracted.
      msi: Clean up handling of temporary files.
      msi: Get rid of global variables the cabinet extraction callbacks.
      wbemprox: Make sure to allocate sufficient memory in resize_table.
      wbemprox: Fix a memory leak.
      wbemprox: Implement more properties of Win32_Processor.
      wbemprox: Implement more properties of Win32_VideoController.
      wbemprox: Add a partial implementation of Win32_Printer.

Henri Verbeet (35):
      wined3d: Store shader output signatures as a wined3d_shader_signature structure.
      wined3d: Store shader input signatures as a wined3d_shader_signature structure.
      wined3d: Merge some common shader initialization code into shader_init().
      wined3d: Take the input slot into account when handling WINED3D_APPEND_ALIGNED_ELEMENT.
      d3d10core: Also pass unused input layout elements to wined3d.
      wined3d: Implement d3d10 style instance data step rates.
      wined3d: Use the "sysval_semantic" field instead of "semantic_name" to recognize SV_POSITION.
      wined3d: Add support for SV_InstanceID.
      d3d10core: Implement d3d10_device_DrawInstanced().
      d3d10core/tests: Add a test for D3D10_APPEND_ALIGNED_ELEMENT.
      d2d1: Properly take the source offset into account in d2d_d3d_render_target_DrawBitmap().
      d2d1: Implement d2d_state_block_GetTextRenderingParams().
      d2d1: Implement d2d_state_block_SetTextRenderingParams().
      d2d1: Implement d2d_state_block_GetDescription().
      d2d1: Implement d2d_state_block_SetDescription().
      d2d1: Implement d2d_d3d_render_target_GetFactory().
      d2d1: Implement d2d_d3d_render_target_SetTextRenderingParams().
      d2d1: Implement d2d_d3d_render_target_GetTextRenderingParams().
      d2d1: Implement d2d_d3d_render_target_SetAntialiasMode().
      d2d1: Implement d2d_d3d_render_target_GetAntialiasMode().
      d2d1: Implement d2d_d3d_render_target_SetTextAntialiasMode().
      d2d1: Implement d2d_d3d_render_target_GetTextAntialiasMode().
      d2d1: Implement d2d_d3d_render_target_SetTags().
      d2d1: Implement d2d_d3d_render_target_GetTags().
      d2d1: Use a D2D1_DRAWING_STATE_DESCRIPTION structure to store render target drawing state.
      d2d1: Implement d2d_d3d_render_target_SaveDrawingState().
      d2d1: Implement d2d_d3d_render_target_RestoreDrawingState().
      d2d1/tests: Add a test for ID2D1DrawingStateBlock.
      d2d1: Do not multiply color brush RGB values with the brush opacity.
      wined3d: Add support for half-integer pixel centers.
      d2d1/tests: Add a test for color brushes.
      wined3d: Take WINED3D_PIXEL_CENTER_INTEGER into account when calculating vpos.
      wined3d: Use GLSL 1.30 for SM4 shaders when available.
      d3d10core/tests: Port the d3d9 vPos test to d3d10.
      d2d1: Fix a typo in the determinant calculation in d2d_d3d_render_target_FillRectangle().

Hugh McMaster (2):
      netstat: Fix incorrect comment.
      attrib: Fix incorrect comment.

Huw D. M. Davies (10):
      ole32: Read the class id from the top-level storage object.
      ole32: A cache entry should hold the stream its data is from, not the top-level storage.
      ole32: Split the data loading into a couple of helpers.
      ole32: Add support for parsing the 'CONTENTS' stream.
      ole32: Separate metafile loading into a helper function.
      ole32: Add support for loading dibs.
      ole32: Add support for retrieving extents of dib format.
      ole32: Add support for drawing the dib format.
      ole32: Implement QueryGetData().
      ole32/tests: Add tests for loading a dib 'CONTENTS' stream.

Jacek Caban (11):
      mshtml.idl: Added IHTMLSelectionObject2 declaration.
      mshtml: Added IHTMLSelectionObject2 stub implementation.
      dxgi.idl: Added DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL declaration.
      d3d11_1.idl: Added some missing declarations.
      dxgi1_2.idl: Added IDXGIFactory2 declaration.
      wininet: Pass timeout as DWORD in setsockopt calls.
      d3d11sdklayers.idl: Added ID3D11Debug declaration.
      dxgi1_2.idl: Added IDXGIAdapter2 declaration.
      d3d11.idl: Added D3D11_FEATURE_DATA_D3D11_OPTIONS declaration.
      d3d11_1.idl: Fixed ClearView argument (missing const).
      wmsdkidl.idl: Added IWMReaderAdvanced* declarations.

Jinhui Chen (1):
      winex11.drv: Fix row-resize/col-resize mapping to X cursor.

Ken Thomases (4):
      winmm: For Mac, fix joyGetPosEx() to put number of buttons pressed in dwButtonNumber field.
      winemac: Allow the user to attempt to resize a maximized window and try to restore it if they do.
      winemac: Restore a maximized window if a user tries to move it by dragging its title bar.
      winemac: Cleanup system tray icons when their owner is destroyed instead of polling.

Mark Harmstone (5):
      comctl32: Use correct font for themed headers.
      ntdll: Treat strings as case-insensitive in find_window_class.
      comctl32: Redraw themed button on WM_ENABLE.
      winecfg: Style updown control with UDS_ALIGNRIGHT.
      winecfg: Add manifest.

Matteo Bruni (12):
      wined3d: Use a separate STATE_VIEWPORT state handler in the GLSL pipeline.
      wined3d: Introduce a get_projection_matrix() function.
      wined3d: Introduce a get_texture_matrix() function.
      wined3d: Don't use the builtin FFP uniform for the normal matrix.
      d3d9/tests: Add more lighting tests.
      d3d8/tests: Add more lighting tests.
      wined3d: Don't use the builtin FFP uniform for the projection matrix.
      ddraw: D3DLIGHT lights default to active.
      ddraw: Make sure AddLight properly activates lights.
      ddraw: Make sure to activate / deactivate the light on D3DLIGHT_ACTIVE flag changes.
      ddraw: D3DRENDERSTATE_NORMALIZENORMALS doesn't exist before d3d7.
      ddraw: Enable WINED3D_RS_NORMALIZENORMALS on d3d versions older than d3d7.

Michael Müller (4):
      netprofm: Add stubbed IConnectionPoint interface.
      netprofm/tests: Add tests for ConnectionPointContainer::FindConnectionPoint.
      ntdll: Define a couple more information classes.
      kernel32/tests: Add tests for GetFinalPathNameByHandleA/W.

Michael Stefaniuc (15):
      mscoree: Use SUCCEEDED instead of !FAILED.
      taskschd: Print the debug string instead of the pointer value.
      mshtml: Print the debug string instead of the pointer value.
      qcap: Print the debug string instead of the pointer value.
      scrrun: Print the debug string instead of the pointer value.
      schedsvc: Drop WINE_ prefix from ERR().
      fntcache: Drop WINE_ prefix from FIXME/TRACE.
      taskschd/tests: Test the correct return value.
      mshtml/tests: Actually test the return of IHTMLTable_get_width().
      windowscodecs/tests: Actually test the return of IWICBitmap_GetSize().
      winhttp/tests: Test the correct return code.
      d3drm/tests: Test the correct return code.
      wmp: Forward from a Release to a Release method.
      gdiplus: The result of a comparison is already a BOOL.
      winealsa.drv: The result of a comparison is already a BOOL.

Nikolay Sivov (35):
      comctl32/listview: Update view on style change only if LVS_TYPEMASK styles have changed.
      user32/static: Allow setting NULL text.
      scrrun: Added support for interface pointers as keys for dictionary.
      scrrun: Added support for VT_DATE keys, and BYREF float key types.
      scrrun: Support BYREF types for integer keys.
      comctl32/tooltips: Allow NULL hinst value when fetching text from resources.
      ole32: Return interface pointers instead of impl pointers from QI.
      ole32/tests: Return interface pointer instead of impl pointer from QI.
      msi: Return interface pointer instead of impl pointer.
      dwrite: Forward IDWriteTextLayout::GetMetrics() to IDWriteTextLayout2::GetMetrics().
      comctl32: Claim success in InitializeFlatSB().
      comctl32/tests: Listview doesn't subclass its header.
      taskmgr: Simplify setting extended style for a list.
      rpcrt4/tests: Use status definitions instead of numeric values.
      rpcrt4: Fix RpcMgmtStopServerListening() return value when we're not listening.
      po: Corrected Russian translation.
      dwrite: Pass sideways run flag to shaping methods.
      comctl32/listview: Fix item focus rectangle to use proper label/selection bounds.
      comctl32/listview: Fix focus rectangle for LVS_EX_FULLROWSELECT case.
      comctl32/listview: Fix scrolling in LV_VIEW_DETAILS view.
      comctl32/listview: Always forward LVM_GETCOLUMNORDERARRAY to header.
      comctl32/listview: Remove outdated TODO comment.
      dwrite: Initial implementation of DetermineMinWidth().
      dwrite: Return CreateStreamFromKey() failure code from Analyze().
      comctl32/listview: Support header item image/bitmap in LVSCW_AUTOSIZE_USEHEADER case.
      comctl32/listview: Use defined name instead of magic value.
      comctl32/listview: Always forward HDM_SETORDERARRAY to a header.
      taskmgr: Set column order through listview.
      comctl32/dsa: Implement DSA_Clone().
      comctl32/dsa: Implement DSA_GetSize().
      dwrite: Update to IDWriteRenderingParams2.
      wincodecs: Use valid bitmap cache option.
      msxml3: Explicitly list acceptable libxml2->msxml node types for unknode.
      comctl32/tests: Fix couple of metrics tests that fail on some systems.
      dwrite: Fix cluster width and length calculation.

Pierre Schweitzer (3):
      setupapi: Implement SetupOpenLog(), SetupCloseLog().
      setupapi: Implement SetupLogErrorA(), SetupLogErrorW().
      setupapi/tests: Add tests for the SetupOpenLog(), SetupLogErrorA(), SetupCloseLog() functions.

Piotr Caban (21):
      oleacc: Added Client_get_accChild implementation.
      oleacc: Added client IEnumVARIANT stub.
      oleacc: Added window IEnumVARIANT stub.
      oleacc: Added client IEnumVARIANT::{Reset,Skip,Next} implementation.
      oleacc: Added client IEnumVARIANT tests.
      oleacc: Added AccessibleChildren implementation.
      oleacc: Added AccessibleChildren tests.
      msvcrt/tests: Add atan, tanh and exp tests on invalid arguments.
      msvcrt: Fix NAN handling in printf.
      msvcrt/tests: Use NAN and INFINITY definitions from port.h in printf tests.
      user32/tests: Don't send mouse clicks to other process windows in input tests.
      msvcp90/tests: Use NAN and INFINITY definitions from port.h in Ctraits::_Isnan tests.
      advapi: Don't use CreateFile when opening file with possibly empty DACL.
      server: Make directory DACL entries inheritable.
      advapi32: Add SetNamedSecurityInfo test with empty DACL.
      advapi32/tests: Add test for mapping DACL to permission.
      advapi32: Add DACL inheritance support in SetSecurityInfo.
      ntdll: Improve parameter validation in RtlAddAce.
      server: Fix DACL to permissions conversion.
      msvcr120: Add some missing exports on i386 architecture.
      advapi32: Handle NULL DACL in SetSecurityInfo.

Sebastian Lackner (12):
      gdiplus: Add missing returns in initialize_decoder_wic (Coverity).
      user32: Use C_ASSERT to ensure user_thread_info fits into TEB->Win32ClientInfo.
      browseui: Avoid race-conditions when progress dialog is released before thread terminates.
      ntoskrnl: Emulate 'mov Eb, Gb' instruction on x86 processor architecture.
      wiaservc: Return pointer to vtbl instead of implementation in wiadevmgr_Constructor.
      kernel32/tests: Allow multiple subprocess commands in process tests.
      kernel32/tests: Add tests for adding a terminated process to a job object.
      advapi32/tests: Repeat ACL inheritance tests for NtCreateFile.
      advapi32/tests: Add tests for NtCreateFile inheritance when security descriptor is set.
      advapi32/tests: Merge common code to test DACL descriptors in a helper function.
      advapi32/tests: Add tests for CreateFile with set security descriptor.
      ntdll: Fix various bugs RtlUnwindEx on x86_64.

Sergey Isakov (1):
      windowscodecs: Fix wrong pointer to formal parameter.

Shuai Meng (2):
      vbscript: Implemented Oct.
      vbscript: Fixed Hex.

Stefan Dösinger (15):
      ddraw: Update the palette before presents to the NULL window.
      ddraw/tests: The testbot applies color keying without a key.
      ddraw/tests: Correct executebuffer offsets.
      wined3d: Improve color fixups in atifs shaders.
      wined3d: Check for conversion changes in the atifs fragment pipeline.
      wined3d: Add per-context private data for fragment pipelines.
      wined3d: Avoid constant collision in atifs.
      ddraw/tests: Make sure color keying is on in test_texturemapblend.
      ddraw/tests: Port test_color_fill to earlier versions.
      wined3d: Implement per stage constants in atifs.
      wined3d: Give tex_type and its values a better name.
      wined3d: Pass a wined3d_ffp_texture_type enum to blit shader functions.
      wined3d: Use bitfields in struct arbfp_blit_type.
      wined3d: Pass a struct arbfp_blit_type to the blit shader generation functions.
      wined3d: Define a constant for the blit texture size parameter.

Thomas Faber (5):
      wscript: Correctly use CommandLineToArgvW.
      gdi32: Avoid uninitialized variable use in EnumEnhMetaFile (MSVC).
      setupapi/tests: Avoid side-effect in an assert.
      user32/tests: Avoid side-effect in an assert.
      winegstreamer: Avoid side-effects in asserts.

Vincent Povirk (8):
      gdiplus: Fonts in UnitWorld shouldn't be scaled to the page unit.
      gdiplus: Apply page scale to pen thickness.
      gdiplus: Handle large input rect in GdipMeasureCharacterRanges.
      gdiplus: Fix blend_colors when alpha channel differs.
      mscoree: Remove the runtime version selection logic and just use 4.0.
      gdiplus: Add support for reading PNG tEXt metadata.
      windowscodecs: Implement PngDecoder_Block_GetCount.
      windowscodecs: Implement PngDecoder_Block_GetReaderByIndex.

Zheng Chen (2):
      msvcrt: Correct atan/exp/tanh errno setting.
      msvcrt: Fix _copysign bugs for NAN/INF.

--
Alexandre Julliard
julliard@winehq.org
