The Wine development release 1.5.24 is now available.

What's new in this release (see below for details):
  - Keyboard and mouse wheel support in the Mac driver.
  - Regular expression support in VB Script.
  - Many RichEdit code cleanups.
  - Various bug fixes.

The source is available from the following locations:

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

   6512  power-tab-editor freezes at end of a song
   8598  msvcrt file IO functions do not handle unicode properly in text mode
  12908  Battle Zone I does not start.
  16685  redraw problem in AIM_675
  17380  CListCtrl: wrong icon spacing
  17762  Citavi: Application is very slow
  17763  Citavi: mouse doesn't catch links
  18079  AutoCorect: does not properly display custom checkboxes made by Alcinoe
  20294  sigma photo pro crashes in X11DRV_DIB_DeleteDIBSection
  24089  EverQuest: Escape to Norrath: login screen is blank without native ie6
  24315  Verizon Media Manager crashes on exit (VZMediaagent.exe
  24361  Crashday: game is unusably slow during gameplay
  24474  Simpsons Hit & Run sound bug
  24554  Black screen in Everquest 2 (lighting issue?)
  25576  Microsoft Flight Simulator X: Demo/Deluxe Edition, menu blank without native ie7
  25584  Racedriver:GRID sound hardware acceleration not working
  25958  DreamStation 1 free music tracker visually freezes under some conditions
  27011  Lucent Heart: patcher window is blank
  27905  HUNTED The Demon Forge: Sound does not work in the game (in movies this works)
  29718  IE4 setup wants wininet.dll.LoadUrlCacheContent
  29873  Guild Wars: Water graphic is missing
  30008  Resource Hacker logo on about window has black background
  30183  Fchart installation crashes
  30246  EA Origin:Crashes when using openssl 1.0.1
  30839  BSTR cache corrupts most of cached BSTR entries
  31308  Remote Tools for Visual Studio 2012 RC installer for Windows on ARM (WoA) crashes because TPIDRURW (user TLS register) needs to be set to TEB address
  31706  Sacred Underworld: Some models glow like a Christmas tree
  31977  YoudaoDict crash at start
  32520  EVE Online and other games want d3d11.dll.D3D11CreateDevice
  32669  Ghost Master: invisible mouse pointer unless 'Enhanced Cursor' option selected
  32808  installer of PPTV: needs unimplemented atl100.dll.AtlComModuleRegisterClassObjects
  32818  Adrenalin Extreme Show: launcher.exe has repainting issues
  32842  TurboTax 2012 needs shlwapi.dll IsInternetESCEnabled stub
  32858  Crash dialog Details button Russian text doesn't fit
  32862  Microsoft Expression Design 4 (Free Version) needs WindowsCodecsExt.dll (Microsoft Windows Codecs Extended Library)
  32882  Grand Theft Auto IV doesn't start, aborts with a GLX error.
  32909  QQDownload 3.9 needs unimplemented msvcr80.dll._wstat32i64
  32929  Microsoft Expression Design 4 (Free Version) needs windowscodecsext.dll.WICCreateColorTransform_Proxy

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

Changes since 1.5.23:

Akihiro Sagawa (1):
      gdi32: Ensure a fixed-pitch full-width character has double advance of a half-width character.

Alexander Morozov (1):
      ole32: Avoid a deadlock when a being loaded DLL calls CoRegisterClassObject from its DLL_PROCESS_ATTACH handler.

Alexandre Julliard (28):
      winemac: Don't move off-screen windows to a random position.
      gdi32: Return the correct module handle for the initial display driver load.
      explorer: Retrieve the graphics driver module from gdi32.
      explorer: Return a simple boolean instead of a window in the wine_create_desktop entry point.
      wintab32: Retrieve the graphics driver module from gdi32.
      imm32: Retrieve the graphics driver module from gdi32.
      winex11: Ignore color key and exposures when using the null surface.
      user32: Avoid releasing a potentially null pointer.
      server: Also exclude the top-level client rectangle for windows that have a pixel format.
      server: Return the window paint flags in the get_visible_region request.
      user32: Don't paint to the surface if the window has a pixel format, regardless of the state of the top parent.
      wininet: Don't reset the available size after the async has been queued.
      user32: Prefer loading color cursors in LoadImage.
      ntdll: Add a helper function to check that a fault address lies in a known virtual memory view.
      ntdll: Check for invalid %gs value in 32-bit code.
      winex11: Preserve the client window when changing the window visual.
      server: Don't support debug registers in ptrace if sys/user.h is missing.
      loader: Define our own auxv structure.
      loader: Rename the elf_hash function to avoid conflicts.
      odbccu32: Remove an unnecessary source file.
      twain_32: Remove an unnecessary DllMain entry point.
      cryptnet: Remove an unnecessary DllMain entry point.
      dpnhpast: Remove an unnecessary DllMain entry point.
      iphlpapi: Remove an unnecessary DllMain entry point.
      ktmw32: Remove an unnecessary DllMain entry point.
      sensapi: Remove an unnecessary DllMain entry point.
      usp10: Remove an unnecessary DllMain entry point.
      wtsapi32: Remove an unnecessary DllMain entry point.

Alistair Leslie-Hughes (1):
      fusion: Return correct error for null public token.

Andrew Talbot (8):
      jscript: Avoid signed-unsigned integer comparisons.
      mapi32: Avoid signed-unsigned integer comparisons.
      kernel32: Avoid signed-unsigned integer comparisons.
      mscoree: Avoid signed-unsigned integer comparisons.
      mmdevapi: Avoid signed-unsigned integer comparisons.
      mlang: Avoid signed-unsigned integer comparisons.
      msdaps: Avoid signed-unsigned integer comparisons.
      msctf: Avoid signed-unsigned integer comparisons.

André Hentschel (4):
      ntdll: Set TPIDRURW to TEB on thread init for ARM.
      make_xftmpl: Avoid comparing a char with EOF.
      winedbg: Add PState to cpu_register_map for ARM64.
      ntdll: Implement RtlUnwind for ARM.

Aric Stewart (6):
      usp10: Fix typo with Script_Khmer_Numeric.
      usp10: Split the core Itemize function out to be able to support differences between the normal and OpenType versions.
      usp10: Update diacritical script handling for non OpenType Itemization.
      usp10: Free default_language items when freeing script cache.
      usp10: Fix memory leak when a font has 0 languages, scripts or features.
      usp10: Correct error with ScriptLayout log2vis.

Austin English (4):
      windowscodecsext: Add a stub dll.
      shlwapi: Add a stub for IsInternetESCEnabled.
      d3d11: Add a stub for D3D11CreateDevice.
      wininet: Add a stub for LoadUrlCacheContent.

Daniel Jelinski (6):
      comctl32/listview: Correct icon spacing calculation when set to 0 or -1.
      comctl32/listview: Always use large icon size when calculating icon spacing.
      comctl32/listview: Do not touch icon spacing if set explicitly.
      user32: Fix CopyImage implementation when changing cursor to icon.
      comctl32/listview: Better handling of custom colors in report view.
      comctl32/listview: Fix LVM_SETICONSPACING on 64bit machines.

Detlef Riekenberg (2):
      advapi32/tests: Skip tests on non-English systems.
      kernel32/tests: Skip tests on non-English systems.

Dmitry Timoshkov (14):
      wbemprox: Free name in create_signature (Coverity).
      comctl32: Test appropriate tool window for active state.
      gdi32: Add support for 16-bit QUERYESCSUPPORT queries.
      gdi32: Add a bunch of tests for CreateDC/ResetDC with a custom DEVMODE.
      winspool.drv: Turn macros into helper functions.
      wineps.drv: Add DEVMODE dumping to make debugging device state easier.
      winspool.drv: There is no need to speculate about wineps.drv default DEVMODE.
      gdi32: Make sure that actual clipping region is updated for a EMF DC.
      gdi32: Add more EMF clipping tests.
      gdi32: OffsetClipRgn should update actual clipping region for a EMF DC.
      gdi32: IntersectClipRect should update actual clipping region for a EMF DC.
      gdi32: ExcludeClipRect should update actual clipping region for a EMF DC.
      gdi32: SelectClipPath should update actual clipping region for a EMF DC.
      kernel32: There is no need for lock/unlock heap in GlobalAlloc.

Erich Hoover (2):
      advapi32: Support registry objects in GetNamedSecurityInfo.
      advapi32: Support registry objects in SetNamedSecurityInfo.

Francois Gouget (5):
      kernel32/tests: Reduce the size of the console buffer to speed up the tests.
      rpcrt4/tests: Trace the GUID when it is wrong.
      d3d11: Make debug_d3d_driver_type() static.
      ws2_32/tests: Fix the GetAcceptExSockaddrs() test.
      winetest: Trace the time it takes to run each test.

Frédéric Delanoy (1):
      msi: Fix memory leak (coverity).

Hans Leidekker (12):
      windowscodecs: Implement IWICColorContext::InitializeFromFilename.
      windowscodecs: Add a stub IWICColorTransform implementation.
      windowscodecs: Convert the source bitmap to the requested pixel format in IWICColorTransform::Initialize.
      windowscodecs: Implement IWICComponentFactory::CreateDecoderFromFileHandle.
      wbemprox: Trace the qualifier value in IWbemClassObject::GetNames.
      windowscodecsext: Implement WICCreateColorTransform_Proxy and IWICColorTransform_Initialize_Proxy.
      windowscodecs: Implement IWICBitmapFrameDecode::GetColorContexts for TIFF images.
      msiexec: Add /unregserver support.
      msiexec: Convert DoRegServer to Unicode.
      wininet/tests: Fix a test failure.
      msi/tests: Move a couple of tests from install.c to msi.c.
      msi: Don't remove products if msidbUpgradeAttributesOnlyDetect is set.

Henri Verbeet (2):
      wined3d: Add WINED3DFMT_INST to the format table.
      configure: Include Xlib.h before Xrandr.h.

Huw Davies (23):
      riched20: Actually pass the ANSI string to the break proc.
      riched20: Pass the character ptr and string length directly to the break proc helper.
      riched20: Pass a character ptr and length to SplitParagraph.
      riched20: Pass character ptrs to the whitespace finding functions.
      riched20: Move the text to the paragraph level.
      riched20: Move SplitRun to wrap.c and make it static.
      riched20: Move the split point calculation to wrap.c.
      riched20: Move run extent calculation to wrap.c.
      riched20: The run width is always passed so we don't need to calculate it again.
      riched20: Pass the run to the text drawing routine.
      riched20: Move underline pen creation to a helper function.
      riched20: Move y offset calculation to a helper function.
      riched20: Move text color determination to a helper function.
      riched20: Move the white space painting operations to a common function.
      riched20: Remove the special case tab handling now that we handle that in draw_space.
      riched20: Make it possible to perform point -> char conversion while holding a context.
      riched20: The string len parameter is no longer necessary.
      riched20: Use the point from char helpers to calculate the selection rectangle.
      riched20: Simplify selection painting by drawing a selected run twice with appropriate clipping.
      riched20: Move underline drawing to a common function.
      riched20: Move the range clamping to the helper now that the range isn't used later on.
      riched20: Move the password string hack to just before it's used.
      riched20: Use ME_PointFromChar to calculate the caret position.

Jacek Caban (13):
      atl100: Added AtlComModuleRegisterClassObjects implementation (based on AtlModuleRegisterClassObjects).
      oleaut32: COM clean up of ITypeLib2 interface implementation.
      mshtml: Use VT_ERROR as return type in DispCallFunc call.
      oleaut32: Return error if VT_HRESULT is used as return type in DispCallFunc.
      urlmon: Clean up handling tested URLs.
      urlmon: Fixed QueryInfo tests during BINDSTATUS_PROXYDETECTING notification.
      urlmon: Skip reported_url tests when binding to object.
      urlmon: Fixed tests on IEs that report BINDSTATUS_DECODING.
      oleaut32: Don't free a string in SysFreeString if it's already in cache.
      oleaut32: Added some SysFreeString tests.
      urlmon: Allow available_bytes to be set before protocol_continue call.
      wininet: Set available bytes in InternetQueryDataAvailable even if it ends up in async call.
      vbscript: Added support for a few more constants.

Jactry Zeng (4):
      msvcr100: Added _wstat32i64 implementation.
      msvcr100: Added _stat32i64 implementation.
      msvcr80: Sync _wstat32i64 and _stat32i64 implementation.
      msvcr90: Sync _wstat32i64 and _stat32i64 implementation.

Jeff Latimer (2):
      wmvcore: Add stub implementation for WMCreateEditor.
      wmvcore: Fix a typo.

Juan Lang (2):
      iphlpapi: Fix HRESULT/win32 error code confusion.
      cryptui: Use add_usage_to_oid correctly.

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

Jörg Höhle (4):
      ntdll: Use the monotonic time counter also for timer queues.
      winmm: More compatible midiIn/Out[Un]Prepare MHDR_* flag handling.
      winmm: More compatible waveIn/Out[Un]Prepare WHDR_* flag handling.
      winmm: Handle GetTickCount overflow in MIDI player.

Ken Thomases (25):
      winemac: Implement ScrollDC().
      winemac: Implement support for minimizing windows.
      winemac: Build a map from Mac virtual key codes to Win32 vkeys and scan codes based on Mac keyboard layout.
      winemac: Rebuild key map when Mac keyboard layout changes.
      winemac: Generate KEY_PRESS/RELEASE events from Cocoa key events.
      user32: In TranslateMessage, handle ToUnicode returning 2 or more chars.
      winemac: Implement ToUnicodeEx().
      winemac: Ignore Cocoa's window frame adjustments for off-screen windows.
      winemac: Implement Beep().
      winemac: Implement MapVirtualKeyEx().
      winemac: Implement VkKeyScanEx().
      winemac: Implement GetKeyNameText().
      winemac: Implement fake support for the active Windows keyboard layout.
      winemac: Implement SysCommand() to prevent Alt keypresses from activating system menu.
      winemac: Add WineApplication methods to convert from Cocoa to Win32 coordinate space.
      winemac: Implement MOUSE_MOVED(_ABSOLUTE) events.
      winemac: Process clicks in an inactive window in addition to activating it.
      secur32: On Mac, add support for cipher suites defined in 10.8 SDK.
      user32: Improve mouse wheel scrolling in edit control.
      user32: Improve mouse wheel scrolling in listbox control.
      comctl32: Eliminate redundant local variable (gcWheelDelta == -wheelDelta).
      comctl32: Improve mouse wheel scrolling in listview control.
      comctl32: Improve mouse wheel scrolling in treeview control.
      winemac: Implement MOUSE_SCROLL events.
      winemac: Prevent Cocoa from consuming certain key-down events.

Ludger Sprenker (1):
      windowscodecs: Add enum type WICTiffCompressionOption.

Marcus Meissner (1):
      comdlg32: Free files on errorpath (Coverity).

Michael Stefaniuc (20):
      ddraw/tests: Use assignment instead of memcpy to copy structs.
      crypt32: Use assignment instead of memcpy to copy structs.
      wined3d: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      ieframe: Let C look like C.
      krnl386.exe16: Let C look like C.
      gphoto2.ds: Let C look like C.
      iphlpapi: Let C look like C.
      qedit: Let C look like C.
      d3drm: Let C look like C.
      riched20: Let C look like C.
      usp10: Let C look like C.
      d3d10core: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      d3d8: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      d3d9: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      d3dx9_36: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      d3drm: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      amstream: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      d3dcompiler_43: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      dmime: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
      wineoss.drv: Use offsetof to calculate the size of a struct with variable length array.

Nikolay Sivov (3):
      oledb32: Add a table of init properties, support Persist Security Info switch in init string.
      xmllite: Store start data pointer for comments.
      xmllite: Basic test for chunk value read vs full value read.

Nozomi Kodama (1):
      d3dx9: Use const instead of CONST.

Piotr Caban (11):
      jscript: Rename jsheap_t to heap_pool_t.
      jscript: Don't use jsstr_t in JSRegExp structure.
      jscript: Don't use jsstr_t in js_NewRegExp.
      jscript: Move code operating on JSRegExp out of do_regexp_match_next function.
      jscript: Make context generic in internal regular expression functions.
      jscript: Moved generic regular expressions code to separate file.
      vbscript: Added IRegExp2 stub.
      vbscript: Added IRegExp2_QueryInterface tests.
      vbscript: Added partial implementation of IDispatch methods in IRegExp2.
      vbscript: Added IRegExp2::Pattern implementation.
      vbscript: Rename vbsheap to heap_pool.

Roman Dadkov (3):
      ole32/tests: Add test for SetClientSite.
      mpr/tests: Test to check the return values of WNetGetUniversalNameA.
      ole32/tests: Add test for OleRun.

Stefan Dösinger (2):
      wined3d: Use the ARBfp ffp pipeline only if ARBfp is supported.
      wined3d: Reserve one vs constant on r200.

Vijay Kiran Kamuju (1):
      msvcr90: Update the manifest version.

--
Alexandre Julliard
julliard@winehq.org
