The Wine development release 1.5.21 is now available.

What's new in this release (see below for details):
  - Beginnings of a netstat built-in program.
  - Support for selecting resolution in the PostScript driver.
  - Various bug fixes.

The source is available from the following locations:

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

  13567  Tecplot 360 : Program can not start
  18738  Fallout 3: Configuration combobox empty
  21174  cmd does not support /a arithmetic expression evaluation
  24491  AIM 7.3 Crashes on Start
  25871  netstat command missing (needed by Guild Wars 'test system' button)
  27627  Alpha Polaris demo wants d3dx9_36.dll.D3DXFileCreate (purist)
  27707  Invisible cars in GTAIV when ARB shaders are used
  28174  winecfg: audio settings don't take effect until winecfg is closed
  28924  Visual Studio 2010 fails on startup, needs atl100.AtlAdvise impl
  29574  Ajax example fails with unspecified error (IE8)
  29848  Installer of GLWorld 2011 beta3 crash while "I agree" button is clicking
  31067  Font smoothing doesn't work in Ubuntu except for large dpi
  31231  Borderlands installer crashes while trying to extract a cabinet file
  31302  [Splinter Cell Conviction]Very Slow in game
  31400  Rendering in Civilization III very slow
  31527  Delphi 7: Header control sends incorrect notifications
  31615  Canon DPP freeze randomly since Wine 1.5.11
  31877  Torchlight II does not works when winecfg is set to Vista/win7 (CSS=unicode)
  32287  Built in iexplore crash when visiting elheraldo.co
  32407  Tales of Monkey Island crashes
  32416  Wizard101 launcher does not close window after launching client, has to be killed
  32430  LMS Virtual Lab: Unimplemented function atl100.dll.AtlRegisterClassCategoriesHelper
  32431  [ePSXe] Freeze when changing a keybind in "configure gamepad"
  32434  Installer of QQ2011 needs unimplemented atl80.dll.AtlComModuleRegisterServer
  32481  Windows Sysinternals "PsInfo" tool fails to retrieve "system uptime" using PDH (local computername prepended in path)
  32484  Origin 9 needs SHLWAPI.dll.IsCharSpaceA
  32505  installer of QQMusic 2012 beta2 needs Unimplemented function atl80.dll.AtlRegisterTypeLib
  32516  MS SQL Server management studio 2005 wants unimplemented msvcr80.dll._stricmp_l
  32518  Foxit Reader crashes
  32543  unhandled exception
  32551  Opticks import tif file failed
  32566  QzoneMusicInstall.exe crashes during installation

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

Changes since 1.5.20:

Alexandre Julliard (6):
      rpcss: Remove redundant define.
      ntdll: Remove unused include.
      gdi32: Use the correct physdev for each driver call (Coverity).
      Update copyright info for 2013.
      winex11: Add an option to disable shaping of layered window to work around compositor bugs.
      advapi32/tests: Fix test failures on older Windows versions.

Andrew Eikum (7):
      winmm: Use a separate array to map the default device.
      winmm: Rearrange device mapping when a new default device is chosen.
      winmm: Don't give a period time to IAudioClient::Initialize.
      winmm: Open WAVE_MAPPER devices in their own devices array.
      winmm: Reroute WAVE_MAPPER devices as the default device changes.
      wininet: Fail on URLs without a scheme.
      winmm: Don't map the device if WAVE_FORMAT_DIRECT is given.

Andrew Talbot (15):
      winex11.drv: Indentation fix.
      wined3d: Indentation fix.
      usp10: Indentation fix.
      user32: Indentation fix.
      shlwapi: Indentation fix.
      cabinet: Avoid signed-unsigned integer comparisons.
      advapi32: Avoid signed-unsigned integer comparisons.
      comctl32: Avoid signed-unsigned integer comparisons.
      d3dcompiler_43: Avoid signed-unsigned integer comparisons.
      cryptui: Avoid signed-unsigned integer comparisons.
      crypt32: Avoid signed-unsigned integer comparisons.
      d3dx9_36: Avoid signed-unsigned integer comparisons.
      d3drm: Avoid signed-unsigned integer comparisons.
      d3dxof: Avoid signed-unsigned integer comparisons.
      d3dx9_36: Avoid signed-unsigned integer comparisons.

André Hentschel (7):
      cacls: Print out arguments.
      netstat: Initial implementation.
      winedbg: Add plain binary dataprocessing operators to Thumb2 disassembler.
      winedbg: Add modified immediate dataprocessing operators to Thumb2 disassembler.
      netstat: Make functions static.
      netstat: Parse command line arguments.
      netstat: Implement the UDP table output.

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

Caron Jensen (1):
      wined3d: Add new Radeon HD 6570 GL renderer string.

Chae Jong Bin (2):
      urlmon: Add stub for FlushUrlmonZonesCache.
      wininet: Add stub for DeleteWpadCacheForNetworks.

Charles Davis (1):
      loader: Build with -fno-builtin.

Christian Costa (7):
      dmusic: Move IDirectMusicDownloadedInstrument to port.c since it is port dependant and perform COM cleanup.
      dmusic: Implement SynthPortImpl_IDirectMusicPort_DownloadInstrument.
      dmsynth: Dump data passed to Download method.
      d3dx9_36: Implement D3DXFileCreate with stubbed ID3DXFile interface + basic tests.
      d3dx9_36: Check proper signature for DIB files.
      d3dx9_36: Implement ID3DXFileImpl_RegisterTemplates + tests.
      d3drm: Remove unused variable.

Detlef Riekenberg (4):
      api-ms-win-downlevel-user32-l1-1-0: Add version resource.
      ntoskrnl.exe: Update version resource.
      api-ms-win-security-base-l1-1-0: Add dll.
      conhost.exe: Add stub program.

Dmitry Timoshkov (10):
      wineps.drv: Add an ability to select device resolution from UI.
      wineps.drv: Make sure that DEVMODE fields changed through UI are marked as set.
      wineps.drv: Update dmFormName when dmPaperSize is being changed through UI.
      wineps.drv: Properly handle dmFormName in unicode DEVMODE structure.
      wineps.drv: Update dmFormName when merging DEVMODE structures.
      wineps.drv: Update dmPaperWidth/Height when dmPaperSize is being changed through UI.
      po: Correct Russian translation of Portrait/Landscape to match other places.
      windowscodecs: Add some tests for IWICImagingFactory_CreateBitmapFromMemory.
      wineps.drv/generic.ppd: Change default page extents to A4 to match *DefaultPageSize.
      windowscodecs: Implement ComponentFactory_CreateBitmapFromMemory.

Eric Pouech (1):
      winedbg: In 'info proc' command, list hierarchy of processus, and get rid of printing parent pid.

Frédéric Delanoy (4):
      d3drm: Fix a leak (coverity).
      xdg: Fix a file handle leak (coverity).
      appwiz.cpl: Fix a leak (coverity).
      po: Update French translation.

Hans Leidekker (11):
      winhttp/tests: Accept another error from WinHttpGetProxyForUrl.
      wmiutils: Introduce memory allocation helpers.
      wmiutils: Validate parameters in IWbemPath::SetText and IWbemPath::GetText.
      wmiutils: Register WbemDefPath.
      wmiutils: Parse the path passed to IWbemPath::SetText.
      wmiutils: Implement IWbemPath::GetNamespaceCount.
      wmiutils: Support more flags in IWbemPath::GetText.
      wmiutils: Add tests.
      wmiutils: Fix buffer size query in IWbemPath::GetText.
      wmiutils: Don't prepend a backslash if WBEMPATH_GET_NAMESPACE_ONLY is specified.
      wmiutils/tests: Add more tests.

Henri Verbeet (15):
      ddraw: Avoid LPD3DMATRIXHANDLE.
      ddraw: Avoid LPD3DRECT.
      d3d10core: Implement d3d10_rasterizer_state_GetDesc().
      d3d10core: Only create unique rasterizer state objects.
      d3d10core/tests: Add a small test for ID3D10Device_CreateRasterizerState().
      ddraw: Avoid LPD3DHVERTEX.
      ddraw: Avoid LPD3DTLVERTEX.
      wined3d: Simplify select_card_amd_mesa() a bit.
      wined3d: Recognize any "X.Org" GL vendor as Mesa.
      wined3d: Get rid of some useless braces in draw_primitive().
      ddraw: Avoid LPD3DMATRIX.
      ddraw: Avoid LPD3DVIEWPORT.
      wined3d: state->user_stream is always FALSE in device_stream_info_from_declaration().
      wined3d: Don't touch state->user_stream in wined3d_device_process_vertices().
      wined3d: Just restore state->user_stream in wined3d_device_draw_indexed_primitive_strided().

Hermès Bélusca-Maïto (1):
      wpp: Fix path separator on Windows platforms.

Hwang YunSong (1):
      po: Update Korean translation.

Jacek Caban (22):
      jscript: Don't pass 'this' argument to DISPID_VALUE of pure IDispatch interfaces.
      mshtml: Removed no longer used nsIProfile declaration.
      atl100: Added AtlRegisterClassCategoriesHelper implementation.
      atl: Use atlbase.h in tests.
      atl100: Fixed a typo.
      atl: Backport some tests from atl100.
      atl: Changed AtlModuleInit FIXME to TRACE.
      atl: Added locking to AtlModuleExtractCreateWndData.
      wininet: Properly handle output buffer size in InternetGetCookieW.
      wininet: Properly handle output buffer size in InternetGetCookieA.
      atl100: Added support for typelibs in separate files in AtlLoadTypeLib.
      atl80: Added AtlRegisterTypeLib implementation (based on AtlModuleRegisterTypeLib).
      atl: Reimplemented AtlModuleRegisterTypeLib on top of AtlRegisterTypeLib.
      urlmon: Fixed some tests on IE10.
      atl100: Fixed NULL catmap handling in AtlRegisterClassCategoriesHelper.
      iphlpapi: Added support for direct routes when using NET_RT_DUMP.
      user32: Initialize cbSize of NONCLIENTMETRICSW struct in GetSystemMetrics.
      atl100: Added AtlAdvise implementation.
      atl100: Added AtlUnadvise implementation.
      atl80: Added AtlComModuleRegisterServer implementation (based on AtlModuleRegisterServer).
      atl: Added support for category maps in AtlModuleRegisterServer.
      urlmon: Added support for 'Run' setup hook.

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

Ken Thomases (5):
      winemac.drv: Tell git's diff engine to recognize Objective-C source files.
      makedep: Add support for Objective-C .m files and #import directive.
      makefiles: Allow use of Objective-C source files in modules.
      winemac.drv: Implement EnumDisplayMonitors.
      winemac.drv: Implement GetMonitorInfo.

Maarten Lankhorst (1):
      dsound: Use a thread instead of a timer for greater precision.

Marcus Meissner (5):
      usp10: Mark SHAPE_ApplyOpenTypePositions as hidden.
      oleaut32: Mark PropertyPageSiteVtbl static.
      winhttp: Do not free name too early (Coverity).
      advapi32: Do not use invalid pSD value (Coverity).
      xmllite: Remove duplicated statement (Coverity).

Nikolay Sivov (7):
      msxml3: Make callback data available for ready state event handler.
      msxml3: Remove separate structures for test interfaces.
      xmllite: Shrink buffer when enough data processed.
      oledb32: Partial implementation of GetDataSource().
      oledb32: Support data source properties from init string passed to GetDataSource().
      xmllite: Implement decoding new input chunk from stream, use it for comment parsing.
      comctl32/listview: Improve LVM_GETSUBITEMRECT implementation for out-of-bounds item indices.

Piotr Caban (4):
      msvcrt: Added _stricmp_l implementation.
      msvcrt: Added _strnicmp_l implementation.
      msvcrt: NULL terminate program arguments list in __getmainargs.
      msvcrt: Return error in stat function when path is specified with trailing slash character.

Ričardas Barkauskas (2):
      comctl32: Use index value if property sheet page isn't found.
      comctl32: Avoid code duplication by reusing PROPSHEET_GetPageIndex.

Vincent Povirk (3):
      windowscodecs: Add test showing CreateBitmapFromMemory copies the data.
      winex11.drv: Select property change events on selection request windows.
      winex11.drv: Flush property notify events before deleting properties.

--
Alexandre Julliard
julliard@winehq.org
