The Wine development release 1.3.34 is now available.

What's new in this release (see below for details):
  - Bytecode support in JavaScript.
  - Support for gradients in the DIB engine.
  - A number of Uniscribe improvements.
  - Fixes for DirectDraw mode switching.
  - A few more MSVC runtime functions.
  - Various bug fixes.

The source is available from the following locations:

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

   2361  Background music plays fast in The Typing of The Dead
   3023  Orcad - "Place Part" never tries to put down a part
   8066  Page fault when starting 9 Dragons
   8322  TaskCoach failed to view Menu bar and right click menu (user32.MENU_GetBitmapItemSize handles HBMMENU_CALLBACK case incorrectly)
  10771  Dialogs broken in Origin7/7.5/8, msxml needs to support ISupportErrorInfo?
  12116  Multiple MSI-based installers fail to advance progress bar in InstallFiles action (schedule_install_files already moves and clamps to max value + MSI integer overflow)
  12346  Installation second cd
  15146  Touhou 10, 11 dialogue text transparent, difficult to read
  15594  photosynth client won't present login dialog without native msxml3
  18554  Regedit import fails
  21456  Mathematica 4.0 crash
  22711  Dungeon Keeper 2: X11 cursor is not hidden in-game
  24610  Touhou games: no text in dialogue boxes
  24677  ARM call_stack_handlers not implemented
  24748  Dangerous Waters: crashes when loading 688i platform
  25143  EiskaltDC++ fails to run
  25345  iexplore loads https pages very slow
  25492  Office Pro 2010 Trial: Word, Excel, and Powerpoint cannot open or save files
  25515  Microsoft Word 2003 crashes (or freezes) printing Document with OTF
  26588  A Farewell to Dragons: water has incorrect textures
  26824  Anomaly: Warzone Earth Demo crashes on start
  27014  exo from xfce4 causes "Failed to execute default Web Browser" error in gnome
  27181  Very slow performance in Word 2007
  27816  GoToMyPC: launch/download now fails
  27835  Freespace 1 hangs on startup with a blank screen
  27869  Wile using OSSv4, any application under wine (even winecfg when testing sound) rises vmix to maximum volume.
  28256  Nook for PC (BNDReader.exe) wants msvcr90.dll.asctime_s
  28447  Can't select lookup field by mouse in application with DevExpress components
  28539  Ground Control hangs on exit
  28541  Unimplemented function msvcp90.dll.??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z
  28686  Unimplemented function msvcp90.dll.?rfind@?$basic_string@DU? $char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z
  28785  Unimplemented function msvcp90.dll.?rfind@?$basic_string@_WU? $char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z
  28867  Elona works not fast enough
  28941  Internet Explorer 3.02 crashes on viewing file types
  28981  powerpc build broken in gdi32/tests/generated.c, tons of "error: size of unnamed array is negative"
  28983  Guildwars: no sound
  29090  Winamp needs msvcr90.dll.__vswprintf_l
  29097  Worms Armageddon produces a black screen on boot when used with OpenGL DDraw renderer (GDI works fine)
  29108  Avast! Free Antivirus crashes on startup due to unimplemented function rpcrt4.dll.RpcEpRegisterNoReplaceW
  29109  Avast! Free Antivirus crashes on each boot due to unimplemented function ntoskrnl.exe.ExInitializePagedLookasideList
  29112  Builtin IE only display a blank page when  opening https://mybank.icbc.com.cn
  29113  Builtin iexplore crashes clicking at https://mybank.icbc.com.cn/icbc/enperbank/index.jsp
  29132  Hardwar 2.04 crashes before reaching the main menu
  29135  Sound completely broken on Mac OS X in games
  29141  Uru crashes on startup
  29145  Perfect Dark doesn't bind port
  29164  Swap buffers in GetAcceptExSockaddrs (WS2_async_accept).
  29173  Unimplemented function netapi32.dll.NetUseGetInfo
  29190  Dangerous Waters: Crash when ending a mission
  29192  VT Trader crashes
  29202  installing BioEdit doesn't create directories
  29214  Clones crashes on startup with built-in dinput8.dll
  29223  Avast! Free Antivirus shows black rectangles in place of gradients

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

Changes since 1.3.33:

Akihiro Sagawa (3):
      msvcrt: Use given locale info in _mbtowcs_l.
      msvcrt: Fix wctob in C locale.
      msvcrt: Add validity checks for _mbstrlen_l.

Alex Henrie (6):
      po: Update Catalan translation.
      appwiz.cpl: Add Catalan translation.
      comctl32: Update Catalan translation.
      shell32: Update Catalan translation.
      wineconsole: Widen label to accomodate translations.
      po: Update Catalan translation.

Alexander Morozov (2):
      crypt32/tests: Add some tests for CryptDecodeObjectEx without CRYPT_DECODE_ALLOC_FLAG.
      crypt32: Initialize a pointer for dynamic data.

Alexandre Julliard (60):
      comctl32: Take the total bitmap size into account when reading a bottom-up image list.
      comctl32: Avoid accessing imagelist internals.
      comctl32: Merge imagelist definitions into the C file.
      gdi32: Add a null driver fallback implementation for non-antialiased text output.
      gdi32: Add a helper function to determine anti-aliasing flags.
      gdi32: Add support for anti-aliasing in the null driver text output fallback.
      winex11: Get rid of the non-Xrender client-side font rendering.
      winex11: Don't allocate the glyph cache without Xrender, and cleanup initialization.
      winecfg: Remove some untranslatable labels.
      gdi32: Use reallocs when growing a path instead of doing it by hand.
      gdi32: Add helper functions for allocating and freeing paths.
      gdi32: Return the region directly from PATH_PathToRegion.
      gdi32: Return a new path from PATH_FlattenPath instead of replacing the DC path.
      gdi32: Return a new path from PATH_WidenPath instead of replacing the DC path.
      gdi32: Store a pointer to the path in the DC and make the path structure opaque.
      gphoto2: Convert dialogs to po files.
      sane: Convert dialogs to po files.
      browseui: Convert dialogs to po files.
      browseui: Make sure that common controls are loaded before creating the dialog.
      shlwapi: Convert dialogs to po files.
      kernel32/tests: Avoid size_t in traces.
      msxml3: Don't return REFIID to avoid compiler warnings.
      makefiles: Build tags from all the source files.
      user32: Don't allow activating a WS_CHILD top-level window through SetFocus.
      gdi32: Only store the path in the DC when it's closed.
      gdi32: Get rid of the no longer needed path states.
      gdi32: Get rid of the GdiPath typedef.
      gdi32: Get rid of the Hungarian line noise in the gdi_path structure.
      gdi32: Specify an initial allocation size for paths to avoid some reallocations.
      windowscodecs/tests: Avoid size_t in a trace.
      localui: Convert dialogs to po files.
      credui: Convert dialogs to po files.
      mpr: Convert dialogs to po files.
      avifil32: Convert dialogs to po files.
      msacm32: Convert dialogs to po files.
      wineps: Don't crash on missing loca OTF table.
      winedbg: Use proper links in the crash dialog.
      gdi32: Implement rectangular gradients in the DIB engine.
      gdi32: Implement 16-bpp gradient dithering.
      gdi32: Implement 8-bpp and 4-bpp gradient dithering.
      gdi32: Don't set gradient alpha channel for 8888 bitmaps created with bitfields.
      gdi32/tests: Add tests for rectangular gradients in DIBs.
      ole32: Process all pending messages in CoWaitForMultipleHandles before waiting again, otherwise we may not wake up.
      gdi32: Use the DIB engine and PutImage for the null driver rectangular gradient implementation.
      winex11: Implement rectangular gradients using straight X11 calls.
      winex11: Implement rectangular gradients using XRender if supported.
      user32: Use the correct alpha for the title bar gradient and simplify the mesh.
      uxtheme: Use the correct alpha for theme gradients.
      serialui: Convert dialogs to po files.
      msvfw32: Convert dialogs to po files.
      mshtml: Convert dialogs to po files.
      dinput: Convert dialogs to po files.
      setupapi: Convert dialogs to po files.
      wininet: Convert dialogs to po files.
      oledlg: Convert dialogs to po files.
      appwiz.cpl: Convert dialogs to po files.
      comctl32: Fix text wrapping in syslink when an item starts in the middle of a line.
      appwiz.cpl: Make the Gecko URL a proper link.
      gdi32: Add some parameter checks in GdiGradientFill.
      winex11: Always ignore alpha channel with XRender gradients.

Andrew Eikum (4):
      winecoreaudio.drv: Fix latency calculation.
      winecoreaudio.drv: Make driver sample accurate.
      wineoss.drv: Remove volume setting support.
      wineoss.drv: Add period to latency calculation.

Andrew Talbot (1):
      widl: Avoid right-shift of negative values.

André Hentschel (18):
      winemaker: Respect more spaces when splitting the options.
      winemaker: Remove some unused variables.
      winemaker: Be less picky when detecting the target type.
      winemaker: Add support for compiling static libraries.
      po: Update German translation.
      winemaker: Also detect static libraries when scanning directories.
      po: Update German translation.
      po: Update German translation.
      configure: Add checks for sparc64 and powerpc64.
      ntdll: Move a return out of a #ifdef.
      msvcrt: Implement asctime_s.
      msvcrt: Implement _wasctime_s.
      rpcrt4: Implement RpcEpRegisterNoReplaceA.
      rpcrt4: Implement RpcEpRegisterNoReplaceW.
      po: Update German translation.
      winebuild: Fill the delay slot on Sparc.
      po: Update German translation.
      ntoskrnl: Add a stub for ExInitializePagedLookasideList.

Andy Clayton (1):
      wininet: Avoid calling HTTP_ReceiveRequestData before reading headers.

Aric Stewart (16):
      usp10: In Arabic only fallback to presentation form B for isolated glyphs.
      usp10: Improve handling for ZWJ and ZWNJ in itemization.
      usp10: Some unicode code points will force us into bidi mode.
      usp10: Add a facility to mark itemization test elements as broken.
      usp10: Handle Combining Diacritical Marks.
      usp10: Windows breaks punctuation into 2 different script types.
      usp10: Itemize numbers outside of the basic ascii set in a seperate script.
      usp10: Cache the script with the feature so that in caches with multiple scripts we do not fetch the wrong feature from the cache.
      usp10: Turn off dlig feature for hebrew. It is not used by default.
      usp10: Standard features are only ccmp and locl.
      usp10: Apply lookups in order over the whole range of glyphs instead of individually to each glyph.
      usp10: Always apply features in logical order.
      usp10: Handle the Gurmukhi addak.
      usp10: Phags-Pa wants the calt feature enabled.
      usp10: More properly handle the glyph properties on glyphs added by multiple substitutions.
      usp10: Handle Thai SARA AM differently than GDEF.

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

Austin English (1):
      netapi32: Add a stub for NetUseGetInfo.

Bernhard Loos (1):
      winedevice: A driver path can also start with \systemroot\.

Bruno Jesus (4):
      regedit: Allow binary files to be imported.
      ws2_32: Invert SIOCATMARK logic.
      ws2_32: Fix function GetAcceptExSockaddrs.
      ws2_32: Remove duplicated code.

Dmitry Timoshkov (7):
      kernel32: Add a test to see how a page protection changes after write.
      kernel32: Add a test to show that Windows changes the WRITECOPY to WRITE protection on an image section write.
      kernel32: Add a test for main module image section protections.
      ntdll: Change the virtual memory test to accept both READWRITE and WRITECOPY protections.
      ntdll: Revert 33b0f0edffa0c8a06b4ee8831c92fdc373f83ece.
      kernel32: Add a test for protections accepted by CreateFileMapping, make it pass under Wine.
      kernel32: Add a bunch of VirtualProtect tests on a memory-mapped file.

Eric Pouech (2):
      msvcrt: Implemented _ultow_s.
      cmd: Correctly parse program name when launching external processes.

Francois Gouget (28):
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      windowscodecs/tests: Fix compilation on systems that don't support nameless unions.
      include: Move macros to winuser.rh and include it from winuser.h to avoid duplication.
      winefile: Make it possible to translate the disk size units.
      cryptui: Fix a string resource so its format placeholders can be reordered.
      taskkill: Fix the string resources so their format placeholders can be reordered.
      comdlg32: Fix a couple of string resources so their format placeholders can be reordered.
      oleview: Fix a string resource so its format placeholders can be reordered.
      ipconfig: Fix the string resources so their format placeholders can be reordered.
      setupapi: Fix a string resource so its format placeholders can be reordered.
      dxdiagn: Fix a string resource so its format placeholders can be reordered.
      dinput: Remove an unused and untranslatable listview label.
      inetcpl: Remove a couple of unused and untranslatable listview and trackbar labels.
      gphoto2.ds: Remove an unused and untranslatable listview label.
      taskmgr: Fix a string resource so its format placeholders can be reordered.
      notepad: Fix a string resource so its format placeholders can be reordered.
      include: Update winuser.rh.
      cmd: Use WCMD_output_asis*() for strings that are not supposed to contain formating directives.
      Assorted spelling fixes and wording tweaks.
      cmd/tests: Treat lines that start with '---' as resynchronization points.
      cmd/tests: Standardize the batch file section headers.
      cmd/tests: Tweak subsection headers so they are treated as resynchronization points.
      cmd/tests: Use resynchronization points to better deal with two IF statements tests.
      cmd: Print error messages on stderr, not on stdout.
      libwine: Include a couple of extra system headers to fix the compilation on Solaris.
      netapi32: Fix the compilation on Solaris by including errno.h instead of sys/errno.h.
      secur32: Fix the compilation on Solaris by including errno.h instead of sys/errno.h.
      winspool: Fix the compilation on Solaris by including errno.h instead of sys/errno.h.

Frédéric Delanoy (26):
      ntdll/tests: Avoid harcoding array lengths.
      oleaut32: Avoid harcoding array lengths.
      shell32: Avoid harcoding array lengths.
      shlwapi: Avoid harcoding array lengths.
      cmd: Move builtins list to builtins.c.
      comctl32: Avoid hardcoding array lengths.
      krnl386.exe16: Avoid hardcoding array lengths.
      mountmgr.sys: Avoid hardcoding array lengths.
      po: Update French translation.
      msvcrt: Avoid hardcoding array lengths.
      oleaut32: Avoid hardcoding array lengths.
      shell32: Avoid hardcoding array lengths.
      cmd: Avoid dead assignment (clang).
      po: Update French translation.
      winefile: Avoid uninitialized field in SYSTEMTIME structure (Coverity).
      winebuild: Avoid dead code in BuildCallFrom16Core (Coverity).
      cmd: Remove an unused global variable.
      cmd: Use boolean types for boolean variables.
      cmd: Reduce the scope of a global variable.
      cmd: Rename unicodePipes variable.
      cmd: Move a global var to the file using it.
      cmd: Move commonly used global vars declarations to header file.
      cmd: Reorder global vars declarations/definitions to improve readability.
      gameux: Remove duplicate "if" condition.
      gameux: Do not use RegCloseKey on invalid/uninitialized registry key handle (Coverity).
      msvfw32: Fix a displayed label.

Gerald Pfeifer (1):
      winex11.drv: Move a conditionally used label into the condition in X11DRV_XRender_Init.

Hans Leidekker (11):
      winhttp: Reverse the order of arguments passed to Invoke.
      winhttp: Fix a memory leak in run_script.
      winhttp: Make the standard utilities available to PAC scripts.
      msi: Perform a case insensitive match on the volume label.
      ws2_32: Pass NULL nodename on to native getaddrinfo.
      winhttp: Resolve the server name only on the first request.
      winhttp: Consistently use the allocation macros.
      winhttp: Support ICU_ESCAPE in WinHttpCrackUrl.
      winhttp: Double the handle table size on reallocation.
      msi: Split up delete_reg_key_or_value.
      msi: Resolve the target folder if necessary in msi_get_target_folder.

Henri Verbeet (50):
      wined3d: Recognize the SM4 eq opcode.
      wined3d: Recognize the SM4 ge opcode.
      wined3d: Recognize the SM4 round_ni opcode.
      wined3d: Get rid of the WINED3DLIGHT typedef.
      wined3d: Get rid of the WINED3DMATERIAL typedef.
      wined3d: Recognize the SM4 udiv opcode.
      wined3d: Recognize the SM4 ushr opcode.
      wined3d: Recognize the SM4 xor opcode.
      wined3d: Get rid of the WINED3DVIEWPORT typedef.
      wined3d: Get rid of the WINED3DGAMMARAMP typedef.
      wined3d: Remove the special case for loop and rep in shader_get_registers_used().
      wined3d: Don't return a surface for a NULL dc in wined3d_device_get_surface_from_dc().
      ddraw: Move setting ddraw->d3d_target out of ddraw_attach_d3d_device().
      wined3d: Get rid of the WINED3DLINEPATTERN typedef.
      wined3d: Get rid of the WINED3DRECTPATCH_INFO typedef.
      ddraw: Set the render target to the wined3d frontbuffer on D3D device cleanup.
      ddraw: Fail surface creation if the cooperative level isn't set yet.
      wined3d: Trace the minimum buffer map alignment in wined3d_adapter_init_gl_caps().
      wined3d: Get rid of the WINED3DTRIPATCH_INFO typedef.
      wined3d: Get rid of the WINED3DADAPTER_IDENTIFIER typedef.
      wined3d: Don't apply fixups to converted surfaces.
      wined3d: Use the correct backbuffer format in wined3d_device_reset().
      wined3d: Handle changing the backbuffer format in wined3d_device_reset().
      wined3d: Get rid of the WINED3DCLIPSTATUS typedef.
      wined3d: Get rid of the WINED3DVERTEXELEMENT typedef.
      d3d9/tests: Test the window and backbuffer dimensions after display mode changes.
      d3d8/tests: Test the window and backbuffer dimensions after display mode changes.
      ddraw/tests: Add tests for primary dimensions to test_coop_level_mode_set().
      wined3d: Get rid of the WINED3DDEVICE_CREATION_PARAMETERS typedef.
      wined3d: Store the device type only once.
      ddraw: Create the wined3d swapchain when setting the cooperative level.
      ddraw: Rename the wineD3D field in IDirectDrawImpl to wined3d.
      wined3d: Use proper texcoord masks for GLSL texm3x3spec / texm3x3vspec.
      wined3d: Get rid of WINED3DDEVINFO_BANDWIDTHTIMINGS.
      wined3d: Get rid of WINED3DDEVINFO_CACHEUTILIZATION.
      ddraw: Resize the swapchain window on mode changes in exclusive mode.
      wined3d: Add a flags parameter to wined3d_surface_create().
      ddraw: Keep the primary surface mapped at the same address for early ddraw versions.
      wined3d: Get rid of WINED3DDEVINFO_INTERFACETIMINGS.
      wined3d: Get rid of WINED3DDEVINFO_PIPELINETIMINGS.
      wined3d: Move the surface map counting code to wined3d_surface_map().
      wined3d: Introduce a separate function to determine if a surface needs a PBO.
      wined3d: Create a PBO in surface_load_location() even if SFLAG_INSYSMEM is already set.
      wined3d: Get rid of WINED3DDEVINFO_STAGETIMINGS.
      wined3d: Get rid of WINED3DDEVINFO_RESOURCEMANAGER.
      d3d9: Add some FIXMEs for d3d9ex resource sharing.
      d3d9: Implement texture creation from system memory.
      d3d9/tests: Add a test for texture creation from system memory.
      wined3d: Get rid of the WINED3DPRESENT_PARAMETERS typedef.
      wined3d: Get rid of the WINED3DRASTER_STATUS typedef.

Huw Davies (5):
      gdi32: Simplify the Bresenham line drawing.
      gdi32: Add solid_line primitives.
      gdi32: Add an option to allow pen_lines to draw a closed figure.
      gdi32: Avoid reading past the end of the indices array.
      gdi32: Add support for checking the font's gasp flags.

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

Jacek Caban (48):
      jscript: Use bytecode for binary negation implementation.
      jscript: Use bytecode for unary '+' expression.
      jscript: Added tests of unary '+' on not existent property.
      jscript: Use bytecode for '+' expression implementation.
      jscript: Use bytecode for 'in' expression implementation.
      jscript: Use bytecode for int literal implementation.
      jscript: Use bytecode for bool literal implementation.
      jscript: Use bytecode for string literal.
      jscript: Use bytecode for double literal.
      mshtml: Use IUri for IHTMLLocation::get_hostname implementation.
      mshtml: Added nsIChannel::SetContentCharset implementation.
      mshtml: Use codepage reported by http headers.
      mshtml: Added IMutable::SetMutable implementation.
      mshtml: Properly remove event listeners.
      jscript: Use bytecode for null literal.
      jscript: Use bytecode for regexp literals.
      jscript: Always use bytecode version of literal expressions.
      jscript: Use bytecode for this expression implementation.
      jscript: Use bytecode for void expression.
      jscript: Fixed memory leaks.
      jscript: Use bytecode for comma expression implementation.
      jscript: Use bytecode for '-' expression implementation.
      jscript: Use bytecode for unary '-' expression.
      jscript: Use bytecode for '==' and '!=' expression.
      urlmon: Reduce indention in are_equal_simple and move it.
      urlmon: Rename are_equal_simple to compare_uris and make it failable.
      urlmon: Make canonicalize_path_hierarchical Uri object and parse_data struct independent.
      urlmon: Properly compare file URIs.
      urlmon: Added file URIs compare tests.
      jscript: Use bytecode for logical or expression.
      jscript: Use bytecode for logical and expression.
      jscript: Use bytecode for conditional expressions.
      jscript: Use bytecode for new expression implementation.
      jscript: Added bytecode-based version of identifier expression.
      jscript: Use bytecode for '*' expression implementation.
      jscript: Use bytecode for '/' expression implementation.
      jscript: Use bytecode for modulo expression implementation.
      jscript: Use bytecode for binary or implementation.
      jscript: Use bytecode for binary xor expressions.
      jscript: Mark some functions as static.
      jscript: Use bytecode for delete on array expression implementation.
      jscript: Use bytecode for delete member expression.
      jscript: Get rid of no longer needed EXPRVAL_NAMEREF.
      mshtml: Fixed nsEventStates handling.
      jscript: Use bytecode for '<' expression implementation.
      jscript: Use bytecode for '<=' expression implementation.
      jscript: Use bytecode for '>' expression implementation.
      jscript: Use bytecode for '>=' expression implementation.

Jörg Höhle (1):
      mmdevapi: SHAREDMODE_EXCLUSIVE + EVENTCALLBACK is too ... exclusive for now.

Ken Thomases (18):
      secur32: Eliminate a dead store.
      secur32: Clean up the helper in all cases where it was allocated.
      secur32: Eliminate broken clean-up "cheat".
      gdi.exe16: Don't double-close the spool file.
      ntdll: Don't change SIGCHLD disposition; no automatic reaping of child processes.
      libport: No need to reset SIGCHLD because we're not changing it anymore.
      kernel32: No need to reset SIGCHLD because we're not changing it anymore.
      gdi.exe16: No need to reset SIGCHLD because we're not changing it anymore.
      winspool: No need to reset SIGCHLD because we're not changing it anymore.
      kernel32: Use double-fork to avoid leaving zombie processes.
      gdi.exe16: Wait for and reap print spool child process.
      winspool: Wait for and reap print spool child process.
      netapi32: Wait for and reap smbpasswd child process.
      secur32: Reap child process to avoid leaving a zombie.
      libwine: Reap child process to avoid leaving a zombie.
      libport: For spawnvp(_P_DETACH, ...), double-fork to avoid creating zombies.
      explorer: Use _P_DETACH instead of _P_NOWAIT with spawnvp() to avoid zombies.
      winemenubuilder: Use _P_DETACH instead of _P_NOWAIT with spawnvp() to avoid zombies.

Luca Bennati (3):
      po: Update Italian translation.
      po: Update Italian translation.
      po: Update Italian translation.

Marcus Meissner (5):
      winhttp: Added missing LeaveCriticalSection (Coverity).
      mshtml: Switch two checks (Coverity).
      winhttp: Check return value of CLSIDFromProgID (Coverity).
      expand: Initialize a variable (Coverity).
      d3d9: Check that surface is allocated (Coverity).

Matteo Bruni (2):
      wined3d: Update sRGB GL texture state.
      ddraw: Reorder formats in EnumTextureFormats.

Michael Stefaniuc (10):
      include: Drop "l" modifiers from numeric constants in shlguid.h.
      include: Drop some superfluous l modifiers from numeric constants.
      user32/tests: Drop superfluous function pointer casts.
      qedit/tests: Add SampleGrabber COM aggregation test.
      include: Make "long" numeric constants LP64/LLP64 proof (mapi*.h).
      include: Fix "l" numeric constants in winbase.h.
      include: Make "long" numeric constants LP64/LLP64 proof (ddeml.h).
      include: Make some more "long" numeric constants LP64/LLP64 proof.
      include: Drop unneeded l modifiers from numeric constants in rpcndr.h.
      include: DPL_NOCONFIRMATION is not a long.

Nikolay Sivov (14):
      msxml3: Added common ISupportErrorInfo implementation.
      msxml3: Fix support for IXMLDOMDocument3.
      msxml3: Forward IDispatch to IDispatchEx when supported.
      msxml3: Support IDispatchEx for IXMLDOMNodeList too.
      shell32: Avoid null pointer dereference in traces.
      msxml3: Added IDispatchEx support for SAXReader.
      msxml3: Add a couple of tests for unusual behaviour of ISupporterrorInfo.
      msxml3: Fixed ISupportErrorInfo for IXMLDOMNamedNodeMap.
      msxml3: Some refcount tests to show details of internal DOM representation.
      msxml3: Use common helper for IXMLDOMText_get_nodeValue().
      msxml3: Place nodeValue() test data in a table.
      msxml3: Fix get_namespaceURI() for document nodes.
      shlwapi: Partially implement SHRegCreateUSKeyW.
      po: Updated Russian translation.

Piotr Caban (16):
      msvcrt: Keep FILE critical section initialized after closing file.
      msvcp90: Added partial locale::_Locimp implementation.
      msvcp90: Added empty locale constructor and destructor implementation.
      msvcrt: Fix FILE critical section initialization.
      msvcp90: Added locale copy based constructors implementation.
      msvcp90: Added locale::_Addfac implementation.
      msvcp90: Added locale::name implementation.
      msvcp90: Added _Timevec class implementation.
      msvcp90: Reorganize __ASM_EXCEPTION_VTABLE macro.
      msvcp90: Added runtime_exception implementation.
      msxml3: Change parser position computation.
      include: Update winsvc.h header.
      services: Added support for SERVICE_CONFIG_PRESHUTDOWN_INFO.
      advapi32: Added support for SERVICE_CONFIG_PRESHUTDOWN_INFO.
      services: Wait for all services to terminate before exiting.
      advapi32: Send shutdown notification to services.

Rico Schüller (11):
      d3dx9: Handle a special case in ID3DXBaseEffect::GetInt().
      d3dx9: Implement ID3DXBaseEffect::SetFloat().
      d3dx9: Implement ID3DXBaseEffect::SetFloatArray().
      d3dx9: Implement ID3DXBaseEffect::SetInt().
      d3dx9: Implement ID3DXBaseEffect::SetIntArray().
      d3dx9: Implement ID3DXBaseEffect::SetBool().
      d3dx9: Implement ID3DXBaseEffect::SetBoolArray().
      d3dx9: Implement ID3DXBaseEffect::SetMatrix().
      d3dx9: Implement ID3DXBaseEffect::SetMatrixArray().
      d3dx9: Implement ID3DXBaseEffect::SetMatrixTransposeArray().
      d3dx9: Implement ID3DXBaseEffect::SetMatrixTranspose().

Ulrich Czekalla (1):
      winex11: Avoid grabbing user_section while holding X11DRV_CritSection.

Vitaliy Margolen (4):
      dinput: Stub IDirectInputJoyConfig8 interface.
      dinput: Add more parameter checking to enum devices.
      dinput: Add more error checking to IDirectInput_GetDeviceStatus.
      dinput: Fix device enumeration by DX8 device type.

--
Alexandre Julliard
julliard@winehq.org
