The Wine development release 1.5.25 is now available.

What's new in this release (see below for details):
  - Proper cursor support in the Mac driver.
  - Fixes for right-to-left support in RichEdit.
  - Initial version of a Wingdings font.
  - Various bug fixes.

The source is available from the following locations:

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

   5341  SourceInsight: Missing dock button
   8942  Astral Masters no longer gets past start screen
  17130  felix2: The screenmate flashes and doesn't move
  18819  LOK Soul Reaver program error
  19144  QueryContextAttributesW returns wrong return value
  19504  Moedan: Crashes after showing developer's logo.
  19678  Lingoes does not start
  21283  sPlan 7.0: Non properly text rotation
  21856  VB6 modal form appears BEHIND parent (borderless) form when focus is on certain controls, making parent form unusable.
  22227  Wrong grayed picture for disabled vb6 controls
  22551  Multiple .NET apps fail to load riched20.dll into memory (.NET Framework/Windows Forms wants riched20.dll loaded into lower 2GiB address space range)
  22860  Enterprise Architect fails to create a new project or loads an existing one
  23227  G-Police: Page fault on read access
  23986  datetime control SetRange() has no effect, enter big year will cause CTime assert failed
  24669  Civilization V crashes on startup
  26261  Start menu items are not displayed
  26465  Sound Recorder cannot convert audio codec/sample rate, due to 'acmFormatChooseW' missing
  26775  Ace of Spades: Incomplete Sound
  27941  Very slow rendering in sPlan7
  29616  1Password crashes while creating a backup
  31456  Emulating a virtual screen does not work
  31769  windowsx.h macro HANDLE_WM_DISPLAYCHANGE is incorrect
  31987  FindNextFile/DeleteFile loop fails for directories with many files
  32391  Iexplore crashes play.google.com
  32697  Word 2003 crashes on formula edit
  32709  The Testament of Sherlock Holmes crashes at launch
  32743  putty_arm for jailbroken WinRT needs KERNEL32.dll.GetCurrentPackageId
  32798  Memory leak in Path of Exile
  32829  TurboTax 2012 crashes when applying updater preferences
  32846  dxdiag: can't retrieve network info
  32854  Winedbg on ARM: gdb proxy mode lacks support for reading CPSR
  32905  MT4(MetaTrader) crash at start when mpd playing music
  32919  Yarmap causes Unhandled exception: page fault on read access in 32 bit code
  32990  Wine on ARM: relay tracing is broken with entry points having an odd number of arguments, calling into glibc code that makes use of alloca()
  33011  Metatrader4 crashes trying to open message
  33014  Steam enters into an infinite update loop upon opening with wine 1.4.1
  33029  wine-gecko downloads broken
  33063  Rosetta Stone 4.5.5 - RosettaStoneLtdServices.exe crash on start
  33064  Rosetta Stone 4.5.5 - Cannot start lesson: See only a gray box
  33071  Adobe Reader XI not installing

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

Changes since 1.5.24:

Alessandro Pignotti (8):
      quartz: IEnumFiltersImpl needs to access data from IGraphFilterImpl.
      quartz: Properly implement IGraphVersion in IFilterGraph.
      quartz: Modify GetClassMediaFile to also extract the SourceFilter value.
      quartz: Make GetClassMediaFile visible in the module.
      quartz: Check byte patterns in GetFileSourceFilter.
      quartz: Use the moniker to create the filter directly.
      quartz: Get the CLSID directly from the filter.
      quartz: It's not guaranteed that filters have a GUID in the property bag.

Alexandre Julliard (6):
      gdi32/tests: Define the required Windows version before including anything.
      user32/tests: Define the required Windows version before including anything.
      rpcrt4/tests: Define the required Windows version before including anything.
      kernel32: Attempt to buffer the full directory in FindFirstFile to avoid races.
      winegcc: Don't use prelink when cross-compiling.
      psapi/tests: Define the required Windows version before including anything.

Alistair Leslie-Hughes (1):
      webservices: Add new dll.

Andrew Talbot (19):
      msvcp90: Avoid signed-unsigned integer comparisons.
      msi: Avoid signed-unsigned integer comparisons.
      mshtml: Avoid signed-unsigned integer comparisons.
      msxml3: Avoid signed-unsigned integer comparisons.
      msvcrt: Avoid signed-unsigned integer comparisons.
      ntdll: Avoid signed-unsigned integer comparisons.
      oleaut32: Avoid signed-unsigned integer comparisons.
      ole32: Avoid signed-unsigned integer comparisons.
      quartz: Avoid signed-unsigned integer comparisons.
      oledlg: Avoid signed-unsigned integer comparisons.
      oledb32: Avoid signed-unsigned integer comparisons.
      shell32: Avoid signed-unsigned integer comparisons.
      rpcrt4: Avoid signed-unsigned integer comparisons.
      sane.ds: Avoid signed-unsigned integer comparisons.
      usbd.sys: Avoid signed-unsigned integer comparisons.
      urlmon: Avoid signed-unsigned integer comparisons.
      usp10: Avoid signed-unsigned integer comparisons.
      windowscodecs: Avoid signed-unsigned integer comparisons.
      kernel32/tests: Do not assume the signedness of plain char.

André Hentschel (10):
      winhlp32: Properly detect non-ASCII chars.
      ntdll: Correctly align the stack for odd numbers of arguments in relay traces on ARM.
      kernel32: Add stub for GetCurrentPackageId.
      comctl32/tests: Mark win8 behaviour as broken.
      winedbg: There is no hardware single stepping support on ARM.
      winedbg: Add support for XML Target Descriptions to read Cpsr on ARM.
      api-ms-win*: Update spec files.
      msvcrt: Add a new file for the ARM exception handling.
      msvcrt/tests: Mark win8 behaviour as broken.
      msvcrt: Fix DISPATCHER_CONTEXT on ARM.

Austin English (1):
      riched20: Make sure to load dll below 2GB address space.

Byeongsik Jeon (1):
      gdi32: Fix the GdiGetCodePage() support ANSI_CHARSET font associated charset.

Carlo Bramini (1):
      windowsx.h: Fix HANDLE_WM_DISPLAYCHANGE macro.

Daniel Jelinski (3):
      comctl32/listview: Fix incorrect message parameters.
      comctl32/listview: Implement overlay image support.
      comctl32/imagelist: Allow only one drag cursor.

Dmitry Timoshkov (28):
      gdiplus: Forward GdipDrawLine to GdipDrawLines.
      gdiplus: Forward GdipDrawLineI to GdipDrawLine.
      gdiplus: Forward GdipDrawLinesI to GdipDrawLines.
      include/gdiplusenums.h: Add FlatnessDefault definition.
      gdiplus: Avoid a devision by zero when a being added segment length is 0.
      gdiplus: Avoid a crash in GdipDrawImagePointRect.
      gdiplus: Forward GdipDrawBezierI to GdipDrawBezier.
      gdiplus: Slightly simplify GdipDrawClosedCurve2 implementation.
      gdiplus: Reimplement GdipDrawCurve2 using GdipDrawPath.
      gdiplus: Reimplement GdipDrawLines using GdipDrawPath.
      gdiplus: Reimplement GdipDrawArc using GdipDrawPath.
      gdiplus: Reimplement GdipDrawBeziers using GdipDrawPath.
      gdiplus: Forward GdipDrawBezier to GdipDrawBeziers.
      gdiplus: Reimplement GdipDrawEllipse using GdipDrawPath.
      gdiplus: Reimplement GdipDrawPie using GdipDrawPath.
      gdiplus: Reimplement GdipDrawRectangle using GdipDrawPath.
      gdiplus: Reimplement GdipDrawRectangles using GdipDrawPath.
      gdiplus: Slightly simplify GdipFillClosedCurve2 implementation.
      gdiplus: Reimplement GdipFillRectangles using GdipFillPath.
      gdiplus: Use an off-screen DC for font enumeration.
      gdiplus: Use an off-screen DC as an image surface.
      gdiplus: Use an off-screen DC to trace a path.
      gdiplus: Correct the GdipDrawString .spec entry.
      gdiplus: Remove debug traces from GdipBitmapGetPixel and GdipBitmapSetPixel.
      gdiplus: Add some tests for ARGB conversions.
      gdiplus: Round up when converting from 32-bit ARGB to PARGB.
      gdiplus: If a device doesn't support AlphaBlend don't convert image to PARGB.
      fonts: Add an initial version of Wingdings font.

Francois Gouget (2):
      ddraw/tests: Fix the refresh rate test when running with the Windows 'Standard VGA' driver.
      d3d9/tests: CheckDeviceType() may also return D3DERR_NOTAVAILABLE for D3DFMT_X1R5G5B5.

Hans Leidekker (10):
      wmiutils: Add support for for parsing and serializing a key list.
      wmiutils: Add a stub implementation of IWbemPathKeyList.
      wmiutils: Implement IWbemPathKeyList::GetCount.
      wmiutils: Implement IWbemPathKeyList::RemoveAllKeys.
      rpcrt4: Accept HTTP idle packets while waiting for the second prepare header.
      wbemprox: Avoid a crash in destroy_view.
      wbemprox: Implement more properties of Win32_CDROMDrive.
      wbemprox: Add a partial implementation of Win32_DiskPartition.
      msi: Handle more than one patch per file.
      msi: Don't attempt to patch files from disabled components.

Huw Davies (10):
      riched20: Add the ability to CharFromPoint to either pick the closest leading edge or the leading edge of the selected character.
      usp10: Clusters are represented by glyph indices not character positions.
      riched20: Change ME_FindRunInRow to fill out a cursor structure.
      riched20: Return a BOOL that indicates whether the hit is exact.
      riched20: Only retrieve the next row.
      riched20: Rewrite ME_FindPixelPos to use ME_GetRunInRow.
      riched20: Correctly set the row's x position.
      riched20: Allow the cursor offset to be equal to the run length - this implies the cursor is at the end of the run, which isn't necessarily the start of the next.
      riched20: Don't assume the the runs in a row are in visual order.
      riched20: Send WM_CHAR notifications.

Jacek Caban (42):
      urlmon: Skip https tests on IE6.
      wininet: Address string should never be converted to UNICODE in status notifications.
      wininet: Removed broken cache tests.
      mshtml: Fixed tests on some broken Vista versions.
      oleaut32: Fixed copy&paste mistake in SysFreeString.
      jscript: Use to_int32 in to_uint32 implementation.
      jscript: Fixed BSTR leak.
      mshtml: Don't crash if fire_event_obj is called on detached document.
      winhttp: Get cert store directly from cert in netconn_verify_cert.
      urlmon: Added a few more forward to propsys.
      mshtml: Forward IHTMLDocument3::get_childNodes to IHTMLDOMNode implemnentation.
      mshtml: Added IHTMLWindow2::onfocus property implementation.
      mshtml: Addeed IHTMLDocument5::createAttribute implementation.
      mshtml: Added support for IHTMLDOMAttribute::get_nodeName in detached attributes.
      mshtml: Added IHTMLDocument5::createAttribute tests.
      winhttp: Removed no longer used netconn_init argument.
      wininet: Fail in NETCON_secure_connect instead of create_netconn if OpenSSL is not available.
      vbscript: Added support for a few more constants.
      urlmon: Use separated variable for InternetQueryDataAvailable to avoid races.
      mshtml: Don't report IHTMLTextContainer as supported in anchor element.
      mshtml: Added IHTMLAnchorElement::get_hostname implementation.
      widl: Allow shadowing imported types with typedef.
      msctf.idl: Added some missing declarations.
      wininet: Don't call get_avail_data multiple times in HTTP_ReceiveRequestData.
      wininet: Moved dialog-related functions to dialog.c.
      vbscript: Make constant type explicit.
      vbscript: Added color constants.
      vbscript: Fixed chr(0) implementation.
      vbscipt: Added string constants.
      secur32: Report SecPkgContext_ConnectionInfo in bits, not bytes.
      mshtml.idl: Added IHTMLLabelElement* interfaces declarations.
      mshtml: Added IHTMLLabelElement stub implementation.
      ieframe: Fixed QI tests on IE10, where IStdMarshalInfo is supported by WebBrowser object.
      urlmon.idl: Added IGetBindHandle declaration.
      wininet: Renamed useSSL to secure and set it after secure connection is established.
      wininet: Renamed socketFD to socket.
      ieframe: Fixed tests on IE10.
      mshtml: Fixed handling escaped paths in is_gecko_path.
      mshtml: Fixed 'adjacent' spelling.
      mshtml: insert_adjacent_node clean up.
      mshtml: Added IHTMLElement2::insertAdjacentElement implementation.
      mshtml: Added IHTMLElement2::insertAdjacentElement tests.

Jörg Höhle (9):
      ntdll: Stabilize CreateTimerQueueTimer callbacks over time.
      mmdevapi/tests: Produce audible 16bit output too.
      winmm: WAVE_OPEN_QUERY causes no WIM/WOM_OPEN notification.
      mmsystem: Use SEGPTR when the .spec says so.
      mmsystem: Do not rewrite input parameters.
      mmsystem: Always use CALLBACK_FUNCTION to update MIDI/WAVEHDR.dwFlags.
      winealsa: Reword some MIDI log messages.
      wineoss: Add midi MTC Quarter Frame support (on output).
      winmm: Prevent some MIDI race conditions.

Ken Thomases (20):
      winemac: Discard old frame changed events when setting frame for off-screen windows, too.
      winemac: Don't set Cocoa window frame to be zero-sized.
      winemac: Use only on-screen windows for Cocoa parent (Win32 owner) and ordering sibling.
      winemac: Track Cocoa windows in a z-ordered list.
      winemac: Implement support for full-screen windows.
      winemac: Implement DISPLAYS_CHANGED event for when display configuration has changed.
      include/wingdi.h: Add definitions for DEVMODE display fixed output flags and values.
      winemac: Implement EnumDisplaySettingsEx().
      winemac: Implement ChangeDisplaySettingsEx().
      winemac: Always use proper z-order when putting a window on screen.
      winemac: Call sync_window_position() before show_window() since window frame affects whether it shows.
      winemac: Don't bring a window onto the screen in SetFocus().
      winemac: Implement SetCursor() and DestroyCursorIcon().
      winemac: Use system cursors when possible.
      winemac: Implement GetCursorPos().
      winemac: Handle mouse moves in -[WineApplication sendEvent:] instead of WineWindow.
      winemac: Request mouse move events when our window is active even when cursor is outside it.
      winemac: Reset the cursor to the normal Mac arrow when it's outside all Wine windows.
      winemac: Implement SetCursorPos().
      winemac: Implement ClipCursor().

Marcus Meissner (2):
      kernel32: Use the correct pointer size in atl thunk (Coverity).
      ole32: Free *ppszProgID on error path (Coverity).

Matteo Bruni (2):
      wined3d: Make (wined3d_)surface_depth_blt_fbo handle locations other than SFLAG_INTEXTURE.
      wined3d: Add RESZ support.

Michael Stefaniuc (10):
      Revert "dsound/tests: Primary and secondary buffers use the same IDirectSoundBuffer vtbl.".
      mshtml: Fix copy and paste error.
      ddraw/tests: Simplify some equality comparisons between bools.
      shell32: COM clean up for the inner IUnknown of ShellFSFolder.
      shell32: COM clean up for IShellFolder2 in ShellFSFolder.
      shell32: Pass an IShellFolder2 to SHELL32_CompareIDs() to avoid casts.
      shell32: COM clean up for IPersistFolder3 in ShellFSFolder.
      shell32: Get rid of a helper function.
      shell32: Finish the COM cleanup of ShellFSFolder.
      shell32: Move IFSFolder_Constructor() to avoid forward declarations.

Nikolay Sivov (12):
      dwrite: Remove testing for exact script code value.
      dwrite: Added more dwrite interfaces.
      msvcrt: Move demangler flags to a header and use them.
      msxml3: Fail to insert a node of unsupported type to a document.
      wshom: Implement IWshShell3::Run().
      msxml3: Better handle cross-tree node moves.
      msxml3: Update refcount in replaceNode().
      msxml3: Update backing docs refcount in put_documentElement().
      msxml3: Remove unneeded cast to xmlDocPtr.
      msxml3: Escape value for attribute in put_value().
      msxml3: Don't make a variant copy if no need to for setting node value.
      msxml3: Avoid unneeded variant copy in setAttribute(), leak fixed as a side effect.

Nozomi Kodama (5):
      d3dx9: Specify arguments in trace to ease debugging.
      d3dx9: Add a missing trace.
      d3dx9: Avoid useless computations.
      d3dx9: Explicit computations in D3DXMatrixDeterminant to speed them up.
      d3dx9: Explicit computations in D3DXMatrixInverse to speed them up.

Petr Kočandrle (1):
      po: Small improvement of Czech translation.

Piotr Caban (24):
      msvcr90: Prefer builtin version.
      msvcp90: Prefer builtin version.
      jscript: Rename JSREG_* defines to REG_*.
      jscript: Cleanup regular expressions engine API.
      jscript: Avoid copying regular expression results.
      vbscript: Added RegExp2::Test implementation.
      vbscript: Added RegExp2 flags getters and setters implementation.
      vbscript: Added RegExp2::Execute implementation.
      vbscript: Silence IDispatchEx queries on RegExp objects.
      vbscript: Added RegExp.Execute tests.
      vbscript: Added IMatchCollection2::_NewEnum implementation.
      vbscript: Added tests for invalid parameters in regular expression functions.
      vbscript: Added IMatchCollection2::__NewEnum test.
      msvcrt: Mark gmtime32 tests with negative argument as broken on win8.
      oleaut32: Fixed time outputing for dates before 1899 in VarBstrFromDate.
      oleaut32: Fixed VarBstrFromDate behavior on dates before year 1600.
      oleaut32: Fixed VARIANT_FormatDate behavior on dates before year 1600.
      hlink: Call BindToObject with IID_IUnknown in IHlink_fnNavigate.
      hlink: Return value returned by IHlinkTarget_Navigate in IHlink_fnNavigate.
      hlink: Added basic Hlink::Navigate tests.
      ole32: Added more OleCreateDefaultHandler tests.
      ole32: Don't pass CLSCTX_INPROC_SERVER and CLSCTX_INPROC_HANDLER flags to CoCreateInstance in DefaultHandler_Run.
      cmd: Fixed memory leak in WCMD_run_program.
      msvcrt: Fixed closing of FindFirstFile handle in build_expanded_argv.

Rico Schüller (2):
      d3d9/tests: Use lower base hexadecimal values.
      d3dx9: Fix typos.

Ričardas Barkauskas (2):
      wined3d: Rename bsize to content_size to reflect usage.
      wined3d: Make shader buffer dynamic.

Vincent Povirk (2):
      mscoree: Add WINE_MONO_VERBOSE environment setting.
      mscoree: Keep a reference to mscoree when shutting down.

--
Alexandre Julliard
julliard@winehq.org
