The Wine development release 1.5.3 is now available.

What's new in this release (see below for details):
  - Support for graphics bounds tracking.
  - A number of fixes to the builtin Internet Explorer.
  - Support for displaying ARM code in the Wine debugger.
  - Various DirectMusic improvements.
  - Better namespace support in MSXML.
  - Various bug fixes.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.5.3.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.5.3.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.3:

   6878  GetBoundsRect not implemented
   7977  date format differs from Windows
   7990  C&C 3 Video does not stretch to fullscreen with ATI drivers
  12228  No ALSA support for certain soundcards since 0.9.57
  14400  AngelBot crashes if text is copied via right-click context menu
  15582  Adobe Dreamweaver CS3 Installer crash if you reject the license
  15606  Lotr Bfme2: Big parts of characters appear in a glowing white
  19435  Some winsock calls will crash when passing NULL as protocol parameter
  20102  Runes of magic is unable to save configuration settings
  20566  icons of size 24x24 are black
  20770  FineReader 8 crashes after importing images into an empty batch
  20839  Blue particles where there should be only fog in Age of Empires III trial.
  21269  Babylon 5 - I've F­ound Her: crashes when colliding with objects if using a joystick
  22767  Ragnarok and deforming sound
  23106  Shareaza shows white boxes when you select a neighbor in the network tab
  23867  Non-English characters don't display in winecfg
  24816  Serif WebPlus X2 fails to install
  26176  JavaScript custom-actions not running?
  26420  TES Construction Set crashes on topic view/edit
  27157  Brink: No sound
  27273  Microsoft Office Communicator 2007 R2 does not install, doesn't recognize MSXML 6.0 SP1 as installed (ACTION_FileVersionMatches needs to check version for languages)
  28340  UFO: Extraterrestrials Gold crashes at start (can't be workarounded by using native dsound/directplay)
  28848  PCSX2 0.9.9 svn r4942: Using GSDX plugin results in garbled graphics
  28999  Weatherbug fails to detect vbscript
  29099  LabView 2011 demo crashes on start (PathRemoveExtensionA/W unconditionally tries to null terminate string)
  29165  IApplicationAssociationRegistration not implemented (needed by gecko)
  29318  Internet Explorer 8 cannot show previews on the quick tabs screen
  29823  Subtitle Edit is missing its menu bar with MS .NET 2.0, but not Mono
  30085  Non display of code from a saved project on starting the app again
  30090  Pegasus Mail v4.63 build 325 starts w/ exception (0x80004001) (0x80004001) @01AE3610 (mshtml HTMLDocument_put_URL is a stub)
  30233  Cisco IP Communicator 8.6(1). The minimum supported processor to run Cisco IP Communicator is a P3 Pentium-level or compatible processor
  30243  RaiderZ needs msvcr90.dll._byteswap_ulong
  30283  Can not fetch STATIC records from Microsoft ADO data sources
  30313  Microsoft Office Communicator 2007 R2 Trial requires ISAXXMLReader feature "namespace-prefixes"
  30363  Some sites iexplore now hangs
  30401  Iexplore crashes http://whatsmyuseragent.com
  30430  Iexplore crashes http://europe.cnn.com/CNNI/
  30440  Iexplore crashes https://login.yahoo.com/
  30448  Star Wars Galactic Battlegrounds 1.0: crashes randomly every time I play it
  30461  Windows Media Player does not render video
  30468  Iexplore hangs http://www.tinymce.com/tryit/full.php
  30478  Document.write doesn't support number content
  30482  Lexware Buchhalter 2012 fails on startup due to GdipCreateFontFromLogfont not properly handling negative font heights
  30491  Microsoft Office Communicator 2007 R2 Trial fails to parse rule XML from resource file (BSTR/UTF-16 passed to SAXXMLReader)
  30505  Microsoft Office Communicator 2007 R2 Trial fails to parse rule XML from resource file (needs support for push/pop operations for namespace contexts)
  30508  Powerpoint 2003 & 2007: embedded video has an "ActiveMovie" title bar (and shouldn't)
  30510  Crash when using CANeds
  30516  StudioTax 2011 installer hangs

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

Changes since 1.5.2:

Akihiro Sagawa (2):
      comctl32/tests: Add tests for long info tip texts.
      comctl32: Truncate the info tip text when using ANSI version messages.

Alexander Morozov (1):
      kernel32/tests: Add more tests for early closing mapping handle.

Alexandre Julliard (18):
      po: Fix a msgid in the Danish translation.
      gdi32: Add helper functions for manipulating bounds rectangles.
      gdi32: Add a GetBoundsRect driver entry point.
      gdi32: Add bounds tracking to all the DIB engine entry points.
      winex11: Convert all points to device coordinates at once for polylines and polygons.
      winex11: ExtFloodFill does take the current ROP into account.
      gdi32/tests: Fix a test that can fail on multi-monitor setups.
      winex11: Remove support for server-side fonts.
      winex11: Add bounds rectangle tracking to all graphics entry points.
      user32: Don't invalidate DCEs for sibling top-level windows since they are not clipped.
      gdi32/tests: Take into account multi-monitor setups in the clip region tests.
      gdi32: Fix some typos in the 4-bpp shrink_row function.
      dmusic: Internal functions don't need to be WINAPI.
      gdi32: Fix coordinates for row copies in mirrored vertical stretching.
      iphlpapi/tests: Get rid of function typedefs and use more standard names for function pointers.
      gdi32: Add a SetBoundsRect driver entry point.
      gdi32: Store the bounds rectangle as a pointer in the DIB driver.
      winex11: Store the DC bounds rectangle as a pointer.

Andrew Eikum (2):
      dmime: Don't try to create a standard audio path if the client didn't ask for one.
      dsound: Map MMDevAPI error to DSound error.

André Hentschel (21):
      winedbg: Add long branch to Thumb disassembling.
      winedbg: Solve ARM disassembling fixmes.
      winedbg: Use better register names for ARM disassembling.
      winedbg: Fix parsing table for ARM disassembler.
      advapi32: Avoid shadowing a parameter.
      crypt32: Avoid shadowing a parameter.
      winedbg: Add shift operators to ARM disassembler.
      comctl32: Remove unneeded shadow variables for comboex.
      devenum: Remove unneeded shadow variables.
      gdi32: Remove unneeded shadow variable.
      mscms: Remove unneeded shadow variable.
      netapi32: Remove unneeded shadow variables.
      winhlp32: Remove unneeded shadow variables.
      jscript: Remove unneeded shadow variable.
      services: Remove unneeded shadow variable.
      winedbg: Disassemble more Thumb instructions.
      winedbg: Add "load address" and new nops to the Thumb disassembler.
      winedbg: Print all available information about branch targets in ARM disassembler.
      winevdm: Remove unneeded shadow variable.
      ws2_32: Remove unneeded shadow variable.
      dbghelp: Assorted fixes for shadow variables.

Aric Stewart (8):
      quartz: Correct a critical section lock reversal issue found by Marcus Meissner (Coverity).
      strmbase: Implement BaseDispatch.
      strmbase: Have BaseControlWindow use BaseDispatch.
      strmbase: Have BaseControlVideo use BaseDispatch.
      strmbase: Have PassThruImpl use BaseDispatch.
      strmbase: We cannot hold the RenderLock during QualityControlRender_WaitFor.
      strmbase: get_VideoHeight should always have a positive height.
      strmbase: Track internal window styles in baseWindow.WindowStyles.

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

Bruno Jesus (4):
      ole32: Make sure StgIsStorageILockBytes tests real data.
      iphlpapi/tests: Add SetTcpEntry tests.
      regedit: Fix item text reading in regedit.
      regedit: Allows semicolon comments.

Carlo Bramini (1):
      shlwapi: Add NULL checks to StrCpyW and StrCatW.

Christian Costa (25):
      winegstreamer: Remove useless FIXME.
      dmband: Add tests.
      dmband: Display flag variables in hexadecimal and rename some parameters.
      d3drm: Pass the first requested interface when notifying the application.
      d3drm: Implement IDirect3DRMFrameX_AddChild.
      d3drm: Implement IDirect3DRMFrameX_DeleteChild.
      dmusic: Fix IDirectMusic8Impl_CreateMusicBuffer buffer signature.
      dmusic: Pass creation parameters to DMUSIC_CreateDirectMusicBufferImpl then allocate data buffer and set format accordingly.
      dmusic: COM clean-up of IDirectMusicBuffer.
      include: Add dmksctrl.h with definition of KSDATAFORMAT_SUBTYPE_DIRECTMUSIC needed by DirectMusic.
      amstream: Use proper constructor name for ddraw mediastream.
      amstream: Add IAudioMediaStream stub implementation.
      dmusic: Implement IDirectMusicBufferImpl_GetBufferFormat.
      dmusic: Implement IDirectMusicBufferImpl_GetMaxBytes.
      dmusic: Implement IDirectMusicBufferImpl_GetRawBufferPtr.
      dmusic: Display new ref in IDirectMusicBufferImpl_AddRef and IDirectMusicBufferImpl_Release.
      dmusic: Cleanup IDirectMusicBufferImpl_QueryInterface.
      amstream: Add stubbed implementation of DirectDrawStreamSample.
      amstream: Add stubbed implementation of AudioStreamSample.
      dmusic: Add tests for IDirectMusicBuffer.
      dmusic: Handle GUID_NULL when creating IDirectMusicBuffer.
      dmusic: Implement IDirectMusicBufferImpl_PackStructured.
      dmusic: IDirectMusicBufferImpl_GetUsedBytes.
      dmusic: Implement IDirectMusicBuffer_GetStartTime and IDirectMusicBuffer_SetStartTime.
      dmusic: Implement IDirectMusicBufferImpl_Flush.

Daniel Lehman (3):
      gdi32: Don't add_join if points are coincident in wide_line_segments.
      msvcrt: Add declarations to stdlib.h for _strtoui64 and _strtoi64.
      oleaut32: Treat years 0 to 29 as 2000 to 2029 in VARIANT_RollUdate.

Detlef Riekenberg (2):
      browseui: Add IOleWindow to IProgressDialog.
      browseui/tests: Add tests for IProgressDialog.

Dmitry Timoshkov (17):
      kernel32: Fix some typos, remove not needed casts.
      server: Add access mapping for IO completion objects.
      include: Define MUTEX_ALL_ACCESS in a PSDK compatible way.
      include: Add some missing FILE_FLAG_xxx definitions.
      advapi32: Add distinct tests for Read, Write and Execute access rights for kernel objects.
      advapi32: Add named pipe access tests.
      gdiplus: Use StretchBlt instead of GdiAlphaBlend if device doesn't support alpha blending.
      kernel32: Add more memory access checks.
      gdiplus: Avoid saving negative values in pixel_size and emSize.
      gdiplus: Use symbolic names of font styles.
      gdiplus: Use Tahoma instead of Arial for gdiplus font tests.
      include/wine/test.h: Fix tests compilation with a PSDK compiler.
      gdiplus: Do not rely on an enumerated font size being equal to otmEMSquare.
      gdi32: Enumerated font size should not be too large.
      gdi32: ntmCellHeight and ntmAvgWidth should be in font units.
      gdiplus: Use symbolic name of the font style.
      winex11.drv: Windows always generates VK_DECIMAL for Del/. on a keypad.

Francois Gouget (24):
      d3drm/tests: Make object_load_callback() static.
      quartz: Mark a bunch of functions as static.
      scrrun/tests: Make test_interfaces() static.
      wineoss.drv: Make get_ossdevice_from_guid() static.
      gdiplus/tests: Make test_pathgradientpresetblend() static.
      msi: Make create_record() static.
      po: Fix some typography issues in the Czech translation.
      po: A couple of line wrapping tweaks in the Czech translation.
      po: Fix a couple of typography issues in the Portuguese (Portugal) translation.
      po: Assorted French translation spelling fixes and tweaks.
      po: Mark an Esperanto translation with an invalid formatting directive as fuzzy.
      po: Fix a few line feed / line wrapping issues in the Esperanto translation.
      po: Fix some typography issues in the Esperanto translation.
      po: Fix a couple of trailing space issues in the Korean translation.
      po: Fix some typography issues in the Danish translation.
      po: Fix a couple of line feed / line wrapping issues in the Ukrainian translation.
      po: Fix some typography issues in the Ukrainian translation.
      po: Fix some typography issues in the Turkish translation.
      po: Mark an incomplete Ukrainian translation as fuzzy.
      po: Mark an incorrect Spanish translation as fuzzy.
      po: Fix some typography issues in the Chinese (PRC) translation.
      po: Fix a Portuguese (Portugal) translation.
      po: Update a few Yes/No/All Slovak translations.
      comctl32/tests: Add a trailing '\n' to an ok() call.

Frédéric Delanoy (2):
      vbscript: Fix a typo.
      jscript: Assorted spelling fixes.

Hans Leidekker (16):
      server: Include the Unix pid in the snapshot_next_process reply.
      iphlpapi: Add support for TCP_TABLE_OWNER_PID_ALL in GetExtendedTcpTable.
      iphlpapi: Add tests for GetExtendedTcpTable.
      iphlpapi: Reimplement GetTcpTable on top of GetExtendedTcpTable.
      msi: Fix install state detection for registry components.
      msi/tests: Add a test for MsiEnumProductsEx.
      msi/tests: Fix some leaks.
      msi: Remove an unneeded assignment.
      msi: Reduce the indentation level in ACTION_GetComponentInstallStates.
      msi: Initialize hkey in msi_comp_find_prod_key.
      msi: Dynamically allocate the path buffer in MsiQueryComponentStateW.
      msi: Remove child folders first in the RemoveFolders action.
      msi: Check supported languages in the AppSearch action.
      msi: Don't free cached tables in MsiDatabaseCommit.
      msi: Avoid a crash in get_registered_local_package.
      fusion: Implement IAssemblyCache::UninstallAssembly.

Henri Verbeet (50):
      d3d10core: COM cleanup for the ID3D10Buffer interface.
      d3d10: COM cleanup for the ID3D10EffectVariable interface.
      wined3d: Move the present() back buffer check to the common wined3d_swapchain_present() code.
      wined3d: device_clear_render_targets() never fails.
      ddraw/tests: Add a helper function to create a material.
      d3d8: Properly retrieve an interface pointer in IDirect3DCubeTexture8Impl_GetCubeMapSurface().
      d3d8: Properly retrieve an interface pointer in IDirect3DCubeTexture8Impl_LockRect().
      d3d8: Properly retrieve an interface pointer in IDirect3DCubeTexture8Impl_UnlockRect().
      d3d8: Get rid of IDirect3DTexture8Impl.
      d3d8: Get rid of IDirect3DCubeTexture8Impl.
      d3d8: Properly retrieve an interface pointer in d3d8_texture_2d_GetSurfaceLevel().
      d3d8: Properly retrieve an interface pointer in d3d8_texture_2d_LockRect().
      d3d8: Properly retrieve an interface pointer in d3d8_texture_2d_UnlockRect().
      d3d8: Get rid of IDirect3DVolumeTexture8Impl.
      d3d8: Merge cubetexture.c into texture.c.
      d3d8: Properly retrieve an interface pointer in d3d8_texture_3d_GetVolumeLevel().
      d3d8: Properly retrieve an interface pointer in d3d8_texture_3d_LockBox().
      d3d8: Properly retrieve an interface pointer in d3d8_texture_3d_UnlockBox().
      d3d8: Merge volumetexture.c into texture.c.
      d3d8: Get rid of IDirect3DBaseTexture8Impl.
      d3d8: Properly retrieve an interface pointer in IDirect3DSwapChain8Impl_GetBackBuffer().
      d3d8: Use the surface implementation pointer in reset_enum_callback().
      d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetBackBuffer().
      dxgi: COM cleanup for the surface IUnknown interface.
      ddraw/tests: Add a helper function to set the viewport background material.
      d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetRenderTarget().
      d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetDepthStencilSurface().
      d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetTexture().
      d3d9: Get rid of IDirect3DTexture9Impl.
      d3d9: Get rid of IDirect3DCubeTexture9Impl.
      d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetIndices().
      d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetStreamSource().
      d3d9: Properly retrieve an interface pointer in IDirect3DSwapChain9Impl_GetBackBuffer().
      d3d9: Get rid of IDirect3DVolumeTexture9Impl.
      d3d9: Merge cubetexture.c into texture.c.
      d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetSwapChain().
      d3d9: Use the surface implementation pointer in reset_enum_callback().
      d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetBackBuffer().
      d3d9: Merge volumetexture.c into texture.c.
      d3d9: Get rid of IDirect3DBaseTexture9Impl.
      d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetRenderTarget().
      d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetDepthStencilSurface().
      d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetTexture().
      ddraw: Get rid of IClassFactoryImpl.
      wined3d: Move the resource bind_count field up to wined3d_resource.
      d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetVertexDeclaration().
      d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetVertexShader().
      d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetPixelShader().
      d3dx9: Introduce a special case for simple loads in D3DXLoadSurfaceFromMemory().
      d3dx9: Add basic support for loading DXT formats to D3DXLoadSurfaceFromMemory().

Huw Davies (11):
      wineps: Add a helper to find an input slot.
      wineps: Add a helper to find a page size.
      wineps: Add a helper to find a duplex entry.
      wineps: Add a cups job ticket containing pagesize and duplex information.
      winspool: Simplify cups function loading.
      winspool: Explicitly set CUPS options based on any job ticket lines, which otherwise get ignored by cupsPrintFile.
      winspool: Add a helper to open a printer's registry key.
      winspool: Simplify the code that checks for deleted printers and have it not call OpenPrinter unless it finds a printer that needs deletion.
      winspool: Update the default settings when deleting the default printer.
      winspool: If CUPS is found but lists no printers assume that there really are no printers - don't look in /etc/printcap.
      winspool: Don't leak the handle returned by AddPrinter.

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

Jacek Caban (36):
      jscript: Make sure to jump out of switch before entering implicit default clausule.
      mshtml: Added IHTMLStyle2::bottom implementation.
      mshtml: Added support for IHTMLEventObj::cancelBubble property.
      mshtml: Moved style_tbl lookup to separated function.
      mshtml: Added IHTMLStyle::removeAttribute implementation.
      mshtml: Added IHTMLStyle::removeAttribute tests.
      axcore.idl: Guard GetTimeFormat by WINE_NO_UNICODE_MACROS ifdef and added missing AM_GBF_NODDSURFACELOCK define.
      mshtml: Added IHTMLDocument2::put_URL implementation.
      Added support for shadowing of element pseudo-variables.
      mshtml: Added IHTMLWindow3::detachEvent implementation.
      mshtml: Added IHTMLStyle2::overflowX implementation.
      mshtml: Added IHTMLStyle2::overflowY implementation.
      jscript: Addded parameterized property assignment support.
      jscript: Added parameterized property assignment tests.
      jscript: Pass correct cpbegin to InitMatch.
      jscript: Correctly handle empty matches in String.replace.
      mshtml: Allow more tests to be ran in non-administrator mode.
      mshtml: Copy filter value in HTMLElement_clone.
      winhttp: Fixed netconn_recv when read uses both SSL_recv and buffered data.
      winhttp: Use SSL_pending in netconn_query_data_available.
      jscript: Added regexp 'pre-parser' to support non-backslash-sequenced non-terminating '/' in characted classes.
      mshtml: Ignore dispid 3000026 in IPropertyNotifySink::OnChanged tests.
      mshtml: Accept different VARIANT types in document_write.
      winhttp: Trace accept types in WinHttpOpenRequest.
      jscript: Use compiler-generated struct for representing function code.
      jscript: Store function name in function_code_t.
      jscript: Store source code range in function_code_t.
      jscript: Store variable names in function_code_t.
      jscript: Fixed func->funcs leak.
      jscript: Store function parameters in function_code_t.
      jscript: Make parser a temporary compiler object.
      jscript: Moved collecting variable declarations from parser to compiler.
      vbscript: 'property' may be both keyword and identifier.
      jscript: Get rid of parser function collecting hack by moving the logic to compiler.
      jscript: Use stack_push_int in interp_bneg.
      jscript: Removed unused do_*_tag_format arguments.

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

Józef Kucia (1):
      d3dx9/tests: Add DDS pixel format tests for D3DXGetImageInfoFromFileInMemory.

Lauri Kenttä (2):
      po: Update Finnish translation.
      po: Update Swedish translation.

Marcus Meissner (2):
      strmbase: Use correct *ppv (Coverity).
      dmusic: Remove useless NULL check (Coverity).

Michael Stefaniuc (7):
      d3drm: Remove leftover return statement (Smatch).
      mmdevapi: Remove superfluous NULL pointer check before HeapFree (Smatch).
      strmbase: Remove break after return (Smatch).
      oleaut32/tests: Compare the correct variants.
      gdi32/tests: Fix typo (comparison with itself).
      ntdll/tests: Avoid casting zero.
      riched20/tests: Don't cast NULL to an integer.

Nikolay Sivov (22):
      msxml3: Use expected/actual sequence concept for reader tests including attributes tests.
      msxml3: Fix end prefix iteration for SAXXMLReader40.
      msxml3: Added IMXAttributes::clear().
      msxml3: Added getIndexFromName() implementation for SAXAttributes.
      msxml3: Set namespace-prefixes on by default.
      po: Update Russian translation.
      msxml3: Use lookup table for feature names.
      msxml3: Respect 'namespaces' feature calling content handler callbacks.
      msxml3: Fix handling of feature values.
      msxml3: Make failing Locator QI a warning.
      msxml3: Support 'namespace-prefixes' feature.
      po: Update Russian translation.
      msxml3: Switch parser encoding manually when it won't be able to detect it (UTF-16 case).
      msxml3: Implement push/pop operations for contexts.
      msxml3: getPrefix() should check all pushed contexts as well.
      msxml3: Added getValueFromName() for IMXAttributes.
      msxml3: Added getName() for IMXAttributes.
      msxml3: Implement getLocalName() for IMXAttributes.
      msxml3: Implement getURI() for IMXAttributes.
      msxml3: Support disabled escaping mode for characters() callback.
      msxml3: Support disabled escaping mode when writing attribute values.
      msxml3: Query for handler interface instead of using what was passed in Variant directly.

Owen Rudge (6):
      include: Add MAPISendMailW definition and structures.
      mapi32: Add stub implementation of MAPISendMailW.
      mapistub: Forward MAPISendMailW.
      mapi32: Convert sendmail_extended_mapi to Unicode.
      mapi32: Convert message to Unicode in MAPISendMail.
      mapi32: Add support to MAPISendMailW for ANSI fallback.

Piotr Caban (16):
      msvcrt: Added support for %W and %U format in strftime.
      msvcrt: Fixed 'h' modifier handling when printing integers.
      msvcrt: Added more length modifiers in scanf function.
      msvcr90: Added _byteswap_{ushort,ulong,uint64} implementation.
      jscript: Make parsing of double more accurate.
      jscript: Added Number.toFixed implementation.
      jscript: Added Number.toExponential implementation.
      jscript: Added Number.toPrecision implementation.
      wininet: Use the same hashing function as native does.
      msvcr90: Fix byteswap_ulong implementation.
      msvcrt: Rework wcsncpy_s to work on overlapping pointers.
      jscript: Fix toExponential behavior when exponent is 0.
      make_unicode: Create tables with data needed by nameprep algorithm.
      kernel32: Added IdnToNameprepUnicode implementation.
      kernel32/tests: Added more FoldString tests.
      kernel32/tests: Added IdnToNameprepUnicode tests.

Rico Schüller (2):
      d3dx9: Use param->bytes for copying the data in ID3DXBaseEffect::SetValue().
      d3dx9/tests: Add tests for ID3DXBaseEffect::G/SetValue().

Vincent Povirk (19):
      windowscodecs: Implement JpegEncoder_Frame_SetPixelFormat.
      windowscodecs: Implement JpegEncoder_Frame_SetResolution.
      windowscodecs: Implement JpegEncoder_Frame_WritePixels.
      windowscodecs: Implement JpegEncoder_Frame_Commit.
      windowscodecs: Implement JpegEncoder_Commit.
      windowscodecs: Implement JpegEncoder_Frame_WriteSource.
      windowscodecs: Implement JpegDecoder_Frame_GetResolution.
      gdiplus: Add support for JPEG encoding.
      mscoree: Always call mono_thread_attach before invoking managed code.
      gdiplus: Implement accessors for graphics rendering origin.
      gdiplus: Remove FIXME on implemented function.
      gdiplus: Implement GdipSetPathGradientBlend, with tests.
      gdiplus: Implement GdipSetPathGradientLinearBlend.
      gdiplus: Implement GdipSetPathGradientSigmaBlend.
      gdiplus: Store only one surround color if all colors are the same.
      gdiplus: Return OutOfMemory when creating a path gradient with NULL points.
      gdiplus: Return OutOfMemory when creating a path gradient from a NULL path.
      gdiplus: Add basic implementation of GdipWidenPath.
      gdiplus: Implement GdipWidenPath for closed figures.

--
Alexandre Julliard
julliard@winehq.org
