The Wine development release 1.5.20 is now available.

What's new in this release (see below for details):
  - A bunch of dlls with ugly names for API sets support.
  - More ATL functions implemented.
  - Still more C++ runtime functions.
  - Several text rendering fixes.
  - PostScript driver improvements.
  - Various bug fixes.

The source is available from the following locations:

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

  10138  exec* function family expands * and ?
  13401  fr-057 demo scene application crashes at start up (custom imports resolver can't cope with some msvcrt functions being forwarded to ntdll)
  14898  Delphi 6 Personal Edition will not install.
  15817  King's Bounty : The Legend crashes/freezes when loading fight sequences
  17006  setlocale to "en_us.UTF8" succeeds under wine, fails with native, causes knock-on failures
  17031  popen not connecting to stdin / stdout correctly
  19465  _mktime64 does not work with time/dates after 2038
  19566  RPG Maker XP RTP/Player: Failed To Load Archive
  19921  NetObjects Fusion, fatal error - needs msvcrt._mbsnbicoll
  22489  Missing d3d11 prevents some games from running
  22856  Several "web" installers have unreliable downloads/crashes in wininet (Runes of Magic 3.0.x: "ClientUpdater.exe", Microsoft PSDK, Visual Studio web installers)
  24389  Winamp: crashes with Bento-Skin (needs msvcr90.dll._wtoi_l)
  24413  Window/menu painting issues running Firefox 4.0 Windows 32-bit nightly
  24621  Slow UI and toolbar redraw in SolidWorks
  25470  msvcrt:cpp tests do not run on 64-bit
  25717  Japanese fonts sometimes shifted to the left
  25808  shdocvw:ie tests crash on clang
  25828  oleaut32:tmarshal tests fail on clang
  26729  Google Sketchup Layout crashes on main menu (GdipGetPathGradientSurroundColorCount and GdipSetPathGradientSurroundColorsWithCount stubs)
  26754  Regedit crashes on start when compiled with clang from trunk
  26755  wineboot crashes on start when cabinet.dll is compiled with clang
  27386  Atari800Win PLus 4.0: crashes before window appears
  27404  Zeq2Msvcrt and Mabinogi need msvcr90.dll._crt_debugger_hook
  29426  UDF support: VOLUME_GetSuperblockSerial invalid for some volume types
  29918  LibreOffice fonts antialiasing is wrong
  29969  msvcr90/msvcr90 test sometimes hangs
  30030  LuxMark 2.0 crashes on startup (msvcrt C++ exception handling)
  30200  Writing 00x integers instead of 0x
  30351  Firefox + Selenium hangs on startup
  30444  Microsoft SQL Server Management Studio Express (SSMSE): opening new query window fails due to atl80 insufficiency
  30512  Tencent Messenger 2008/2009 crashes with initialization failure due to atl80.dll AtlCreateRegistrar being a stub (registration of COM servers failed at install time)
  30685  Billy can't open file: Error5 Function CheckFile
  31246  QQMusic deadlock on exit with buitin msvcr80
  31325  EA Origin wants msvcr100.dll._get_timezone (purist)
  31542  msvcrt sprintf doesn't respect " " flag for E format.
  31720  ScriptControl can't be used for jscript
  31731  Toad: Installer infinite loop on destination folder dialog
  31845  unimplemented function msvcr90.dll.fread_s
  31947  NVIDIA GeForce GTX 660 Ti detected as GeForce 8300 GS
  31986  calendar rendering bug in sporttracks 3
  32043  Machines (demo) crashes while loading to the main menu
  32107  Steam overlay corruption (+TF2?)
  32160  PPTV: exits abnormally when begining the installation
  32176  TTPlayer6: window can't get focus
  32299  LMS Virtual Lab: Unimplemented function atl100.dll.AtlUpdateRegistryFromResourceD
  32350  Heroes of Might and Magic V crashes when loading a saved game (without native msvcr71)
  32369  dlls/ntdll/file.c fails to link with older glibc due to missing fallocate64()
  32376  World of Dragons wants msvcr90.dll._sprintf_p
  32387  Repair/Remove no longer available.
  32394  WinUAE GUI does not resize when its window size increases
  32399  installer of PPTV needs unimplemented atl100.dll.AtlModuleAddTermFunc
  32405  Children of the Nile (& Demo): mouse buggy
  32406  dsound randomly crashes when SetCooperativeLevel fails
  32408  Evolve client (.NET 4.0 app) fails on startup due to WindowsCodecs PngDecoder_Frame_GetThumbnail() stub returning E_NOTIMPL instead of WINCODEC_ERR_CODECNOTHUMBNAIL
  32410  Circuitmaker 2000 schematic hangs when editing text strings
  32420  KZ ComputerZal needs IPHLPAPI.DLL.GetExtendedUdpTable
  32422  comctl32: Bold text in treeview redrawn as plain underlined when mouse hovers over
  32423  Installer of Qvod 5.5 crashes at start
  32425  installer of PPTV needs unimplemented atl100.dll.AtlWinModuleAddCreateWndData
  32432  .NET 2.0 Framework SDK installer fails on builtin atl80.dll (.spec file contains entries with spelling errors)
  32433  installer of PPTV needs Unimplemented atl100.dll.AtlWinModuleExtractCreateWndData
  32435  QQ2011 needs unimplemented atl80.dll.AtlComModuleGetClassObject
  32440  The Secret of Monkey Island Special Edition crashes on start (GCC 4.7.x breaks certain Securom versions)
  32442  Wallace & Gromit launcher missing buttons
  32444  Incorrect graphic rendering when using Circuit Wizard
  32453  Incorrect Common Control Font Size
  32466  KwMusic's config program needs  unimplemented function msvcrt.dll._atodbl
  32467  Windows Sysinternals "bginfo" tool crashes due to incorrect sysparams PATH_ENTRY macro definition
  32468  Windows Sysinternals "PsInfo" tool crashes while trying to retrieve WMI class Win32_WindowsProductActivation data
  32469  Conflict: Denied Ops crashes while loading a mission (without native msvcr80)
  32486  The Settlers 7 needs msvcr90.dll._aligned_msize
  32487  unimplemented function msvcr90.dll._set_fmode
  32494  theme hospital GOG installed gdiplus runtime error

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

Changes since 1.5.19:

Alexandre Goujon (1):
      kernel32: Use the FSD sector location to compute the serial of a UDF volume.

Alexandre Julliard (25):
      widl: Fix a typo in the man page.
      gdiplus/tests: Tweak some metrics to make the tests pass on Wine.
      gdi32: Add ref counting to the font objects and simplify the cache management.
      gdi32: Fix handling of font orientation in advanced graphics mode.
      winex11: Send WM_EXITSIZEMOVE when the mouse has been released.
      gdi32: Add a level of pointers to the glyph cache to avoid the need for locking individual glyphs.
      winex11: Send WM_ENTERSIZEMOVE when starting to poll for a window move/resize.
      gdi32: Fix text justification to properly handle logical coordinates.
      ole32: Limit the number of messages processed at once in CoWaitForMultipleObjects.
      user32: Start checking for driver events more often when the app doesn't consume messages properly.
      gdi32: Fix handling of rotation matrices in GetGlyphOutline.
      gdi32: Add a helper function to order the points of a rectangle.
      gdi32: Support wrongly ordered rectangles in RectVisible.
      include: Force stack alignment also on Linux to work around the ABI breakage.
      user32: Properly fixup font system parameters with positive height.
      user32: Fix copy/paste typo.
      fonts: Make Tahoma start at character 32.
      gdi32: Add helper functions for GetTextExtentExPoint and fix handling of text justification.
      gdi32: Remove from the GetTextExtentExPoint entry points parameters that can't be handled by the driver.
      make_specfiles: Don't copy the ordinal flag if not appropriate.
      oleaut32: Use a saner calling convention for the marshaller asm thunks.
      oleaut32: Cleanup some relay traces.
      gdi32: Compute the extents of the whole string at once in ExtTextOut.
      gdi32: Avoid duplicate computation of text extents in ExtTextOut.
      winspool.drv: Remove a todo that succeeds now.

Alistair Leslie-Hughes (1):
      oleaut32: Don't output an error when the typelib cannot be found.

Amine Khaldi (4):
      include: Define FIELD_OFFSET to the standard offsetof.
      include: Define CONTAINING_RECORD using the standard offsetof.
      include: Define WINE_RB_ENTRY_VALUE using the standard offsetof.
      include: Define LIST_ENTRY using the standard offsetof.

Andrew Eikum (4):
      winealsa.drv: Be less strict about wValidBitsPerSample.
      dsound: Always fill wValidBitsPerSample.
      mmdevapi: Implement (Un)RegisterEndpointNotificationCallback.
      mmdevapi: Send notifications to clients when the user-selected default device changes.

Andrew Talbot (20):
      windowscodecs: Remove unneeded address-of operator from array name.
      mountmgr.sys: Remove superfluous semicolon.
      comdlg32: Indentation fix.
      comctl32: Indentation fix.
      msvcp100: Avoid signed-unsigned integer comparisons.
      amstream: Avoid signed-unsigned integer comparisons.
      mapi32: Indentation fix.
      krnl386.exe16: Indentation fix.
      dsound: Indentation fix.
      dbghelp: Indentation fix.
      comdlg32: Indentation fix.
      comctl32: Indentation fix.
      gdi32: Indentation fix.
      msvcrt: Indentation fix.
      msacm32: Indentation fix.
      ole32: Indentation fix.
      ole2disp.dll16: Indentation fix.
      oleaut32: Indentation fix.
      rsaenh: Indentation fix.
      shell32: Indentation fix.

André Hentschel (6):
      winedbg: Add load/store dual/exclusive and table branch operators to Thumb2 disassembler.
      shlwapi/tests: Fix two tests on win8.
      mmdevapi/test: Fix tests on win8.
      winemapi: List ignored attachments.
      msvcrt/tests: Don't test function directly when reporting errno.
      kernel32/tests: Don't test function directly when reporting GetLastError().

Ann and Jason Edmeades (1):
      cmd: Add set /a support.

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

Austin English (7):
      d3d11: Add a stub dll.
      atl80: Fix typos in spec file.
      msvcrt: Implement _ftol in msvcrt instead of forwarding to ntdll.
      msvcrt: Implement memcpy in msvcrt instead of forwarding to ntdll.
      widl: write_array_element_type shouldn't return a value.
      widl: add_interface_typeinfo should not return a value.
      winedbg: stack_backtrace should not return a value.

Caron Jensen (1):
      wined3d: Recognize Nvidia GT520 cards.

Christian Costa (11):
      d3drm: Load object only if it is top level and requested or if it is part of another object.
      d3drm: Handle all materials in material list and create corresponding mesh groups + tests.
      d3drm: Handle texture load proc when loading mesh data.
      d3drm: Face data size is in number of DWORD.
      d3drm: Check params in IDirect3DRMMeshBuilder2Impl_GetVertices + tests.
      d3drm: Fix return error code.
      dmloader: COM cleanup of IDirectMusicLoader object.
      dmloader: Use dump_DMUS_OBJECTDESC to dump data to avoid truncation in TRACE.
      dmusic: Set instrument stream position where the instrument begins, not at the beginning of the instruments list. Simplify CustomLoad accordingly.
      dmusic: Implement instrument regions loading.
      dmusic: Use static variables for instrument header and id instead of using pointer.

Daniel Jelinski (5):
      comctl32/tests: Add listview header notification tests.
      comctl32/listview: Convert header notifications to ANSI in place.
      comctl32/listview: Forward more header notifications to parent window.
      user32: Always call ScrollWindowEx in the listbox WM_VSCROLL handler.
      msi: Do not convert MaskedEdit contents to uppercase.

Detlef Riekenberg (14):
      mlang/tests: Accept the different translation in win8.
      advapi32/tests: Accept win8 failure code.
      comdlg32/tests: Use win8 failure-code as default result.
      api-ms-win-downlevel-advapi32-l1-1-0: Add dll.
      api-ms-win-downlevel-shlwapi-l1-1-0: Add dll.
      api-ms-win-downlevel-version-l1-1-0: Add dll.
      api-ms-win-downlevel-user32-l1-1-0: Add dll.
      api-ms-win-downlevel-normaliz-l1-1-0: Add dll.
      api-ms-win-downlevel-ole32-l1-1-0.dll: Add dll.
      api-ms-win-downlevel-shlwapi-l2-1-0: Add dll.
      api-ms-win-downlevel-shell32-l1-1-0: Add dll.
      api-ms-win-downlevel-advapi32-l2-1-0: Add dll.
      api-ms-win-core-winrt-string-l1-1-0: Add dll.
      api-ms-win-core-winrt-error-l1-1-0: Add dll.

Dmitry Timoshkov (12):
      windowscodecs: GetThumbnail of the PNG decoder should return NULL interface.
      windowscodecs: Implement GetPreview in the PNG decoder.
      windowscodecs: Implement GetThumbnail in the PNG frame decoder.
      wineps.drv: Add a trace to PSDRV_GetDeviceCaps.
      winspool.drv: Add more traces.
      wineps.drv: Update default DEVMODE to better indicate initialized fields.
      winspool.drv: Correct the DocumentProperties spec entry.
      wineps.drv: Use device resolution specified at DC creation time.
      wineps.drv: Return ASPECTX/Y which represent current device resolution.
      wineps.drv: Keep track of all supported device resolutions.
      wineps.drv: Ignore requested resolutions not supported by device.
      wineps.drv: Slightly simplify a PPD parser code snippet.

Erich Hoover (1):
      advapi32: Support service objects in GetSecurityInfo.

Francois Gouget (4):
      wined3d: Remove a stray semi-colon from the spec file.
      d3dx9_36/tests: Skip some tests when DXT5 textures are not supported.
      winhttp/tests: Make some traces more explicit.
      d3dx9_36/tests: Use software vertex processing so the tests can run on Intel GM950 graphics cards.

Frédéric Delanoy (5):
      include: Assorted spelling fixes.
      po: Update French translation.
      cmd: Remove dead assignment (clang).
      cmd: Remove dead assignments (clang).
      xmllite: Avoid dead initialization (clang).

Hans Leidekker (15):
      wininet: Don't perform revocation checks when verifying a certificate.
      msi: Don't set the Preselected property for a full reinstall.
      advapi32: Add support for filtering credentials on MacOS in CredEnumerateW.
      wbemprox: Avoid a crash in get_propval when the query returned no results.
      winhttp: Check the server response when downloading a PAC script.
      winhttp: Use the hostname instead of the IPv4 address in the URL returned from WinHttpDetectAutoProxyConfigUrl.
      msi: Fix a test failure on Windows 8 and conform to the more recent behavior.
      winhttp/tests: Fix test failures on Windows 8.
      winhttp: Add a missing goto in winhttp_request_get_Status.
      wininet: Map socket errors to ERROR_INTERNET_CANNOT_CONNECT in create_netconn_socket.
      winhttp/tests: Make sure proxy settings are restored.
      pdh: Accept the local machine name in counter paths.
      wmiutils: Rename wmiutils.idl to wmiutils_classes.idl.
      wmiutils: Add a stub implementation of IWbemPath.
      wmiutils: Implement IWbemPath::SetText and IWbemPath::GetText.

Henri Verbeet (25):
      ddraw: Avoid LPDDCOLORCONTROL.
      ddraw: Avoid LPDDGAMMARAMP.
      ddraw: Avoid LPDDOVERLAYFX.
      d3d10core: Implement d3d10_device_PSSetSamplers().
      d3d10core: Implement d3d10_device_PSGetSamplers().
      ddraw: Avoid LPDDBLTBATCH.
      ddraw: Avoid LPDDDEVICEIDENTIFIER.
      ddraw: Avoid LPDDDEVICEIDENTIFIER2.
      d3d10core: Get rid of a FIXME in d3d10_device_CreateGeometryShader().
      wined3d: Get rid of ENTER_GL / LEAVE_GL.
      ddraw: Avoid LPD3DDEVICEDESC.
      ddraw: Avoid LPD3DDEVICEDESC7.
      d3d10core: Implement d3d10_sampler_state_GetDesc().
      d3d10core: Only create unique sampler state objects.
      d3d10core/tests: Add a small test for ID3D10Device_CreateSamplerState().
      ddraw: Avoid LPD3DFINDDEVICESEARCH.
      ddraw: Avoid LPD3DEXECUTEBUFFERDESC.
      d3d10core: Implement d3d10_blend_state_GetDesc().
      d3d10core: Only create unique blend state objects.
      d3d10core/tests: Add a small test for ID3D10Device_CreateBlendState().
      ddraw: Avoid LPD3DVALUE.
      ddraw: Avoid LPD3DMATERIALHANDLE.
      d3d10core: Implement d3d10_depthstencil_state_GetDesc().
      d3d10core: Only create unique depthstencil state objects.
      d3d10core/tests: Add a small test for ID3D10Device_CreateDepthStencilState().

Huw Davies (5):
      usp10: Add the ability to just return the size of the value record.
      usp10: PairValueRecord is a variable length struct, so don't use a C array to index into them.
      usp10: Glyph class tables are just generic class tables.
      usp10: Move the application of pair values to a helper function.
      usp10: Add support for format 2 pair adjustments.

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

Jacek Caban (39):
      wininet: Fixed handling empty HTTP version string in HttpOpenRequest.
      atl: Allow version-based differences in struct layouts.
      atl100: Added AtlAddTermFunc implementation (based on atl.dll version).
      atl100: Added AtlCallTermFunc implementation (based on AtlModuleTerm).
      atl: Don't call HeapFree on module argument in AtlModuleTerm.
      atl100: Added AtlUpdateRegistryFromResourceD implementation (based on AtlModuleUpdateRegistryFromResourceD).
      atl: Reimplemented AtlModuleUpdateRegistryFromResourceD on top of AtlUpdateRegistryFromResourceD.
      atl100: Added AtlLoadTypeLib implementation (based on AtlModuleLoadTypeLib).
      atl: Reimplemented AtlModuleLoadTypeLib on top of AtlLoadTypeLib.
      jscript: Throw an error if return statement is in eval code.
      jscript: Added support for SCRIPTTEXT_ISEXPRESSION.
      jscript: Added SCRIPTTEXT_ISEXPRESSION tests.
      atl: Added locking to AtlModuleAddCreateWndData.
      atl100: Added AtlWinModuleAddCreateWndData implementation (based on AtlModuleAddCreateWndData).
      atl80: Fixed some spec file entries.
      atl100: Added AtlRegisterClassCategoriesHelper stub.
      atl: Merge registrar.c into atl_main.c.
      jscript: Moved eval return value logic to specific statement handlers.
      jscript: Ensure correct stack state for non-returning expression evaluation in compile_expression.
      ole32: Added IMoniker::BindToStorage proxy/stub implementation.
      jscript: Properly handle return value evaluation in comma expression.
      jscript: Allow poping multiple stack values at the time.
      atl100: Added AtlComModuleGetClassObject implementation (based on AtlModuleGetClassObject).
      jscript: Fixed Number.toFixed for value 0 with 0 precision.
      jscript: Fixed deleting nonexisting properties from member expression.
      jscript: Fixed deleting nonexistent identifiers.
      jscript: Fixed deleting properties of pure dispatch interface.
      jscript: Fixed deleting properties by name from IDispatchEx interface.
      jscript: Fixed deleting property by ID from IDispatchEx interface.
      urlmon: Added IWinInetInfo and IWinInetHttpInfo proxy/stub implementation.
      jscript: Moved string concatenation to helper function.
      jscript: Optimized concatenation of empty strings.
      atl100: Added AtlWinModuleInit implementation.
      atl100: Added AtlWinModuleInit tests.
      propvarutil.h: Added InitPropVariantFromInt64 declaration and inline implementation.
      atl100: Added AtlWinModuleExtractCreateWndData implementation.
      atl100: Added AtlWinModuleExtractCreateWndData tests.
      atl80: Updated spec file.
      jscript: Added null and undefined values support to to_object.

Jason Edmeades (2):
      cmd: Convert the set /a tests to validate better.
      cmd: Add more tests for set /a.

Jiang Yike (1):
      wined3d: Add recognition for NVIDIA GeForce GTX 660 Ti, 660, 650 Ti and 650.

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

Jörg Höhle (3):
      mmdevapi: SetEventHandle is allowed only once.
      winealsa: Separate read and write pointers.
      mmdevapi: Avoid lock contention after SetEvent.

Ken Thomases (6):
      winspool: Close read end of pipe in parent so we can detect child termination.
      servicemodelreg: Keep debug channel name to 14 characters or fewer.
      winequartz.drv: Rename to winemac.drv ("the Mac driver").
      winemac: Implement minimal Create[Compatible]DC() and DeleteDC().
      configure: Only enable the Mac driver on Mac OS X 10.6 or later.
      winemac: Implement GetDeviceCaps().

Michael Stefaniuc (8):
      dnsapi: Use FIELD_OFFSET for the size of a struct with var length array.
      dwrite: Don't overallocate memory for a BITMAPINFO.
      iphlpapi: Simplify size calculation of structs with var length array.
      itss: Don't over-allocate memory for a ITSS_IStorageImpl.
      localui: Avoid sizeof on structs with a varlength array.
      netapi32: Avoid sizeof on structs with a varlength array.
      comctl32/tests: Get rid of a temp buffer.
      msi: Use FIELD_OFFSET for the size of structs with a varlength array.

Nikolay Sivov (18):
      oledb32: Fix DBPROPSET and DBPROPINFOSET cleanup.
      oleaut32: Use correct allocation length (Coverity).
      msi: Fix a stream data leak on error (Coverity).
      comctl32: Fix a ranges leak on error.
      comctl32: Initialize id field for message tests.
      msxml3: GetMaxSize() is not a stub.
      comctl32: Fix font style when item is bold and hovered in track mode.
      msxml3: Some tests to show that DISPID_VALUE properties are handled specially.
      oleaut32: Added a test for prop getter invocation with different flags.
      msxml3: Add custom handling for DISPID_VALUE for node list.
      xmllite: Track internal parser state to select expected node type.
      xmllite: Support comment nodes.
      xmllite: Remove dead code.
      scrrun: Implement GetFileVersion().
      version: Remove 'return' from void function.
      winedump: Fix argument format for DllMain trace.
      msxml3: More tests for DISPID_VALUE properties handling.
      shlwapi: Implement IsCharSpaceA().

Piotr Caban (40):
      kernel32: Fixed TIME_CompTimeZoneID behavior on dates close to New Year's Eve.
      msvcrt: Reimplement _tzset function.
      msvcrt: Added _tzset tests.
      msvcrt: Fixed mktime and _mktime64 implementation.
      msvcrt: Fixed mkgmtime and _mkgmtime64 implementation.
      msvcrt: Improved input parameter range check in _gmtime64_s.
      msvcrt: Reorganize _localtime64 function.
      msvcrt: Fixed _localtime64 implementation.
      msvcrt: Fixed get_this_pointer implementation.
      msvcr100: Added fread_s implementation.
      msvcrt: Fixed floating point numbers printing when flags.Sign=' '.
      msvcr100: Added _sprintf_p implementation.
      msvcr100: Added _get_timezone implementation.
      msvcrt: Added _wtoi_l implementation.
      msvcrt: Added _atoi_l implementation.
      msvcrt: Added _vfwprintf_l implementation.
      msvcrt: Added _fwprintf_l implementation.
      msvcrt: Added _mbsnbicoll_l implementation.
      msvcrt: Added _mbsnbcoll_l implementation.
      msvcrt: Don't flush stream in fputs function.
      msvcrt: Support expand_wildcards parameter in __getmainargs function.
      msvcrt: Fixed wildcard expanding when path is specified in __getmainargs.
      msvcrt: Support expand_wildcards parameter in __wgetmainargs function.
      msvcrt: Added __getmainargs tests.
      msvcrt: Don't duplicate floating-point number parsing code in MSVCRT__atoflt_l.
      msvcrt: Added _atodbl_l implementation.
      msvcrt: Added _atodbl tests.
      msvcrt: Sync spec files.
      wined3d: Recognize Nvidia GT610 card.
      msvcrt: Fixed codepage setting code in create_locale.
      msvcrt: Fixed locale matching code.
      msvcrt: Added more setlocale tests.
      msvcrt: Use LC_COLLATE category in strcoll functions.
      msvcrt: Use CompareString in wcscoll functions.
      msvcrt: Don't fail when _aligned_offset_malloc is used with size=0.
      msvcrt: Don't call local_unwind2 when Cookie equals MSVCRT_JMP_MAGIC in longjmp.
      msvcrt: Added _set_fmode and _get_fmode implementation.
      msvcr100: Added _aligned_msize implementation.
      wininet: Fixed CreateUrlCacheEntryW behaviour on URLs without '\' and '/' characters.
      wininet: NULL terminate cookie data in load_persistent_cookie function.

Stefan Dösinger (10):
      ddraw: Pass the number of vertices to DrawIndexedPrimitive.
      ddraw: Move the index buffer growing code to a separate function.
      ddraw: Handle DrawPrimitive with a dynamic vertex buffer.
      ddraw: Handle DrawIndexedPrimitive via dynamic buffers.
      ddraw: Align user vertex data.
      d3d8: Use a dynamic vertex buffer for DrawPrimitiveUP.
      d3d8: Use dynamic buffers for DrawIndexedPrimitiveUP.
      d3d9: Use a dynamic buffer for DrawPrimitiveUP.
      d3d9: Use dynamic buffers for DrawIndexedPrimitiveUP.
      wined3d: Remove draw_*_primitive_up.

Sylvain Petreolle (1):
      setupapi: Add stub for SetupAddToSourceListW.

--
Alexandre Julliard
julliard@winehq.org
