This is release 0.9.26 of Wine, a free implementation of Windows on Unix.

What's new in this release:
  - Better support for Unix locale settings.
  - Improved X11 keyboard support.
  - Various MSI fixes.
  - Winecfg improvements.
  - Lots of bug fixes.

Because of lags created by using mirrors, this message may reach you
before the release is available at the public sites. The sources will
be available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.26.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.26.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/site/download

You will find documentation on

  http://www.winehq.org/site/documentation

You can also get the current source directly from the git or CVS
repositories. Check respectively http://www.winehq.org/site/git or
http://www.winehq.org/site/cvs for details.

If you fix something, please submit a patch; instructions on how to do
this can be found at http://www.winehq.org/site/sending_patches

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

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

Changes since 0.9.25:

Alex Villacís Lasso (1):
      kernel32: Restore C locale for LC_NUMERIC.

Alexander Nicolaysen Sørnes (3):
      Updated Norwegian Bokmål translations.
      regedit: Updated Norwegian Bokmål translation.
      wineconsole: Updated Norwegian Bokmål translation.

Alexandre Julliard (30):
      server: Fix list corruption caused by previous change.
      kernel32: Use LC_NUMERIC instead of LC_ALL to determine the user locale.
      ntdll: Added support for reading directories using the BSD getdirentries function.
      winex11.drv: Update the X11 window position when the primary monitor origin changes.
      shell32: Don't use the short path name to delete files in SHFileOperation.
      msvcrt/tests: Clean up a temp file.
      kernel32/tests: Reserve some more memory for the environment.
      Revert "comctl32: Fix a potential regression in ImageList_ReplaceIcon()."
      user32: Renamed the user/ directory to user32.
      kernel32: Rewrote the locale matching to match more elements and to support Windows-format locale names.
      kernel32: Added the locale name entry to all locale definitions.
      kernel32: Use the appropriate Unix locale for GetLocaleInfo when a default LCID is used.
      d3d9: Include wingdi.h, not gdi.h.
      gdi32: Avoid accessing the internal palette object from dib.c.
      gdi32: Moved the system palette flags to winex11.drv.
      winex11.drv: Avoid some direct accesses to the PALETTEOBJ structure.
      winex11.drv: Abstract accesses to the palette color mapping.
      gdi32: Get rid of the palette mapping handling and leave it up to the driver.
      winex11.drv: Store the palette mapping in an X context instead of the GDI object.
      gdi32: Stop exporting GDI_GetObjPtr and GDI_ReleaseObj.
      gdi32: Get rid of the gdi.h include.
      include: Get rid of heap.h.
      include: Install adshlp.h too.
      winmm: Avoid using sizeof() in traces.
      server: Return an fd type in the get_handle_fd request.
      ntdll: Store the fd type in the cache and return it in server_get_unix_fd.
      ntdll: Don't bother with async I/O on regular files.
      winecfg: Don't try to load the arts driver, the arts library is too buggy.
      comctl32: Remove invalid NULL check.
      ntdll: Setting the needs_close flag in server_get_unix_fd got lost in the previous change.

Andrew Talbot (23):
      qcap: Cast-qual warnings fix.
      quartz: Cast-qual warnings fix.
      rpcrt4: Cast-qual warnings fix.
      rpcrt4: Cast-qual warnings fix.
      advapi32: Constify a parameter.
      rsaenh: Cast-qual warning fix.
      secur32: Cast-qual warning fix.
      setupapi: Cast-qual warning fix.
      shell32: Cast-qual warnings fix.
      shell32: Cast-qual warnings fix.
      shlwapi: Cast-qual warnings fix.
      shlwapi: Cast-qual warnings fix.
      urlmon: Cast-qual warnings fix.
      user32: Cast-qual warnings fix.
      user32: Cast-qual warnings fix.
      user32: Cast-qual warnings fix.
      user32: Cast-qual warnings fix.
      wininet: Cast-qual warnings fix.
      winmm: Cast-qual warnings fix.
      winmm: Cast-qual warnings fix.
      winspool.drv: Cast-qual warning fix + make function static.
      ws2_32: Cast-qual warnings fix.
      winmm/wineoss: Cast-qual warning fix.

Andrey Turkin (11):
      alt: Host component implementation: IOleClientSite.
      atl: Implement AtlAxAttachControl.
      atl: Host component implementation: IOleContainer.
      atl: Host component implementation: IOleInPlaceSiteWindowless.
      atl: Host component implementation: IOleInPlaceFrame.
      atl: Host component implementation: IOleControlSite.
      atl: AtlAxGetHost and AtlAxGetControl implementation.
      atl: Fix incorrect prototypes.
      atl: Implement AtlModuleLoadTypeLib.
      atl: Implement AtlRegisterLoadTypeLib.
      atl: Implement AtlModuleRegisterServer.

Byeong-Sik Jeon (1):
      user32: Update the edit control when the IME composition string is emptied.

Christoph Frick (1):
      dinput: Simplify the code that finds the offset of the given linux event.

Clinton Stimpson (1):
      riched20: Fix key handling in dialogs.

Detlef Riekenberg (8):
      localspl: Implement ConfigurePort.
      localspl: Replace number with a defined value (static buffer size).
      localspl/tests: Add test for ConfigurePortW.
      shell32: Fix a function name in a comment.
      kernel32/tests: Load tests on Win9x again (VirtualAllocEx+VirtualFreeEx).
      kernel32/tests: Avoid crash on Win95 (GetLongPathNameW).
      localspl: Implement DeletePort.
      localspl/tests: Add test for DeletePort.

Dmitry Timoshkov (8):
      ntdll: Alphabetically sort the Makefile entries.
      user: Set DDE errors in some failing cases.
      user: Use DDE critical section exclusively for instance list protection.
      kernel32: Add a basic PE loader test.
      user32: Add some optional messages to the button message test.
      user32: Add support for DdeEnableCallback(EC_DISABLE) command.
      user32: Add a rudimentary WM_SETFONT message test for the static control, make it pass under Wine.
      user32: Restore the len == 0 check which got lost in a previous patch.

Eric Pouech (1):
      ntdll: Fixed returned status for NtQueryThreadInformation's ThreadDescriptorTable

Francois Gouget (26):
      kernel32: Fix the 'MAP_FOLDCZONE' ok() test.
      user: Only perform the screen resolution changing tests in interactive mode.
      include/tapi.h: Add missing include directives.
      ole32/tests: Don't use the NONAMELESS* macros in the tests.
      msi: assert.h is not a local header (spotted by winapi_check).
      shell32: Fix inclusion of conditional headers (spotted by winapi_check).
      rpcrt4: Add some stub documentation headers to make winapi_check happy.
      winex11.drv: Fix some comments so they are properly formatted documentation headers.
      ole32: Standardize some documentation comments.
      Add some documentation headers to make winapi_check happy.
      Assorted spelling fixes.
      shell32: Remove unused parameters from SHELL_FindExecutableByOperation().
      comctl32/tests: Don't use the NONAMELESS* macros in the tests.
      dinput/tests: Remove unneeded NONAMELESS* macros.
      dsound/tests: Remove unneeded NONAMELESS* macros.
      mapi32/tests: Remove unneeded NONAMELESS* macros.
      shell32/tests: Don't use the NONAMELESS* macros in the tests.
      shlwapi/tests: Remove unneeded NONAMELESS* macros.
      comctl32/tests: Fix the CheckDPA() tests.
      msvcrt/tests: The tests must not include msvcrt.h because it contains declarations that may be incompatible with the PSDK headers.
      user32/tests: Remove unneeded NONAMELESS* macros.
      Replace SUBLANG_DEFAULT with the specific SUBLANG_XXX constant for languages that have multiple sublanguages.
      programs: Update the Portuguese translation (contributed by Americo Jose Melo).
      serialui: Update the Portuguese translation (contributed by Americo Jose Melo).
      comdlg32: Moved a FIXME out of the user-visible string.
      msvcrt/tests: We cannot link with _initterm() with Visual C++, so we have to load it dynamically.

H. Verbeet (10):
      winex11.drv: The y coordinate should be offset agaist the height, not the width.
      wined3d: Rename renderUpsideDown to render_offscreen.
      wined3d: Fix depth buffer formats to use actual depth textures.
      wined3d: Make the offscreen render mode a registry setting.
      wined3d: Add FBO support for offscreen rendering.
      wined3d: Allow the depth buffer to be shared between onscreen and offscreen rendering modes.
      wined3d: Fix GL_ARB_texture_cube_map extension support.
      wined3d: Support cube map FBO attachments.
      wined3d: Make sure render target textures aren't bound when we start drawing.
      wined3d: Only copy the depth buffer if there is one.

Hans Leidekker (6):
      shlwapi: UrlEscapeA should fail with E_POINTER when querying the buffer size.
      setupapi: The inf section suffix that corresponds to __x86_64 is .ntamd64.
      setupapi: Implement SetupGetSourceFileLocation{A,W}.
      setupapi: Implement SetupGetSourceInfo{A,W}.
      setupapi: Implement SetupGetTargetPath{A,W}.
      setupapi: Add tests for SetupGet{SourceFileLocation, SourceInfo, TargetPath}.

Huw Davies (10):
      msxml3: Add a guard around DOMNodeType just like in the PSDK, so that we can include version 2 and version 3 msxml headers simultaneously.
      msxml3: Initialize the uuids that aren't in libuuid.
      msxml3: Add the CLSID_DOMDocument define in msxml2.idl to match the PSDK.
      msxml3: Support both v 2.x and 3.0 version independent clsids as well as the v 3.0 version dependent clsid.
      ole32: CoRegisterMessageFilter shouldn't crash on an uninitialized apartment.
      msxml3: Implement createProcessingInstruction with a stub PI object.
      msxml3: Implement createElement.
      comctl32: Set the result to IDOK on 'Finish'.
      ole32: CoGetInterfaceAndReleaseStream shouldn't crash when passed a NULL stream.
      ole32: Spelling fixes.

Hwang YunSong(황윤성) (2):
      shdoclc: Updated Korean resource.
      winecfg: Update Korean resource.

Jacek Caban (16):
      shdoclc: Added shdoclc.dll.
      mshtml: Remove menus that are in shdoclc.dll.
      mshtml: Added IDM_INDENT and IDM_OUTDENT implementation.
      mshtml: Added IDM_HORIZONTALLINE implementation.
      mshtml: Added IDM_UNORDERLIST implementation.
      mshtml: Added IDM_ORDERLIST implementation.
      mshtml: Added border implementation.
      mshtml: Added get_style implementation.
      mshtml: Store nsIDOMCSSStyleDeclaration in HTMLStyle.
      mshtml: Added put_fontFamily implementation.
      mshtml: Added put_backgroundColor implementation.
      mshtml: Added put_fontSize implementation.
      mshtml: Added semi-stub createStyleSheet implementation.
      mshtml: Remove nscstring and nscwstring typedefs.
      mshtml: Added missing break.
      mshtml: Added Exec(IDM_FONTSIZE) implementation.

James Hawkins (3):
      msi: Fix a heap corruption bug by resizing the src string before adding to it.
      msi: Notify the external UI handler when changing media.
      kernel32: Replace magic numbers with descriptive defines.

Jesse Allen (3):
      msvcrt: Free correct buffer in pf_vsnprintf.
      msvcrt: Estimate required buffer size better in pf_vsnprintf.
      msvcrt: printf buffer overrun tests.

Kai Blin (1):
      secur32: Fix handling of ISC_REQ* flags in InitializeSecurityContext.

Ken Thomases (7):
      winex11.drv: Reset the keyc2vkey table to empty before rebuilding it.
      winex11.drv: Track which vkeys have already been assigned to keycodes.
      winex11.drv: Replace no-longer-existent VK_A, VK_Z, VK_0, and VK_9 constants.
      winex11.drv: Move some dead code from inside a loop to just after the loop.
      winex11.drv: Changed indenting of some dead code.
      winex11.drv: Enable code for picking layout-independent vkey as second pass.
      winex11.drv: Correct the count of characters matching with layout.

Kevin Koltzau (3):
      winnt.h: Add defines for new DLL characteristics.
      winnt.h: Add AMD64 relocation types.
      winedump: Print new DLL characteristics.

Kirill K. Smirnov (3):
      winhelp: Do not create popup window if file not found.
      winhelp: Fix WINHELP_DeleteWindow.
      winhelp: Use path of parent helpfile while looking for popup window.

Kovács András (1):
      mshtml: HTMLElementCollection_item implementation.

Louis Lenders (3):
      shell32: Define a few more icon resources.
      msvcrt: Add _fstat64 and _stat64 to msvcrt.spec.
      wine.inf: Add setupapi to fake dlls.

Marcus Meissner (5):
      kernel32: Added missing shift by 8.
      ntdll: Converted bitmask into TRUE/FALSE.
      shell32: Pass number of wide chars, not bytes as last argument to MBtoWC().
      kernel32/tests: Test -1 length for NULL ptr too.
      oleaut32: Protect against integer overflow in SysAllocStringLen.

Markus Amsler (14):
      d3d8: Back buffer is identical to the render target, test it only once.
      d3d8: Test refcount forwarding.
      d3d8: Test AddRef with refcount==0.
      d3d8: Show that the implicit surfaces are not freed if refcount reaches 0.
      d3d9: Forward port d3d8 refcount tests.
      d3d: Remove AddRef from IWineD3DDevice_GetDirect3D.
      d3d: Remove AddRef from IWineD3DDevice_GetBackBuffer.
      d3d: Remove AddRef from IWineD3DDevice_GetRenderTarget.
      d3d: Remove AddRef from IWineD3DDevice_GetDepthStencilSurface.
      d3d: Remove AddRef from IWineD3DDevice_GetTexture.
      d3d: Remove AddRef from IWineD3DDevice_GetStreamSource.
      d3d: Remove AddRef from IWineD3DDevice_GetIndices.
      d3d: Remove AddRef from IWineD3DDevice_GetSwapChain.
      d3d: Fix partially applied patch: Remove AddRef from GetDirect3D.

Matthew Kehrer (1):
      mshtml: Add basic support for ITimer interface.

Michael Stefaniuc (4):
      dsound: Fix the declaration/definition of DSOUND_timer().
      dsound: Win64 printf format warning fixes.
      winmm/tests: Fix the parameters of LPTIMECALLBACK functions.
      winmm/tests: Win64 printf format warning fixes.

Mike McCormack (43):
      msi: Clean upstore_binary_to_temp.
      msi: Fix an uninitialized variable in the test cases.
      msi: Fail if we can't write out a temporary file.
      msi: Track temp files as soon as they are created.
      msi: Fix error handling.
      msi: Only free a string in one place.
      kernel32: Print a FIXME only once.
      user32: Print a fixme only once.
      comctl32: When removing an image, move the remaining images one forward, not one backwards.
      comctl32: Fix a potential regression in ImageList_ReplaceIcon().
      comctl32: Remove a redundant variable.
      msi: Print a message if we fail to delete a file.
      msi: Always delete temp files after creating them.
      msi: Remove track_tempfile()'s unused 2nd parameter.
      msi: Defer package deletion until after the database is closed.
      msi: Delete the tempfile created by GetTempFileName.
      msi: Split MSI_CreatePackage into two functions.
      kernel32: Downgrade a FIXME to a WARN.
      oleaut32: Remove incorrect references to malloc.
      msi: Remove some redundant else statements.
      msi: Add a test showing which tables are special.
      msi: Add a test showing the _Properties table is a bit strange.
      msi: Remove a level of indent in resolve_folder().
      msi: Remove unnecessary includes.
      msi: Fix a memory leak in load_folder().
      msi: Don't leak row handles.
      msi: Fix some memory leaks.
      msi: Clean up parameters of msi_media_get_disk_info().
      msi: Add another test for the SourceDir property.
      msi: Spelling fixes.
      msi: Split msi_set_sourcedir_props into a separate function.
      msi: Fix an access after freeing memory.
      msi: Create a function to free control data.
      msi: Don't access the list of controls after the dialog is destroyed.
      msi: Add a test for formatting records with strings.
      msi: Test MsiRecordGetString on an integer record fields with a NULL output buffer.
      msi: Fix use of integer fields in MsiFormatRecord.
      riched20: Simplify an array size calculation.
      msi: Remove an unused parameter.
      msi: Split process_action_return_value into two different functions.
      msi: Only wait for custom actions that don't have msidbCustomActionTypeContinue specified.
      msi: Load all folders in one query, rather one per query.
      msi: Treat the SourceDir folder the same as TargetDir.

Paul Vriens (10):
      msi: Fix typo's (Coverity).
      rsaenh: Move type-check before len-check (Coverity).
      comdlg32: Remove unused variable (Coverity).
      comctl32: Remove deadcode (Coverity).
      ntdll: Remove tests that crash on XP and W2K3.
      ntdll: Remove unused variables.
      ntdll: Remove tests that crash on XP and W2K3.
      ntdll: Use intended variable.
      ntdll: Remove unused variables.
      advpack: Remove test that crashes on systems with IE7.

Rob Shearman (13):
      rpcrt4: Fix a comment and move a WARN to where it really indicates a problem, rather than falsely triggering on normal conditions.
      rpcrt4: Convert the server interfaces list into a standard Wine list.
      rpcrt4: Implement RpcServerUnregisterIf.
      ole32: Re-enable the code that unregisters interfaces with the RPC runtime.
      include: Fix a typo in the SecInvalidateHandle macro in sspi.h.
      include: Add wincred.h header file.
      rpcrt4: Add a FIXME for unsupported client protocol sequences.
      rpcrt4: Fix a crash in RPCRT4_OpenBinding that can occur if
      rpcrt4: Add support for signing, verifying, encrypting and decrypting RPC packets.
      rpcrt4: Use SecInvalidateHandle and SecIsValidHandle for handling RpcConnection::ctx instead of setting/comparing the field to 0.
      include: Add security QOS flags to winbase.h.
      rpcrt4: Allow applications to specify authentication levels other than connect in RpcBindingSetAuthInfoA/W.
      rpcrt4: RPC_C_AUTHN_LEVEL_NONE and RPC_C_AUTHN_LEVEL_DEFAULT are

Roderick Colenbrander (1):
      wgl: Fix a typo in the pbuffer pixelformat enumeration code.

Sam Dennis (1):
      msvcrt: Use the custom vsnprintf implementation for msvcrt.vsprintf too.

Stefan Dösinger (1):
      wined3d: Fix a comment.

Vitaliy Margolen (6):
      winecfg: Allow editing of broken drive links.
      winecfg: Move controls on "Desktop Integration" tab to make more room for the next patch.
      winecfg: Add ability to change colors and non-client sizes.
      winecfg: Update Russian translation.
      winecfg: Remove some old dead code and associated language resources.
      winemenubuilder: Use 'start.exe' to launch non .exe files.

--
Alexandre Julliard
julliard@winehq.org
