The Wine development release 1.5.15 is now available.

What's new in this release (see below for details):
  - Full support for layered windows.
  - New version of the Gecko engine based on Firefox 16.
  - Support for broadcast sockets used by networked games.
  - Downloaded add-ons installers are now cached.
  - Support for persistent Internet cookies.
  - String optimizations in JavaScript.
  - Various bug fixes.

The source is available from the following locations:

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

   1351  JP soft's 4DOS unimplemented int2f values
   6457  Orbiter060929 crashes, unimplemented function msvcirt.dll.??0ofstream@@QAE@PBDHH@Z
   7929  C&C 3 network does not work
  10763  Window movement in virtual desktop mode should match real Windows
  13797  wineconsole curses backend wraps cursor in cmd incorrectly
  15118  PokerTracker HUD dysfunctional (UpdateLayeredWindow per-pixel alpha, color keying not implemented)
  15359  cmd's "for" command doesn't handle /F.  Breaks msysgit, firefox build.
  15970  MuckClient introduction CHM windows are spawned incorrectly
  17730  Painkiller level E4M3 "Babel" hangs on load
  18057  cmd.exe: mishandled quoted built-in commands with parameters (programs/cmd/wcmdmain.c: has_space==1 && opt_s==0)
  18171  Quickbooks update checker hangs during download
  19583  The Football Superstars updater endlessly loops attempting to update
  19623  BITS background transfer job size is always unknown
  20161  cmd can't handle echo commands containing quotes and redirection
  21131  cmd /c echo "&" returns 'Echo is ON', not '"&"'
  21132  'cmd echo on' sometimes fails
  21198  Heroes of Might and Magic V hangs during start-up
  21927  cmd /c "dir " fails
  22315  Notification tray icons using solid rather than transparent background colors
  22715  specviewperf10: run_all.bat fails to invoke second test
  22934  Portal from Steam - recommended texture detail low
  23694  EVE Online: Random "Unhandled page fault" during game play
  24464  UpdateLayeredWindow() generates WM_SIZE when it should not, and other non-matching behavior
  24709  black shadow when running Tencent QQ and Thunder
  25202  Wine should use pkg-config --libs freetype2 instead of freetype-config --libs
  25588  TYPE and MORE integrated commands ignore charset
  25888  assert failure playing mp3 file in Super Mario Bros. X
  25901  Incorrect command line parsing in cmd
  26222  Heroes of Might and Magic V low frame rate
  26315  "Fatal Error" while launching Paintball 2
  26528  June 2010 directx sdk: cannot change installation component options
  26810  Two joysticks reported instead of one
  27001  Cloning Clyde hangs with a black screen on start
  27109  msvcp60.dll.??0Init@ios_base@std@@QAE@XZ needed by Creative Centrale, QQDownload, Adobe Premiere Pro and others
  27129  Eve Online Randomly Crashes with unhandled page fault on read access.
  27357  EVE online: client unresponsive with stack overflow in terminal output
  27654  Sound fails after level start in System Shock 2
  27940  Quicktime 7.6.9: crashes on run
  28213  IE7/IE8 x64 installation doesn't complete (cmd.exe builtin copy command asks for overwrite despite being invoked through "cmd.exe /c")
  28311  WCMD_for /R needs to handle supplied root
  29110  Avast! Free Antivirus crashes on each boot due to unimplemented function ntoskrnl.exe.PsImpersonateClient
  29355  Multiple apps need IXMLDOMDocument::save() to preserve/output XML declaration (Lexware 2012 product installers, ...)
  29392  Multiple apps need msvcp90.dll.??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z (Juggernaut MMORPG, MS Office Communicator 2007 R2 Trial, Cmake, Elsterformular)
  29547  NightSky needs msvcp60.dll.??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z
  29648  avs2yuv.exe fails to load avisynth.dll (msvcp60.?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ)
  29957  Silverlight 4 does not install (Microsoft PlayReady DRM scheme requires FILE_PERSISTENT_ACLS if returned filesystem type is NTFS)
  30305  noscript-tag is not working correctly anymore
  30345  EVE-Online Launcher crashes during patching
  30507  Lexware Buchhalter 2012 complains on startup about missing 'arial' font (native gdiplus works around without having 'arial' installed)
  30603  GTA2 crashes on starup
  30617  Assassin's Creed 2 and Revelations look in wrong place for saved games?
  31056  .NET Framework 3.x/4.x WPF Media Integration Layer deadlocks between ui and render thread when calling SetPixelFormat
  31083  FTABCISSetup.exe needs unimplemented function msvcp60.dll.??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z
  31301  ThunderMini deadlock at start with builtin msvcr71
  31368  XMP (Xunlei Kankan player ) crash with builtin msvcp71
  31381  Temple of Evil - full screen mode "fail", results in a "borderless window" with wrong dimensions
  31411  Divinity II: The Dragon Knight Saga needs msvcp90.dll.??0strstreambuf@std@@QAE@PBDH@Z (purist)
  31460  Listview LVS_EX_GRIDLINES paints thick gridlines in lists with >3855 items
  31485  Adobe After Effects CS5 x64 won't start due to unimplemented function
  31506  quartz video window isn't fullscreen in fullscreen apps
  31520  Graphic Problem on Grandia II
  31536  Toad: Installer throws a gdiplus exception
  31589  Netflix on Firefox fails with DRM error when loading bar is at 98%
  31658  SlingPlayer 1.5 crashes when stopping stream
  31696  iexplore, SunSpider JavaScript benchmarks is really slow
  31710  Regression Error - OpenGL display blanked out with grey rectangle
  31713  MiniThuder crash with unimplemented msvcp71.dll.?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@I_W@Z
  31747  Colobot demo crashes when changing rendering settings
  31754  Full-page Silverlight 5.x on Firefox fails to render on top of browser elements
  31760  Access 2010 (Design-view) Combobox activation causes Runtime error + total crash.
  31791  Cedar Logic crashes when you press F1
  31805  dmime:performance tests shows lots of unitialized values in dmusic
  31823  LTSpice: chm help file viewer broken
  31824  Add correct detection of GeForce GT 650M card
  31825  AutoCAD 2009: Fonts aren't visible at installation
  31830  Transcendence hangs with a blank screen on startup
  31832  Cannot close wine desktop via Alt+F4 when a game is running
  31854  Wizard101 launcher slow to load and then freezes for 30 seconds or more
  31861  Steam needs unimplemented function ADVAPI32.dll.StopTraceA when wine is set to vista or win7
  31865  Bits of the wow launcher disappear when hovering it
  31871  Photoshop CS5 fails to run
  31879  Aquanox: black screen in virtual desktop mode
  31886  Weird winedbg behaviour when issuing a command
  31900  Pokemon World No sound because of stubbed MediaControl_RenderFile
  31909  Copistar needs Win32_NetworkAdapter WMI class 'AdapterType' property
  31916  Steam in xfce: xfwm4 windows refuse to relinquish focus

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

Changes since 1.5.14:

Alexandre Julliard (50):
      user32: Always flush window surfaces in PeekMessage, even with PM_NOYIELD.
      Mark all lexers as never-interactive.
      user32: Create a dummy window surface for windows that shouldn't be painted to.
      user32: Default to the dummy surface if the driver doesn't provide something else.
      user32: Call the SetWindowStyle driver entry point before updating the window position.
      user32: Also call set_window_pos when the WS_EX_LAYERED bit is changed.
      user32: Invalid DCEs when the window surface changes.
      user32: Add a driver entry point for UpdateLayeredWindow.
      winex11: Don't put window manager decorations on layered windows.
      winex11: Add support for per-window visuals.
      winex11: Switch to an ARGB visual for layered windows with per-pixel alpha.
      winex11: Take the alpha channel into account to compute the region of layered windows.
      winex11: Use ARGB layered windows for system tray icons when supported.
      winex11: Refuse to set the pixel format for HWND_MESSAGE windows.
      user32: Don't redraw anything when WS_VISIBLE is toggled manually.
      ntoskrnl.exe: Add missing WINAPIs.
      winex11: Pass the source drawable to the FLUSH_GL_DRAWABLE escape.
      winex11: Move the FLUSH_GL_DRAWABLE implementation to the main ExtEscape routine.
      winex11: Get rid of the OpenGL GDI driver.
      winex11: Allow changing the pixel format of a window from a different thread.
      winex11: Copy the existing surface bits when a dirty rectangle is specified in UpdateLayeredWindow.
      winex11: Fix a typo in the surface region computation with an alpha channel.
      winex11: Don't try to change the window visual if we don't have a valid ARGB visual.
      winex11: Split copy_image_bits into a couple of helper functions.
      winex11: Maintain a separate copy of the surface image bits when we need byte swapping.
      Revert "winex11: Remove some leftover X Shm code."
      winex11: Use the XShm extension to copy window surfaces.
      winex11: Add a helper function to get a pixel format index.
      user32: Add a Wine-specific entry point to set the pixel format of a window.
      winex11: Hold a reference to the surface in UpdateLayeredWindow.
      winedbg: Mark the lexer as always interactive to prevent some shortcuts.
      user32: Don't use SWP_SHOWWINDOW when the WS_VISIBLE style was already toggled manually.
      user32: Add a helper function to update the window visible state.
      user32: Store the pixel format in the window structure.
      server: Add flags in the set_window_pos request to inform the server about the window surface.
      server: Add a request to compute the clipping region of a window surface.
      server: Add a heuristic to avoid computing surface regions when no pixel format has been set.
      user32: Add support for setting the window surface visible region.
      user32: Don't use the window surface when the pixel format was set.
      winex11: Create a surface even for OpenGL windows, to allow painting the non-client area.
      winex11: Recreate the GL drawable when changing the window parent.
      gdi32: Return the full DIB height in GetImage instead of clipping to the visible rect.
      gdi32: Limit the allocation size to the useful data when converting DIB bits.
      gdi32: Use BI_BITFIELDS to indicate that a 32-bpp DIB doesn't have an alpha channel.
      gdi32: Handle a missing source alpha directly in the blend_rect primitive instead of modifying the source data.
      winex11: Don't return an alpha channel for DIBs read from the screen.
      setupapi: Fix buffer overflow in load_fake_dll.
      gdi32: Add helper functions for converting between handle and index.
      ntdll/tests: Fix some test failures on Windows.
      ole32/tests: Fix a test failure on newer Windows versions.

Alistair Leslie-Hughes (5):
      scrrun: Correct Invoke parameter.
      include: Add threading attribute to MSDAINITIALIZE.
      oledb32: Add support for IDBInitialize interface in IDataInitialize.
      oledb32: Add IDBProperties support in IDBInitialize.
      include: dbs.idl: Add missing defines.

Andrew Eikum (2):
      vbscript: Undefined variables resolve as EMPTY without Option Explicit.
      dsound: Don't exit early in mixer thread.

André Hentschel (17):
      winedbg: Improve and add branch operators for Thumb2 disassembler.
      winedbg: Add special register processing operators to Thumb2 disassembler.
      winedbg: Add hint operators to Thumb2 disassembler.
      winedbg: Add control operators to Thumb2 disassembler.
      inetcpl.cpl: Reuse Internet icon.
      winedbg: Add Coprocessor data operators for Thumb2 disassembler.
      winedbg: Add enhanced Coprocessor move operators to Thumb2 disassembler.
      winedbg: Add Coprocessor data transfer operators for Thumb2 disassembler.
      winedbg: Reorder disassembler functions to match instruction table order.
      winedbg: Add preload operators for Thumb2 disassembler.
      winedbg: Add load non-word operators to Thumb2 disassembler.
      winedbg: Simplify Coprocessor operators in the Thumb2 disassembler.
      winedbg: Adjust copyright to avoid confusions.
      winemaker: Always use parent project for project files.
      winemaker: Include the target specific dll path when linking.
      winetest: Report actual number of failures in the statusbar.
      include: Update EXTENDED_NAME_FORMAT enumeration.

Aric Stewart (5):
      imm32: Have IMM class use DefWindowProc.
      imm32: Explicitly handle all WM_IME_XXX messages in the IME class.
      imm32: Remove unused parameter to IMM_RegisterIMEClass.
      imm32: Unregister IME class on process detach.
      msctf: Uninitialize context prior to releasing it.

Bruno Jesus (2):
      ws2_32: Fix TRACE format in WS_getsockname.
      ws2_32: Fix some style issues.

Christian Costa (21):
      ntoskrnl.exe: Add stub for MmUnlockPages.
      ntoskrnl.exe: Add stub for MmProbeAndLockPages.
      ntoskrnl.exe: Add stub for MmMapLockedPagesSpecifyCache.
      ntoskrnl.exe: Add TRACEs to IoCreateDriver and IoDelete driver.
      ntdll: Init retv to FALSE so in case of exception the trace shows the failure.
      ntoskrnl.exe: Add stub for IoAcquireCancelSpinLock and IoReleaseCancelSpinLock.
      scsiport.sys: Add stub implementation of scsiport.sys.
      ntoskrnl.exe: Implement IoAllocateMdl.
      ntoskrnl.exe: Add stub for PsImpersonateClient.
      ntoskrnl.exe: Add stub for ExCreateCallback.
      ntoskrnl.exe: Don't try to copy back data in buffered mode when we don't expect any in process_ioctl.
      advapi32: Add stub for StopTraceA and StopTraceW.
      quartz: Forward IMediaControl_RenderFile to IFilterGraph2_RenderFile.
      quartz: Fill right RECT structure in SetDefaultTargetRec.
      ntoskrnl.exe: Add MDL flags definitions.
      quartz: Use target rect if set otherwise default to source rect in VideoRenderer_AutoShowWindow.
      quartz: Don't say we have a menu to AdjustWindowRectEx since the created window doesn't have one.
      amstream: Display new ref in AddRef and Release.
      amstream: Check filename pointer in IAMMultiMediaStreamImpl_OpenFile.
      amstream: Render source file in IAMMultiMediaStreamImpl_OpenFile.
      quartz: Remove redundant traces.

Dan Kegel (6):
      vcomp: Better stub for omp_get_num_threads.
      vcomp: Better stub for omp_set_num_threads.
      vcomp: Better stub for omp_get_max_threads.
      vcomp: Better stubs for omp_get_dynamic, omp_set_dynamic.
      vcomp: Better stubs for omp_get_nested, omp_set_nested.
      vcomp: Better stub for omp_get_thread_num.

Daniel Jelinski (2):
      comctl32: Use GetWindowLong to check for scrollbar.
      comctl32: Clean up listview resizing code.

Daniel Lehman (11):
      msvcrt: Add declaration for _sc[w]printf to header.
      msvcp90: Change basic_ios<wchar_t>::imbue to match char version.
      msvcp90: Flip fclose result check in filebuf<>::close.
      msvcp90: Fix cxx exception information for 64-bit.
      msvcp90: Fix export for fstream<wchar_t> ctor.
      msvcp: Flip fclose result check in filebuf<>::close.
      msvcp90: Initialize state in mb_to_wc.
      msvcp90: Copy facetvec element pointer in copy ctor.
      msvcp90: Fix parsing in num_get<>::_Getifld.
      msvcp90: In codecvt<wchar_t>::do_out, copy local buffer to *to_next.
      gdi32: Use HandleToULong inline function to convert handle to index instead of casting.

Dmitry Timoshkov (10):
      ieframe: Recognize the CGID_ShellDocView command group.
      gdiplus: Add a font transformation test.
      gdiplus: Detect broken GdipMeasureCharacterRanges behaviour before performing the font height scaling test.
      gdiplus: Workaround missing support for true floating point regions in Wine gdiplus by using a scaling world transform.
      gdiplus: Stop adding 1/6 of EM height to the created font height.
      gdiplus: Add more font transformation tests.
      gdiplus: Use IFD_SHORT type for the TIFF compression tag to avoid test failures under some XP versions.
      gdiplus: Clarify where extra Y margin added by GdipMeasureString comes from.
      gdiplus: Clarify where extra Y margin added by GdipMeasureString comes from.
      gdiplus: Add a test for GdipMeasureDriverString called with not NULL matrix.

Erich Hoover (9):
      ws2_32: Permit broadcast packets on interface-bound sockets for systems with IP_BOUND_IF.
      ws2_32: Permit broadcast packets on interface-bound sockets for systems with IP_UNICAST_IF and SO_ATTACH_FILTER.
      hhctrl.ocx: Store all the parameters the first time the WinType is filled in.
      hhctrl.ocx: Fix removing a window from the help list when window creation fails.
      hhctrl.ocx: Recognize the embedded window name for finding existing windows.
      hhctrl.ocx: Add support for specifying window names with HH_HELP_CONTEXT.
      setupapi: Report the correct target file with SPFILENOTIFY_FILEEXTRACTED.
      setupapi: Close the target file before issuing SPFILENOTIFY_FILEEXTRACTED.
      ws2_32: Silence error when binding to loopback adapter.

Francois Gouget (19):
      jscript: Make regexp_match() static.
      include: Fix a typo in the declaration of PCUZZTSTR.
      gdi32: Make dibdrv_wgl{Describe,Set}PixelFormat() static.
      shlwapi: Implement PathCreateFromUrlAlloc().
      Assorted spelling fixes.
      shell32/tests: Improve the shell_execute{_ex}() tracing.
      oledb32/tests: Make test_database() static.
      shell32/tests: Some more type consistency fixes for the ShellExecute() return value checks.
      shell32/tests: Simplify shlexec's test_argify() and test_lpFile_parsed() and avoid numeric literals.
      shell32/tests: Write proper tests for CommandLineToArgvW().
      shell32/tests: Add more ShellExecute() shortcut tests.
      shell32/tests: Merge shlexec's test_exes_long() with the other parameter passing tests.
      shell32/tests: Greatly expand the test_argify() tests.
      shell32/tests: Fix test_one_cmdline() and add a few more tests.
      shell32: Simplify CommandLineToArgvW() a bit.
      shell32: Fix CommandLineToArgvW()'s handling of the executable path and consecutive quotes.
      shell32: Don't expand environment variables in ShellExecute()'s parameters argument.
      shell32/tests: Simplify shlexec's test_directory() and add some more tests.
      shell32: Fix ShellExecute()'s handling of file URLs.

Frédéric Delanoy (2):
      cmd/tests: Move command line tests to separate file.
      cmd/tests: Add tests for command line parsing.

Hans Leidekker (17):
      wbemprox: Store a copy of the table name.
      wbemprox: Remove dynamic tables from the global list when they're freed.
      wbemprox: Add a partial implementation of Win32_CDROMDrive.
      wbemprox: Add a partial implementation of Win32_DiskDrive.
      wbemprox: Add a partial implementation of Win32_SoundDevice.
      wbemprox: Implement Win32_Processor.UniqueId.
      wbemprox: Implement Win32_NetworkAdapter.Manufacturer.
      wbemprox: Handle NULL operands in eval_strcmp.
      wbemprox: Implement Win32_NetworkAdapter.AdapterType.
      wbemprox: Add reference counting to the table structure.
      wbemprox: Add support for uncommitted instances in IWbemClassObject::Get.
      wbemprox: Add support for array types.
      wbemprox: Implement Win32_LogicalDisk.Name.
      wbemprox: Always convert from BSTR.
      wbemprox: Support overriding the CIM to VARIANT type mapping for method parameters.
      wbemprox: Implement class methods StdRegProv.EnumKey and StdRegProv.EnumValues.
      wbemprox: Add tests for the standard registry provider.

Henri Verbeet (45):
      d3d10: Implement d3d10_effect_depth_stencil_variable_GetDepthStencilState().
      d3d10: Implement d3d10_effect_rasterizer_variable_GetRasterizerState().
      wined3d: Just return the surface from wined3d_device_get_render_target().
      wined3d: Just return the surface from wined3d_device_get_depth_stencil().
      ddraw: Properly release the ddraw reference when the last interface is released in ddraw_surface_release_iface().
      d3d10core: Implement d3d10_device_RSSetState().
      d3d10core: Implement d3d10_device_RSGetState().
      wined3d: wined3d_device_set_depth_stencil() never fails.
      wined3d: wined3d_device_get_creation_parameters() never fails.
      wined3d: Recognize the SM4 dcl_constantBuffer opcode.
      d3d10core: Implement d3d10_device_OMSetDepthStencilState().
      d3d10core: Implement d3d10_device_OMGetDepthStencilState().
      wined3d: Just return the surface from wined3d_device_get_surface_from_dc().
      wined3d: wined3d_swapchain_set_window() never fails.
      wined3d: Handle WINED3DSPR_CONSTBUFFER registers in the GLSL shader backend.
      d3d10core: Implement d3d10_device_OMSetBlendState().
      d3d10core: Implement d3d10_device_OMGetBlendState().
      wined3d: Just return the surface from wined3d_swapchain_get_back_buffer().
      wined3d: wined3d_swapchain_get_desc() never fails.
      winex11: Don't send SC_RESTORE when a maximized window switches to fullscreen.
      d3d10: Handle rasterizer state in d3d10_effect_object_apply().
      d3d10: Handle depth stencil state in d3d10_effect_object_apply().
      wined3d: wined3d_stateblock_capture() never fails.
      wined3d: wined3d_stateblock_apply() never fails.
      wined3d: Implement WINED3DSIH_AND in the GLSL shader backend.
      d3d10: Handle blend state in d3d10_effect_object_apply().
      d3d10: Implement d3d10_effect_sampler_variable_GetSampler().
      wined3d: wined3d_surface_set_palette() never fails.
      wined3d: Fix the SM3 int and bool vs constant limits.
      wined3d: Remove unused wined3d_shader_limits fields.
      wined3d: Implement WINED3DSIH_BREAKP in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_DIV in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_IADD in the GLSL shader backend.
      wined3d: Implement SM4 loops in the GLSL shader backend.
      wined3d: Implement SM4 WINED3DSIH_SINCOS in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_XOR in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_EQ in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_GE in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_IGE in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_LT in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_FTOI in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_ITOF in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_UTOF in the GLSL shader backend.
      wined3d: Implement WINED3DSIH_IMUL in the GLSL shader backend.
      wined3d: Add support for SM4 relative addressing.

Huw Davies (2):
      gdi32: Correctly map the 256-level bitmap to the 5, 17 and 65-level bitmaps.
      user32: If the value doesn't exist under the volatile key fallback to the permanent key.

Jacek Caban (41):
      vbscript: Added Left() implementation.
      vbscript: Added Right() implementation.
      vbscript: Added Trim() implementation.
      vbscript: Added LTrim() implementation.
      vbscript: Added RTrim implementation.
      mshtml: Store nsIDOMNodeSelector in HTMLDocumentNode.
      mshtml: Moved getElementById implementation to separated function.
      mshtml: Defer event script evaluation.
      mshtml: Simplify get_node_obj.
      mshtml: Store information if script was already parsed in script element object.
      mshtml: Added support for script 'for' and 'event' attributes.
      mshtml: Added script 'for' and 'event' attributes tests.
      mshtml: Added support for binding ActiveX events with script event attribute.
      mshtml: Added ActiveX event binding test.
      jscript: Removed useless return statement in jsval_number.
      jscript: Added ParseProcedureText tests.
      jscript: Added support for pstrFormalParams argument in ParseProcedureText.
      mshtml: Use proper type for parse_proc.
      widl: Alloc big enough buffer in dup_basename to handle registration suffix.
      widl: Fixed fwrite error handling.
      vbscript: Added CStr implementation.
      mshtml: Return dispinterface from PHEventSink::QueryInterface.
      services: Fixed memory leak.
      appwiz.cpl: Cache downloaded addon MSI files.
      mshtml: Wine Gecko 1.8 release.
      mshtml: Added noscript tag handling tests.
      mshtml: Get rid of no longer needed workarounds for async ActiveX loading.
      mshtml: Added more ActiveX loading and script binding tests.
      vbscript: Fixed tests on some non-English configs (without '.' as decimal point).
      jscript: Use custom string container instead of BSTR.
      jscript: Store regexp source as jsstr_t.
      jscript: Use jsstr_t for compiler constant strings.
      jscript: Get rid of BSTR in date.c.
      mshtml: Don't run noscript tests in enhanced security configuration.
      mshtml: Added IHTMLStyleElement::get_styleSheet imeplementation.
      mshtml: Moved creating HTML element to separated function.
      mshtml: Create script element in IHTMLDocument::createStyleSheet.
      mshtml: Added createStyleSheet and get_styleSheet tests.
      mshtml: Added IHTMLIFrameElement3::get_contentDocument implementation.
      jscript: Removed SysFreeString calls missed in previous patch.
      mshtml.idl: Added IHTMLLinkElement* declarations.

Jason Edmeades (7):
      cmd: Convert wcmd_for to use WCMD_parameter.
      cmd: Add full for /R support.
      cmd: Fix setlocal/endlocal implementation.
      cmd: Ensure current directory saved during cmd /c.
      cmd: cmd.exe /c or /k should suppress copy overwrite prompts.
      cmd: Fix basic cmd.exe /c "echo hello" type syntax.
      cmd: Change command line parsing away from argv/argc.

Jörg Höhle (6):
      mciseq: Fix memory leak when MCI_OPEN fails.
      mciseq: Separate player loop from MCI_PLAY command.
      mciseq: Play returns MCIERR_OUTOFRANGE as required.
      mciseq: Create player thread in the synchronous case too.
      mciseq: Send MCI_PLAY notifications like w2k-w7 do.
      mciseq: Map MMSYSERR_* to MCIERR_* error codes.

Lucas Zawacki (2):
      dinput/tests: Test for DIPROP_INSTANCENAME and DIPROP_GUIDANDPATH.
      dinput: Implement DIPROP_INSTANCENAME for joystick.

Marcus Meissner (12):
      oleaut2: Pass up errors on typelib writeout (Coverity).
      wined3d: Move texture reference decrement to end of usage (Coverity).
      mshtml: Removed duplicate condition (Coverity).
      shell32: Check return value of SHGetSpecialFolderPathW (Coverity).
      dsound: Skip unknown sizes in tests (Coverity).
      advapi32: Free wstr in error case to avoid leak (Coverity).
      advapi32: Avoid memory leak on pipe read failure (Coverity).
      server: Removed duplicate close of acceptfd (Coverity).
      advapi32: Removed a double free issue on loop termination (Coverity).
      winetest: Close filehandle on run error (Coverity).
      crypt32: Initialize bytesNeeded (Coverity).
      regedit: FIXME() on printing.

Matteo Bruni (10):
      wined3d: Recognize Radeon HD 6970 as reported on some Macs.
      d3d8: Use proper helper.
      d3dcompiler: Fix "for" syntax.
      d3dcompiler/tests: Fix access to the test output for y > 0.
      d3dcompiler: Don't raise a warning for an uninitialized uniform.
      d3dcompiler: Avoid "naked" vars in record dereferences.
      d3dcompiler: Add a trace to D3DAssemble.
      d3dcompiler: Allow multiple input/output modifiers.
      d3dcompiler: Properly support function overloads.
      d3dcompiler: Add some checks to function definitions.

Michael Stefaniuc (2):
      imaadp32.acm: Don't bother using the register storage class specifier.
      msrle32: Don't bother using the register storage class specifier.

Nikolay Sivov (22):
      mlang: Move CodePageToCodePages() to IMLangFontLink2 and forward to it.
      mlang: Move GetCharCodePages() to IMLangFontLink2 and forward to it.
      mlang: Move GetStrCodePages() to IMLangFontLink2 and forward to it.
      mlang: Rename IMultiLanguage3 method implementation functions to match interface name.
      dwrite: Stub for IDWriteRenderingParams.
      dwrite: Store render params properties and implement accessing methods.
      dwrite: Stub for CreateMonitorRenderingParams().
      dwrite: Forward CreateRenderingParams() to CreateMonitorRenderingParams() with primary monitor.
      mshtml: Implement IHTMLFrameBase_put_name().
      vbscript: Support vb* constants for message box buttons.
      vbscript: Support vb* constants for message box return value.
      dwrite: Store font family name in IDWriteFontFamily implementation.
      dwrite: Added IDWriteLocalizedStrings stub.
      dwrite: Added IDWriteFontFace stub.
      dwrite: Add family name to string array.
      dwrite: Implement GetStringLength method.
      dwrite: Implement GetString().
      dwrite: Implement GetFontStretch().
      dwrite: Added IDWriteTextFormat stub implementation.
      dwrite: Use proper table field as stretch value.
      dwrite: Implement GetWeight() for IDWriteFont.
      dwrite: Store text format properties.

Nozomi Kodama (6):
      d3dx9_36: Implement D3DXSHMultiply4.
      d3dx9_36/tests: Speed up some tests.
      d3dx9_36/tests: Avoid a potential out of bound access.
      d3dx9_36/tests: Relax an equality between floats.
      d3dx9_36/tests: Remove useless casts.
      d3dx9_36: Remove useless casts.

Oleg Bosis (1):
      wined3d: Add correct detection of GeForce GT 650M video card.

Piotr Caban (31):
      wininet: Added more fields to cookie structure.
      wininet: Added support for urlcache file name generating.
      wininet: Added support for persistent cookies.
      wininet: Added basic persistent cookie tests.
      wininet: Added basic cookie domain validation in set_cookie function.
      wininet: Make cookies functions thread-safe.
      cryptnet: Fixed cache functions usage in CRYPT_CacheURL function.
      wininet: Correctly set headers size in CommitUrlCacheEntryW function.
      wininet: Fixed failing test.
      msvcp90: Removed no longer needed exports.
      msvcp90: Fixed io classes cleaning.
      msvcp90: Added ios_base::Init class implementation.
      msvcp90: Added _Winit class implementation.
      msvcp60: Sync exceptions implementations.
      msvcp60: Copy source files from msvcp90.
      msvcp60: Handle differences in basic_string::c_str function behavior on empty strings.
      msvcp60: Fixed vtables in IO classes.
      msvcp60: Fixed ctype class vtable.
      msvcp60: Added __Fiopen implementation.
      msvcp60: Added basic_filebuf::open implementation.
      msvcp60: Added basic_ifstream::open implementation.
      msvcp60: Added basic_ofstream::open implementation.
      msvcp60: Added basic_fstream::open implementation.
      msvcp60: Added basic_ifstream constructors implementation.
      msvcp60: Added basic_ofstream constructors implementation.
      msvcp60: Added basic_fstream constructors implementation.
      msvcp60: Added basic_istream::seekg implementation.
      msvcp71: Added basic_string functions that work on iterators.
      msvcp60: Added missing 64-bit exports.
      msvcp: Sync implementations.
      msvcrt: Fixed exception information on 64-bit systems.

Qian Hong (1):
      findstr: Added stub exe.

Rico Schüller (1):
      d3dx9: Fix D3DXMatrixAffineTransformation() and add some tests.

Roman Dadkov (1):
      ole32: Fix dwClsContext parameter of a CoCreateInstance call in DefaultHandler_Run.

Sergey Guralnik (1):
      user32/tests: Add tests for class small icons.

Sven Baars (1):
      dmusic: Fix a copy and paste error.

Vincas Miliūnas (4):
      kernel32/tests: Added tests of FileIdBothDirectoryInfo for GetFileInformationByHandleEx.
      kernel32: Added implementation of FileIdBothDirectoryInfo for GetFileInformationByHandleEx.
      kernel32/tests: Added tests for OpenFileById.
      kernel32: Added implementation for OpenFileById.

Vincent Povirk (2):
      ole32: Stub StgConvertVariantToProperty.
      ole32: Add tests for StgConvertVariantToProperty.

Łukasz Wojniłowicz (1):
      po: Update Polish translations.

--
Alexandre Julliard
julliard@winehq.org
