The Wine development release 1.3.15 is now available.

What's new in this release (see below for details):
  - Support for changing network passwords.
  - Reflection support in shader compiler.
  - Tests no longer attempt to cope with Win9x behavior.
  - A number of MSHTML and MSXML improvements.
  - Various bug fixes.

The source is available from the following locations:

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

  11965  gethostbyname requires a successful WSAStartup invocation before performing an operation
  12583  clipboard monitor is not working in PSPad
  14412  staruml can't load examples
  16551  install fails - msi_cabextract FDICopy fails
  18153  Wizard101 will not load
  18598  Source Insight: Window Title Bar does not get updated with the new file when jumping to the definition from the current file.
  19654  The "Mudokon Status Indicator" in Abe's Oddysee doesn't work correctly
  21210  Clicking on URL hyperlinks in PowerPoint 2007 results in a crash
  23734  Office 2007 installer: cannot add or remove programs after initial install
  24250  Sam and Max 304 aborts on unimplemented function msvcr80.dll.getenv_s
  24268  mono's gluezilla uses unimplemented function msvcr80._stat32
  24290  GetOpenFileName() triggers read of uninitialized variable
  24440  Second Life crashes with unimplemented function(s) from msvcr80.dll
  24553  unimplemented msvcrt.dll._wfindfirst64
  25033  Solo on Keyboard 9.0.2.1 setup fails
  25098  BrainSplode! crashes with Unimplemented function d3dx9_36.dll.D3DXCreateTextA
  25273  msvcrt/misc.ok I10_OUTPUT long double crash with winetest.exe, not make test
  25443  Unimplemented function msvcr90.dll._ftime64_s
  25618  Super Meat Boy fails to output audible sound
  25866  Mafia: City of Lost Heaven - Crash when starting Freeride Supreme Mode
  26114  gdi32/mapping tests shows a couple memory leaks in valgrind
  26133  d3dx9_36: surface and texture tests shows an invalid read under valgrind
  26174  Theme internals crash with Unimplemented function ADVAPI32.dll.EnableTraceEx
  26177  Compilation of dlls/msxml3 fails on CentOS 3
  26178  MS Word 2003 save document with embedded fonts needs t2embed.dll._TTEmbedFont@44 implemented
  26201  wineboot fails to install gecko automatically
  26228  msxml3 fails to build when libxml2 is built with +icu useflag
  26233  Dragon Age 2 demo - sound sometimes missing in EA logo movie
  26248  Pokerstars client, windows pops up just to die

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

Changes since 1.3.14:

Akihiro Sagawa (5):
      hhctrl.ocx: Use DEFAULT_GUI_FONT to show non-ansi characters properly.
      shdocvw: Add Japanese translation.
      wineconsole: Add Japanese translation.
      credui: Add Japanese translation.
      msvfw32: Add Japanese translation.

Alexander Kochetkov (1):
      gdi32: Fix scaling factors for EMR_EXTTEXTOUTW.

Alexander Scott-Johns (2):
      comctl32: Fix read of uninitialized data in LISTVIEW_GetItemExtT when LVIF_TEXT is not set (Valgrind).
      comctl32: Fix read of uninitialized data in notify_itemactivate (Valgrind).

Alexandre Goujon (1):
      ws2_32: Make gethostbyname fail if WSAStartup was not called before.

Alexandre Julliard (39):
      cabinet: Fix the remaining todo_wine tests in fdi.c.
      cabarc: Set the initial cabinet number to 0.
      kernel32: Use debugstr_a to avoid overflow with user-specified string.
      ntdll: Improve the error reporting for invalid PE file architectures.
      wine.inf: Put some fake dlls in the right place for WoW64.
      cabinet: Preserve trailing slash on directory name in Extract().
      server: Increment the usage count of the global table also when starting a local hook.
      winex11: Synchronize the mouse cursor in update_mouse_state.
      winex11: Update the window cursor at most once every 100ms if nothing changed.
      d3dx9_36: Cleanup the fixme_once handling.
      msxml3: Include the system libxml headers before the Windows headers.
      server: Make the foreground thread input per-desktop instead of global.
      server: Store the global cursor position in the server.
      server: Store the cursor clip rectangle in the server.
      server: Store the global key state in the server.
      server: Work around Mac OS not being able to set global breakpoint flags.
      winedbg: Support setting a breakpoint from a file name and line number.
      server: Fill the key state in mouse events from the server-side state.
      server: Maintain the "set since last time" bit for the global keystate.
      user32: Retrieve the key state for GetAsyncKeyState from the server.
      user32: Retrieve the current cursor position from the server.
      winex11: Pass a window handle for keyboard hardware messages too.
      server: Don't pass a thread id to send_hardware_message, determine it from the window.
      ntdll: Don't print an error when architecture is set to win64 and the app is 64-bit.
      server: Pass the original hardware input data to the server and set the message parameters on the server side.
      server: Set the message code for keyboard input on the server side.
      server: Set the message code for mouse input on the server side.
      winex11: Fetch the key state from the server when adjusting state on KeymapNotify and key events.
      user32: Export a Wine-specific function to send hardware input from the graphics driver.
      server: Invoke low-level hardware hooks directly from the server side.
      user32: Handle input injected through SendInput entirely in user32.
      winex11: Get rid of the ClipCursor and SendInput entry points.
      winex11: Merge updating the mouse state and sending the input into a single helper function.
      winex11: Convert the clipboard data list to a standard Wine list.
      winex11: Convert the clipboard format list to a standard Wine list.
      winex11: Add a debug helper for printing clipboard formats.
      winex11: Pre-register atoms for all the built-in clipboard formats.
      winex11: Always reference clipboard formats by atom instead of name.
      user32: Remove GetClipboardFormatName from the user driver interface.

Alistair Leslie-Hughes (4):
      mshtml: Add support for get/put mousemove event.
      oleaut32: Implement ITypeInfo_GetNames Stub/Proxy.
      msxml3: Add IObjectSafety support to IXMLHTTPRequest.
      mshtml: Implement IHTMLAnchorElement get/put target.

Amine Khaldi (3):
      comdlg32: Add missing break (Coverity).
      riched20: Add a missing break.
      d3dcompiler_43: Avoid an unintended fall-through.

Andrew Eikum (1):
      dsound: Also handle two-to-six-channel conversions.

Andrew Nguyen (2):
      configure: Check for additional libxml2 headers to reject inadequate libxml2 versions.
      configure: Check for a modern sched_setaffinity prototype.

André Hentschel (9):
      advapi32: Add stub for EnableTraceEx.
      odbccp32: Improve some stubs.
      msvcrt/tests: Don't test function directly when reporting errno.
      ntoskrnl.exe: Be more verbose in MmGetSystemRoutineAddress.
      msvcrt: Implement _wfindfirst64.
      msvcrt: Implement _wfindnext64.
      winex11.drv: Quiet a noisy FIXME.
      kernel32/tests: Add SetLastError() before a test (Valgrind).
      t2embed: Add stub for TTEmbedFont.

Austin English (33):
      gdi32/tests: Remove win9x hacks.
      kernel32/tests: Remove win9x hacks.
      version/tests: Remove win9x hacks.
      userenv/tests: Remove win9x hacks.
      urlmon/tests: Remove win9x hacks.
      spoolss/tests: Change skip() to win_skip().
      shell32/tests: Remove win9x hacks.
      oleaut32/tests: Remove win9x hacks.
      oleaut32/tests: Fix a couple of todo_wine's.
      msi/tests: Remove win9x hacks.
      msxml3/tests: Remove win9x hacks.
      advapi32/tests: Remove Win9x hacks.
      advpack/tests: Remove win9x hacks.
      comdlg32/tests: Remove win9x hacks.
      cryptnet/tests: Remove win9x hacks.
      comctl32/tests: Remove win9x hack.
      d3d8/tests: Remove win9x hack.
      dsound/tests: Remove win9x hack.
      fusion/tests: Remove win9x hacks.
      hlink/tests: Remove win9x hacks.
      inetmib1/tests: Add missing broken().
      kernel32/tests: Remove win9x hacks.
      mlang/tests: Remove win9x hacks.
      msi/tests: Remove win9x hacks.
      gdi32/tests: Remove win9x hacks.
      lz32/tests: Remove win9x hacks.
      riched20/tests: Remove win9x hacks.
      crypt32/tests: Remove win9x hacks.
      rpcrt4/tests: Remove win9x hacks.
      secur32/tests: Remove win9x hacks.
      setupapi/tests: Remove win9x hacks.
      ntprint/tests: Remove win9x hacks.
      shlwapi/tests: Remove win9x hacks.

Charles Davis (2):
      ntdll: Fix IOCTL_CDROM_RAW_READ on Mac OS.
      ntdll: Implement CDROM_GetInterfaceInfo() on Mac OS.

Damjan Jovanovic (1):
      winemenubuilder: FriendlyDocName isn't part of the association.

David Adam (2):
      d3dx9_36: Add a test for D3DXCreateBox.
      d3dx9_36: Implement ID3DXMesh_GetNumBytesPerVertex.

Dmitry Timoshkov (9):
      user32: Cope with failing SetForegroundWindow().
      gdi32: Add dumping of child GDI font cache.
      gdi32: Go through all hfontlist entries not just the first one when checking whether font is in the child font list.
      gdi32: Do not leak the hfont list (Valgrind).
      gdi32: Use graphics mode specified at the EMF creation time when playing EMR_EXTTEXTOUT record.
      gdi32: EnumFontFamilies should also match against fully qualified face name.
      gdi32: Add a EnumFontFamilies test to see how it handles various font faces.
      comctl32: 'clip' rect is unused in the WM_ERASEBKGND rebar class handler.
      user32: Add a test to make sure that SendInput sets a non-zero event time.

Dylan Smith (1):
      d3dx9: Add stubs for D3DXCreateText.

Erich Hoover (1):
      shdocvw: Implement IWebBrowser::ExecWB and IWebBrowser::QueryStatusWB.

Frédéric Delanoy (1):
      po: Update French translation.

Gerald Pfeifer (1):
      wpp: Add explicit casts when mixing unsigned and signed integers.

Hans Leidekker (9):
      msi: Fix a trace.
      appwiz.cpl: List 32-bit applications on 64-bit platforms.
      uninstaller: List 32-bit applications on 64-bit platforms.
      msi: A custom action dll failing to load is not a fatal error.
      netapi32: Try running the smbpasswd tool in NetUserChangePassword.
      server: Map the Unix user id to a local user SID instead of the interactive SID.
      advapi32: Use a fixed computer SID that matches local user SIDs.
      userenv: GetProfilesDirectoryW accepts a NULL buffer.
      userenv: Implement and test GetUserProfileDirectory.

Henri Verbeet (20):
      wined3d: Filter sRGB capabilities during format initialization.
      wined3d: Recognize some Northern Islands cards in select_card_ati_mesa().
      wined3d: Merge device_unload_resource() and reset_unload_resources().
      wined3d: Remove IWineD3DResource::UnLoad() from the public interface.
      wined3d: Pass const resources to some resource functions.
      wined3d: Make IWineD3DResourceImpl an independent structure.
      wined3d: Rename ATI to AMD.
      wined3d: Recognize some Nouveau renderer strings.
      wined3d: The basetexture_set_dirty() return value is never used.
      wined3d: Use basetexture_set_dirty() in some more places.
      wined3d: Standalone surfaces should never be sRGB.
      wined3d: Retrieve the surface's texture name through a function.
      wined3d: Retrieve the GL texture through a function.
      wined3d: Add support for EXT_texture_sRGB_decode.
      wined3d: Use EXT_texture_sRGB_decode to avoid sRGB texture duplication.
      wined3d: Pass gl_info to basetexture_bind().
      wined3d: Pass gl_info to surface_bind().
      ddraw: Just pass NULL as index buffer parent.
      wined3d: Remove COM from the buffer implementation.
      wined3d: Get rid of the IWineD3DBuffer typedef.

Huw Davies (4):
      oleaut32: Mask off the lsb from the vtbl offset. This is set when the user specifies an offset in ICreateTypeInfo.
      oleaut32: Fix the typelib marshaler when the vtbl has holes.
      widl: Initialise [out] only conformant arrays.
      gdi32: Remove a wayward CDECL.

Jacek Caban (39):
      include: Make some include guards compatible with MS headers.
      jscript: Added SetScriptState(SCRIPTSTATE_UNINITIALIZED) implementation.
      jscript: Added more uninitialization tests.
      wscript: Added tests.
      urlmon: Register MIME filter only for bindings testing them.
      mshtml: Added IHTMLElement4 stub implementation.
      mshtml.idl: Added DispHTMLDOMAttribute declaration.
      mshtml: Added IHTMLElement4::getAttributeNode implementation.
      mshtml: Added IDispatchEx support to HTMLDOMAttribute object.
      mshtml: Added attribute object tests.
      mshtml: Make sure we don't try to create node object for attributes.
      mshtml: Improved debug traces.
      mshtml: Added IHTMLDOMAttribute::get_nodeValue implementation.
      mshtml: Moved call_disp_func to htmlevent.c.
      mshtml: Added IHTMLStyle::[get|put]_backgroundPosition implementation.
      mshtml: Fixed buffer handling in set_nsstyle_attr.
      mshtml: Moved VARIANT to style value string conversion to separated function.
      mshtml: Reimplement IHTMLStyle::put_backgroundPositionX using background-position property.
      mshtml: Reimplement IHTMLStyle::get_backgroundPositionX using background-position property.
      mshtml: Reimplement IHTMLStyle::put_backgroundPositionY using background-position property.
      mshtml: Reimplement IHTMLStyle::get_backgroundPositionY using background-position property.
      mshtml: Added more backgroundPosition* tests.
      jscript: Fixed corner cases in parseInt implementation.
      mshtml: Fixed typos in IHTMLInputElement::value tests.
      mshtml: Store style filter in HTMLStyle object.
      mshtml: Store style object in element object.
      mshtml: Added simple filter parser to support opacity.
      mshtml: Added IHTMLFormElement::onsubmit implementation.
      mshtml: Fixed memory leak.
      mshtml: Added support for canceling default event behavior.
      mshtml: Added onsubmit and event canceling tests.
      mshtml: Added IHTMLFormElement::get_elements implementation.
      mshtml: Added IHTMLLocation::replace implementation.
      mshtml: Correctly handle NULL BSTR in VARIANT in IDispatchEx implementation.
      mshtml: Reuse attribute objects.
      mshtml: Use our IDispatchEx-based attributes implementation instead of nsIDOMAttr.
      mshtml: Added more attribute object tests.
      mshtml: Fixed use after free in HTMLElement_destructor.
      mshtml: Added support for indexed access to form elements.

Jerome Leclanche (1):
      winemenubuilder: Make sure extension-based mimetypes are always lowercase.

John Edmonds (4):
      gdi32/tests: Added tests for copying a single pixel from top down and bottom up bitmaps.
      gdi32: Fixed GetDIBits for top-down bitmaps.
      gdi32/tests: Updated tests for top-down destination bitmaps.
      gdi32: Fixes GetDIBits for top-down destination bitmaps.

Joris Huizer (1):
      userenv: GetUserProfileDirectoryW: Plug memory leak.

Juan Lang (17):
      cryptnet: Delete existing cache entries when out of date.
      wininet: Rename variables for readability.
      wininet: De-Hungarian auth cache member names.
      wininet: De-Hungarian appinfo member names.
      wininet: De-Hungarian session member names.
      wininet: De-Hungarian HTTP request member names.
      wininet/tests: Test retrieving http requests from cache.
      wininet: Use correct scheme for cache entries.
      wininet: Support setting the expired time in SetUrlCacheEntryInfo.
      wininet: Store entries in url cache with valid expiration date.
      wininet: Default to 10 minutes expiration for cache entries.
      wininet: Default to 10 minutes expiration for cache entries.
      wininet: Support the Cache-Control max-age directive for setting url cache entry expiration.
      wininet: Move creating cache file to a helper function.
      include: Add some missing definitions.
      wininet: Fix off-by-one error.
      wininet: Remove outdated comment.

Jörg Höhle (2):
      winmm: Let WideCharToMultiByte search for NUL string terminator (Valgrind).
      mciwave: Fix a leak when Open fails (valgrind).

Maarten Lankhorst (7):
      gdiplus: Implement in-memory font storage.
      gdi32: Handle BITMAP_CopyBitmap correctly for negative heights.
      mshtml: Make sure system xpcom dll gets loaded.
      ntdll: Fix time accounting in NtQuerySystemInformation.
      gdiplus: Clean up gdip_format_string.
      gdiplus: Add tests and fix GdipDrawImagePointsRect.
      gdiplus: Implement GdipAddPathString.

Marcus Meissner (19):
      wineoss.drv: Fixed incorrect sizeof() (Coverity).
      rsaenh: Fixed bad sizeof() usage (Coverity).
      kernel32: Fixed mismatched bracket (Coverity).
      cryptui: Fixed bad sizeof() (Coverity).
      dbghelp: Fixed pasted size error (Coverity).
      regedit: fgetc() gets int, not char (Coverity).
      user32: Move functional code out of assert() (Coverity).
      user32: Remove side effect code out of asserts() (Coverity).
      winedump: Remove double assignment (Coverity).
      msvcrt: Use = instead of == in test (Coverity).
      ws2_32: name is never NULL as array (Coverity).
      user32: Fixed some more side effect functions in assert() (Coverity).
      server: Avoid shadowing a global variable.
      kernel32: Avoid shadowing "status" variable.
      shdocvw: Rewrite code to make more understandable (Coverity).
      oleaut32: Local variable goes out of scope via pointer (Coverity).
      dbghelp: Local variable used out of scope (Coverity).
      msi: Pointer to out of scope local variable (Coverity).
      msvcrt: Move side effect out of assert (Coverity).

Matteo Bruni (7):
      d3dcompiler: Fix initial allocation (Valgrind).
      d3dx9: Remove a couple of spurious assignments (LLVM/Clang).
      d3dx9: Remove an unnecessary initialization (LLVM/Clang).
      d3dx9/tests: Remove spurious assignment (LLVM/Clang).
      wpp: Free strings on define deletion (Valgrind).
      wpp: Let pp_add_define take the responsibility of copying strings (Valgrind).
      d3dx9: Fix memory access for images with less than 4 bytes per pixel (Valgrind).

Michael Stefaniuc (3):
      storage.dll16: Remove unused struct declaration.
      msxml3: COM cleanup for the IDispatchEx iface.
      storage.dll16: COM cleanup in storage.c.

Nikolay Sivov (28):
      msxml3: Store document event handler for ready state notification.
      msxml3: Remove useless parts of schema cleanup helper.
      msxml3: Use helper to consistently dump variant parameters.
      msxml4: Add version info.
      msxml3: Remove forward to removeChild() method for nodes.
      msxml3: Remove appendChild() forward.
      msxml3: Remove hasChildNodes() forward.
      msxml3: Remove get_ownerDocument() forward.
      msxml3: Remove get_text() forward.
      msxml3: Remove selectNodes() forward.
      msxml3: Remove selectSingleNode() forward.
      msxml3: Remove transformNode() forward.
      msxml3: Get rid of not longer used internal IXMLDOMNode vtable.
      comctl32/comboex: Reduce variable scope.
      comctl32/datetime: Fix use of out-of-scope local buffer (Coverity).
      comctl32/rebar: Don't use local variable with the same name as function parameter (Coverity).
      comctl32/listview: Fix dead condition (Coverity).
      comctl32/ipaddress: Use array index after range check (Coverity).
      oleaut32: Fix sizeof() usage (Coverity).
      msxml3/tests: Remove broken test and parameter check.
      msxml3: Reject xmlns attribute to be added to element.
      msxml3: Always set out pointer to null on failed QueryInterface.
      msxml3: Add get_output() implementation for processor.
      msxml3: Fail on certain node types in insertBefore() for attributes, remove broken tests.
      msxml3: Link dom attribute with parent interface pointer.
      msxml3: Test insertBefore() behaviour with node relinking, simplify common test cases.
      msxml3: Remove child with parent method first before insert with insertBefore().
      msxml3: Test to show namespace definition output for children.

Paul Vriens (1):
      msi: Add a missing va_end() (Coverity).

Peter Schellenbach (1):
      oleaut32: Fixed short time & medium time named formats.

Peter Urbanec (5):
      gdi32: Fix 64-bit pointer issues when copying upside-down bitmaps.
      comctl32: Use signed indices, so that the number of parts can be set to zero.
      comctl32/tests: Enable statusbar tooltip tests.
      comctl32: Add a check for setting number of parts in the statusbar to zero.
      wintab32: Better handling of XInput initialisation errors.

Rafał Mużyło (1):
      winealsa.drv: Drop redundant calls.

Rico Schüller (28):
      d3dcompiler: Parse reflection constant buffers.
      d3dcompiler: Implement ID3D11ShaderReflection::GetConstantBufferByIndex().
      d3dcompiler: Implement ID3D11ShaderReflection::GetConstantBufferByName().
      d3dcompiler: Implement ID3D11ShaderReflectionConstantBuffer::GetDesc().
      d3dcompiler: Parse reflection variables.
      d3dcompiler: Parse reflection types.
      d3dcompiler: Implement ID3D11ShaderReflectionConstantBuffer::GetVariableByIndex().
      d3dcompiler: Implement ID3D11ShaderReflectionConstantBuffer::GetVariableByName().
      d3dcompiler: Implement ID3D11ShaderReflectionVariable::GetDesc().
      d3dcompiler: Implement ID3D11ShaderReflectionVariable::GetBuffer().
      d3dcompiler: Implement ID3D11ShaderRefleflection::GetVariableByName().
      d3dcompiler: Implement ID3D11ShaderReflectionType::GetDesc().
      d3dcompiler: Implement ID3D11ShaderReflectionVariable::GetType().
      d3dcompiler: Fix SystemValueType for pixelshader output signature.
      d3dcompiler/tests: Add reflection ps output desc test.
      d3dcompiler: Reorder section parsing to reflect the order from the shader blob.
      d3dcompiler/tests: Add constant buffer test.
      d3dcompiler/tests: Improve test_reflection_bound_resources().
      d3dcompiler: Parse member types.
      d3dcompiler: Implement ID3D11ShaderReflectionType::GetMemberTypeByIndex().
      d3dcompiler: Implement ID3D11ShaderReflectionType::GetMemberTypeByName().
      d3dcompiler: Implement ID3D11ShaderReflectionType::GetMemberTypeName().
      d3dcompiler: Use defines for shader target masks.
      d3dcompiler/tests: Add GetMemberType* tests.
      d3dcompiler: Implement ID3D11ShaderReflectionType::IsEqual().
      d3dcompiler: Move some code from header to source file.
      d3dcompiler: Add debug helper for shader variable class.
      d3dcompiler: Add debug helper for shader variable type.

Thomas Mullaly (1):
      mshtml/tests: Make IDispatch Vtbl const.

Vincent Povirk (8):
      msvcrt: Try to call CorExitProcess instead of ExitProcess on exit.
      mscoree: Overhaul of mono runtime shutdown process.
      mscoree: Always return S_FALSE from DllCanUnloadNow.
      gdiplus: Test writes with conversion and without a user buffer.
      gdiplus: Copy the bits on bitmap unlock if the write flag is set.
      gdiplus: Don't copy bits into the buffer when a bitmap is locked write-only.
      gdiplus: Copy only the area requested when (un)locking bitmaps.
      gdiplus: Implement ImageLockModeUserInputBuf.

Wolfram Sang (3):
      user32/tests: Modify proper fields instead of magic offsets.
      user32: Make DIB_GetBitmapInfo checks stricter.
      user32: Check bitmap info before it is used.

--
Alexandre Julliard
julliard@winehq.org
