The Wine development release 1.3.33 is now available.

What's new in this release (see below for details):
  - Support for text output in the DIB engine.
  - Improved support for HTTP proxies.
  - New version of the Gecko engine.
  - A number of cursor fixes.
  - Some fixes in bidirectional text layout.
  - Various bug fixes.

The source is available from the following locations:

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

   2666  Text color lost
   9916  "make test" usually fails
  10133  After successful installation, Pool of Radiance 1.4 does not start
  12705  Openal 1.1 installer license not shown
  12917  Finale 2008 (& Notepad) curly braces and ties not drawn correctly
  13364  Firefox 3 rc1 displays ROS Explorer FAQ poorly [dogfood]
  13932  Colobot DEMO does not render properly
  14320  School Tycoon has so much 'lag' that it becomes unplayable
  14988  Strange rendering in Colin McRae 2005
  16616  Wine's D3DXOF rises an out of memory
  16691  Parkan2 crashes on start
  17487  Stage Studio displays a black screen
  18016  Sub Culture: Software rendered version crashes right away
  18158  Approach thinks Samba Read Only databases are in a foreign language
  18353  Twelve Sky 2 page faults on start
  19709  FeedDemon cannot sync feeds
  19725  image rendering problem in basic application
  21212  Notepad fonts do not display correctly after re-opening program, when using NatSpeak
  21271  python's test_socket test hangs
  21878  Sonic R produces a blank screen in Direct3D mode
  22413  Cursor flickers/is sluggish
  22744  Incoming: missing textures, blocky characters
  23429  Airport Tycoon 2: graphical corruption in roads and others
  23519  Microsoft Office 2007: Mini-toolbar does nothing.
  24450  Touhou 6, 7, 8 and 9 do not render text correctly.
  24655  BiDi support broken for writing Arabic
  24840  PDF Xchange Viewer 2.0.54 Showing a Critical Error When Saving the PDF file
  24856  Magic & Mayhem: Crashing on any menu item.
  24869  Worms Armageddon: Dismissing post-mission frontend dialogues after sound has finished playing causes a freeze
  25161  Warlords III demo: mouse clicks don't register in the main game
  25444  ArcaniA - Gothic 4 Demo requires msvcp90.dll.??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ
  25522  League of Legends - Typing in game chat causes freeze (1.0.0.107)
  25575  Microsoft Flight Simulator X: Deluxe Edition, doesn't like builtin msxml4
  25613  Grass rendering glitch in Stalker: Shadow of Chernobyl
  25730  xmlnode_get_nodeTypedValue need to handle node type
  25839  winedbg complains fixme:dbghelp_msc:codeview_snarf Unsupported symbol id 1113
  25850  Transparency in toolbar icons does not work (black background)
  26027  ActiveX control of cmbchina online bank has no display
  26546  Buitin IE cannot run some methods of ActiveX controls from ICBC online bank
  26548  GómezPEER is always visible behind other windows
  26597  [World of Warcraft] Wow.exe: err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0xf7703fd3
  26944  GomezPEER fails to end gozilla.exe
  27028  Touchpad mouse cursor flickers when moved, jumps back towards original position when released
  27029  Nvidia hdr sample/Winmerge crash on msvcp71.dll.??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ
  27223  Desktop Dungeons does not display properly
  27387  Lexware installers need some IXMLDOMParseError properties implemented (srcText, line, linepos)
  27442  wine iexplore won't display verify code image of ICBC
  27653  EVE Online responds with "Connection Failure: Handshake Error" on login attempt.
  27779  Desktop mouse pointer always visible in Steam games
  28019  Iexplore crash when clicking link
  28116  Heavy Gear II, sound shutters heavily and dies very fast
  28187  expand: No usage in wineconsole
  28188  icinfo: No output in wineconsole
  28217  Worms Armageddon frontend palette rapidly flickers between normal and messed up
  28321  D3D: Out of adapter memory, wrong thread problem
  28347  Severe FPS regression in Source-based games with orm=backbuffer
  28374  Libre Office 3.4.3 installer wants msvcp90.dll.??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DABV10@@Z
  28507  Gómez PEER fails to draw window
  28552  winhttp proxy doesn't work
  28562  Plastic Animation Paper 4.0 doesn't start
  28600  Gameshadow crashes into msxml3
  28607  Unhandled exception installing X-COM Collector's Edition
  28649  Some fonts render wrong in Age Of Empires III
  28701  Adobe Acrobat Pro 8 tray tool needs msvcr80.dll.freopen_s
  28885  Windows DosBox .74 no longer runs
  28928  Pulsen needs msvcp90.dll.?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z
  28958  Rayman 2 demo crashes on screen resolution change
  28974  Microsoft EMET v2.x and other tools need apphelp.dll.SdbCreateDatabase
  28975  InstallShield-based installers need apphelp.dll.ApphelpCheckInstallShieldPackage stub (YouSendIt, Nokia S60 5th Edition SDK 1.0)
  29000  Spectromancer refuses to start: 'Failed to init D3D8 object!'
  29004  Numberwise crashes when trying to log-in
  29013  Text underline height and vertical position wrong.
  29014  Internet Explorer 7 and 8 crash on startup due to unimplemented function apphelp.dll.ApphelpCheckShellObject
  29022  Texture corruption in Mass Effect and Mass Effect 2
  29039  League Of Legends game client crashes after champion selection
  29041  Star wars : The Old Republic launcher crashes due to custom cursors
  29047  regsvr32 /i scrrun.dll crashes
  29051  Internet Connection Wizard: tapi.dll - unimplemented function TAPI32.dll.tapiGetLocationInfoW
  29063  Jack the Ripper hangs with a black screen on launch (without native msvcrt.dll)
  29065  Phoenix (steam file extractor) hangs when opening
  29074  Google Chrome outer installer could not connect to the Internet
  29086  winhlp32.exe: no readable content
  29093  Posting data with winhttp fails
  29095  DiskPulse: missing text
  29106  DDO installer crashes on startup in X11DRV_SetupGCForPatBlt() with X error

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

Changes since 1.3.32:

Akihiro Sagawa (3):
      gdi32: Add a string table resource for the translation.
      gdi32: Use the translated string as a charset name.
      po: Update Japanese translation.

Alexandre Julliard (47):
      gdi32/tests: Avoid some array bounds warnings.
      shell32/tests: Avoid some array bounds warnings.
      advpack: Pass all the specified parameters to do_ocx_reg.
      gdi32: Fix positioning of font underlines and strikeouts.
      gdi32: Retrieve the brush pattern bits from the cache for metafiles.
      gdi32: Retrieve the brush pattern bits from the cache for enhanced metafiles.
      configure: Remove some no longer used variables.
      wineps: Use the brush information passed in SelectBrush for pattern brushes.
      winex11: Use the brush information passed in SelectBrush for pattern brushes.
      winex11: Implement a SelectBrush entry point in the XRender driver.
      gdi32: Return the original brush data in GetObject.
      setupapi: Add a trace for the install mode value.
      spoolss: Remove an unused variable.
      gdi32: Reselect the pattern brush on every use if it's mapped with DIB_PAL_COLORS.
      gdi32: Avoid copying the brush pattern if the format matches the DC.
      regedit: Convert dialogs to po files.
      progman: Convert dialogs to po files.
      user32/tests: Flush events before the key flags test.
      gdi32: Get rid of the get_bitmap_image helper.
      gdi32: Grab the bits directly for DIB pattern brushes instead of duplicating the bitmap.
      gdi32: Add a CopyBitmap driver entry point.
      gdi32: Implement the CopyBitmap entry point in the null driver.
      winex11: Implement the CopyBitmap entry point.
      gdi32: Use the CopyBitmap entry point to copy the bitmap of a pattern brush.
      gdi32: Don't set the bitmap owner when selecting a pattern brush.
      winex11: Don't allow setting the cursor across processes while clipping.
      winex11: Use the motion event time to decide when to update the cursor.
      winex11: Still process all MotionNotify events when using XInput2.
      winex11: Remove check for DIB color table in ExtTextOut.
      server: Cope with stdio file descriptors being closed on startup.
      wineps: Print a fixme for unhandled composite glyph scaling.
      comctl32: Add a couple of DIB helper functions for imagelists.
      comctl32: Setup the alpha channel also when reading an imagelist from a stream.
      user32/tests: Add tests for small sizes of cursor bitmaps.
      winex11: Make sure we create valid bitmaps even for a 1x1 mask.
      comctl32: Avoid losing the color masks in CreateMappedBitmap.
      winex11: Fix selecting a pattern brush into a DIB section device.
      gdi32: Don't mark a local variable static.
      taskmgr: Convert dialogs to po files.
      ieframe: Convert dialogs to po files.
      winspool: Convert dialogs to po files.
      wineps: Convert dialogs to po files.
      winedbg: Convert dialogs to po files.
      winecfg: Set the program name and version at dialog init time.
      winecfg: Convert dialogs to po files.
      comctl32/syslink: Wrap the link text on \n characters.
      wrc: Fix lookup of strings that contain a context.

Alistair Leslie-Hughes (2):
      mscoree: Move clearing of processes to Terminate.
      mscoree: Implement ICorDebug CreateProcess.

Andrew Eikum (2):
      urlmon: Improve parsing of SCHEME_MK URIs.
      dsound: Don't specify period size for the IAudioClient.

Andrew Talbot (19):
      dplayx: Remove extraneous braces from switch statement.
      inetcomm: Remove extraneous braces from switch statements.
      kernel32: Remove extraneous braces from switch statement.
      msi: Remove extraneous braces from switch statement.
      oledlg: Remove extraneous braces from switch statement.
      sane.ds: Remove extraneous braces from switch statement.
      wined3d: Remove extraneous braces from switch statements.
      msvcp90: Superfluous semicolons fix.
      secur32: Superfluous semicolons fix.
      shlwapi: Suppress sign-extension through integer promotion.
      user32: Suppress sign-extension through integer promotion.
      advapi32: Remove an unused variable.
      appwiz.cpl: Remove an unused function.
      atl: Remove an unused variable.
      cryptnet: Remove unused file-static variable.
      dinput: Qualify use of WINE_DEFAULT_DEBUG_CHANNEL.
      dinput: Remove unused Wine debug channel.
      kernel32: Remove unused file-static variables.
      mshtml: Remove unused file-static variable.

André Hentschel (13):
      ntdll: Declare debug channel only when used.
      winebuild: Add support for building on powerpc64.
      apphelp: Add stub for ApphelpCheckInstallShieldPackage.
      apphelp: Add stub for SdbCreateDatabase.
      apphelp: Add stub for ApphelpCheckMsiPackage.
      unicows: Add GetRoleTextW from oleacc.
      po: Update German translation.
      tapi32: Implement tapiGetLocationInfoW.
      ole32: Implement writing VT_CLSID properties.
      msvcrt: Implement freopen_s.
      msvcrt: Implement _wfreopen_s.
      kernel32/tests: Fix two typos.
      wininet: Improve stub message for InternetSetFilePointer.

Aric Stewart (16):
      usp10: Avoid an end of buffer overrun when seeking non space characters at an end of a BiDi string.
      usp10: Add a few chars that Windows itemizes as punctuation.
      usp10/tests: Add Kannada shaping test.
      usp10: Better handle the absorption of whitespace in bidi runs.
      usp10: Better understand and handle numbers level in RTL runs.
      usp10: Add some additional Latin script ranges.
      usp10: Break with a better understanding on the handling of bidi strengths.
      usp10: Move scripts to an array initialized once to minimize get_char_script calls.
      usp10: Merge neutral scripts.
      usp10: Pay attention to script changes for bidi run itemization.
      usp10: Devanagari danda and double danda are used for all Indic scripts.
      usp10: Properly set LayoutRTL.
      usp10: Windows 7 defines a Tibetan numeric script but never uses it.
      usp10: Keep the levels array in more cases.
      usp10: If leading with a strong character use its bidi level for our intial LayoutRTL.
      usp10: When converting common indic items use the main indic script not the Numeric or currency script, even if that was the most recent.

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

Austin English (2):
      include: Define _WIN64 on sparc/powerpc64.
      apphelp: Add a stub for ApphelpCheckShellObject.

Bernhard Loos (3):
      mountmgr, ntoskrnl: METHOD_BUFFERED uses irp->AssociatedIrp.SystemBuffer for both input and output.
      mountmgr: Also call IoCompleteRequest in case of an error.
      ntoskrnl: irp.AssociatedIrp.SystemBuffer is also used for METHOD_IN/OUT_DIRECT ioctls.

Daniel Scharrer (1):
      include: Don't use min/max in d3dx9math.inl as they might not be defined at this point.

Dmitry Timoshkov (6):
      ntdll: Use PAGE_EXECUTE_READWRITE protection when allocating stubs.
      kernel32: Add a bunch of tests for protections accepted by VirtualAlloc, make it pass under Wine.
      gdi32: Remove a duplicated line of code.
      user32: Add tests for mixed WS_CHILD | WS_POPUP window styles.
      user32: Dialog creation code should force WS_CHILD style for dialog controls.
      user32: Issue a warning when dialog control creation fails.

Eric Pouech (3):
      expand: Remove extraneous curly braces from switch statements.
      expand: No longer use Unix stdio functions, but rather the kernel32 equivalent.
      winhlp32: Fix hlpfile content decompression in phrase40 mode.

Erich Hoover (1):
      user32: Prioritize focus for dialog owner on EndDialog.

Francois Gouget (61):
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      version: Add some macros and prototypes to winver.h.
      version: Add verrsrc.h and make it so it does not need other headers to be used in resource files.
      include: Move the language and sort macros to winnt.rh.
      winealsa.drv: Delete the g_sessions_lock critical section when unloading the dll.
      winecoreaudio.drv: Give a name to the midi and mmdevapi critical sections.
      kernel32: Declare more TimerQueue functions in winbase.h.
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      dlls: Remove unneeded include directives in resource files.
      include: Add some more sublanguages and sort orders.
      include: Move the DDE_xxx macros to dde.rh.
      include: Update commctrl.rh and remove duplication with commctrl.h.
      include: Update dlgs.h.
      dsound: Unset Spare[0] before deleting non-static critical sections.
      strmbase: Unset Spare[0] before deleting non-static critical sections.
      dmloader: Remove an unused critical section.
      msvcp90: Remove an unneeded cast.
      browseui: Give a name and delete the critical sections.
      winhttp: Give a name to the critical sections.
      urlmon: Give a name to the critical sections.
      rpcrt4: Give a name to the critical sections.
      quartz/tests: Give a name to the critical sections.
      qmgr: Give a name to the critical sections.
      msvcrt: Give a name to the critical sections.
      mcicda: Give a name to the critical sections.
      inetcomm: Give a name to the critical sections and delete them when done.
      wininet: Add prototypes for a couple of mpr functions.
      crypt32: Move a couple of functions to avoid forward declarations.
      winealsa.drv: Don't unset Spare[0] when deleting static critical sections.
      winecoreaudio.drv: Don't unset Spare[0] when deleting static critical sections.
      dsound: Give a name to the critical sections, make them static and delete them when unloading the dll.
      wineoss.drv: Give a name to the mmdevapi critical sections, make them static and delete them when unloading the dll.
      winmm: Give a name to the critical sections, make them static and delete them when unloading the dll.
      scrrun: Remove an unneeded include directive in the resource file.
      secur32: Make the cs critical section static.
      wintab32: Make the csTablet critical section static.
      rpcrt4: The offset to the complex pointer's description is signed.
      rpcrt4: An interface pointer just has the size of a regular pointer.
      dxgi: Remove an unneeded refcount field.
      msvcrt: Statically initialize and name the MSVCRT_file_cs critical section.
      wininet: Give a name to the critical sections, make them static and delete them when unloading the dll.
      credui: Delete the static critical section when unloading the dll.
      dinput: Delete the static critical section when unloading the dll.
      dxgi: Delete the static critical section when unloading the dll.
      mscms: Delete the static critical section when unloading the dll.
      crypt32: Delete the oid and sip static critical sections when unloading the dll.
      ws2_32: Delete the static critical section when unloading the dll.
      mshtml: Delete the dispex and gecko static critical sections when unloading the dll.
      msi: Delete the handle static critical sections when unloading the dll.
      msvideo: Delete the static critical section when unloading the dll.
      msxml3: Delete the dispex static critical section when unloading the dll.
      ole32: Delete the compobj and rpc static critical sections when unloading the dll.
      openal32: Delete the static critical section when unloading the dll.
      pdh: Delete the static critical section when unloading the dll.
      urlmon: Delete the static critical section when unloading the dll.
      user32: Delete the static critical section when unloading the dll.
      wined3d: Delete the static critical sections when unloading the dll.
      winex11: Delete the palette and xrender static critical sections when unloading the dll.
      winspool.drv: Delete the static critical section when unloading the dll.
      rpcrt4: Delete the static critical sections when unloading the dll.
      winhttp: Delete the static critical sections when unloading the dll.

Frédéric Delanoy (11):
      po: Update French translation.
      cmd: Avoid comparison between signed and unsigned values.
      dxdiag: Avoid dead increment (clang).
      cmd: Trim whitespace in echo on/off.
      cmd: Avoid duplication of commonly used strings.
      rsaenh: Remove unused file-static variables.
      atl: Avoid harcoding array lengths.
      comctl32: Avoid hardcoding array lengths.
      ole32: Avoid hardcoding array lengths.
      wineboot: Make runkeys_names global variable static.
      cmd: Move WCMD_part_execute function to avoid forward declaration.

Hans Leidekker (15):
      scrrun: New dll.
      scrrun: Add a version resource.
      winhttp: Fix sending data with synchronous requests.
      winhttp: Use a separate function to set request parameters.
      imm32: Validate the window handle passed to ImmGetContext.
      winhttp: Convert string data to UTF-8 and add a corresponding content type header.
      scrrun: Add stub implementations of DllRegisterServer and DllUnregisterServer.
      msi: Process messages while waiting for custom actions to complete.
      msi: Trace the exit code from custom action processes.
      ws2_32: Fix handling of NULL and empty hostname in getaddrinfo/GetAddrInfoW.
      winhttp: Implement WinHttpDetectAutoProxyConfigUrl.
      winhttp: Accept a missing buffer when parsing a decoded URL.
      winhttp: Clean up properly in request_send.
      winhttp: Implement WinHttpGetIEProxyConfigForCurrentUser.
      winhttp: Implement WinHttpGetProxyForUrl.

Henri Verbeet (40):
      wined3d: Remove surface_preload from wined3d_surface_ops.
      wined3d: Remove surface_draw_overlay from wined3d_surface_ops.
      comctl32: Avoid using __FUNCTION__ in ranges_check.
      wined3d: Make the surface parameter to upload_palette() const.
      wined3d: Make the surface parameter to blit_shader.set_shader() const.
      wined3d: Only report a broken pitch in wined3d_surface_map().
      wined3d: Get rid of holdbitmap from wineD3DSurface_DIB.
      wined3d: Get rid of client_memory from wineD3DSurface_DIB.
      wined3d: Get rid of the wineD3DSurface_DIB typedef.
      wined3d: Get rid of the SAVEDSTATES typedef.
      wined3d: Don't print FIXMEs for misaligned surface maps.
      wined3d: Get rid of RTL_DISABLE.
      wined3d: Simplify context_choose_pixel_format().
      wined3d: Get rid of the WINED3DSAMPLER_TEXTURE_TYPE typedef.
      wined3d: Get rid of the COMPARISON_TYPE typedef.
      ddraw: Use wined3d_mutex_lock() / wined3d_mutex_unlock() for locking.
      wined3d: x11_copy_to_screen() shouldn't be called on mapped surfaces.
      wined3d: Introduce a "state" variable in shader_glsl_load_constants().
      wined3d: Get rid of the WINED3DSHADER_PARAM_REGISTER_TYPE typedef.
      wined3d: Get rid of the winetexturestates typedef.
      d3d10: Add the ID3D10StateBlock interface.
      d3d10: Add a stub ID3D10StateBlock implementation.
      d3d10: Implement D3D10StateBlockMaskDifference().
      wined3d: Get rid of the WINED3DSHADER_PARAM_SRCMOD_TYPE typedef.
      wined3d: Get rid of the WINED3DSHADER_PARAM_DSTMOD_TYPE typedef.
      d3d10: Implement D3D10StateBlockMaskDisableAll().
      d3d10: Implement D3D10StateBlockMaskDisableCapture().
      d3d10: Implement D3D10StateBlockMaskEnableAll().
      wined3d: Get rid of the WINED3DCOLORVALUE typedef.
      wined3d: Pass a wined3d_color struct to wined3d_device_clear().
      d3d10: Implement D3D10StateBlockMaskEnableCapture().
      d3d10: Implement D3D10StateBlockMaskGetSetting().
      d3d10: Implement D3D10StateBlockMaskIntersect().
      wined3d: Get rid of the WINED3DDISPLAYMODE typedef.
      wined3d: Get rid of the WINED3DVECTOR typedef.
      d3d10: Implement D3D10StateBlockMaskUnion().
      wined3d: Recognize the SM4 deriv_rtx opcode.
      wined3d: Recognize the SM4 deriv_rty opcode.
      ddraw: We can't render to the desktop window either.
      wined3d: Get rid of the WINED3DMATRIX typedef.

Huw Davies (12):
      gdi32: Keep track of the text pixel color.
      gdi32: Expose a solid_rects function.
      gdi32: Move the ETO_OPAQUE rectangle drawing to the dib driver.
      gdi32: Calculate the min/max color component intensities for 17 glyph levels.
      gdi32: Add draw_glyph primitives.
      gdi32: Add support for drawing text in the dib driver.
      gdi32/tests: Add tests for text rendering.
      gdi32: Add a helper to return the maximum level to use for a given anti-aliasing format.
      gdi32: Return valid anti-alias format bitmaps if the glyph is a monochrome bitmap.
      gdi32: Use an array of masks to simplify the bitmap conversion.
      gdi32: Add a helper to retrieve the octant bias.
      msxml3: Re-initialise the variant so that VariantChangeType doesn't free the user string.

Hwang YunSong (3):
      po: Updated Korean translation.
      cmdlgtst: Updated Korean translation.
      po: Updated Korean translation.

Jacek Caban (47):
      mshtml: Make nsIURL::GetParam a stub.
      mshtml: Always use IUri-based nsIRI::GetAsciiHost implementation.
      mshtml: Wine Gecko 1.4 release.
      mshtml: Store window URL as BSTR.
      mshtml: Use IUri in set_current_mon if possible and store it in window object.
      mshtml: Use IUri in use_gecko_script.
      mshtml: Fixed memory leak in nsIURL::GetDirectory implementation.
      mshtml: Use set_nsstyle_attr_var in IHTMLStyle::put_height implementation.
      mshtml: Fixed HTMLPrivateWindow_GetAddressBarUrl function name.
      mshtml: Get rid of an unused parameter in prepare_for_binding.
      mshtml: Moved QueryService(IID_IShellBrowser) call to the right place.
      urlmon: Improved IUri debug traces.
      mshtml: Improved debug traces in nsIChannel::AsyncOpen implementation.
      urlmon: Fixed some failures on IE9.
      urlmon: Fixed misc.c tests on IE9 and make image_tiff_filter behave like IE9.
      ieframe: Store ShellBrowser in DocHost instead of creating it on every QueryService call.
      ieframe: Added IDocObjectService::FireBeforeNavigate2 implementation.
      ieframe: Added IDocObjectService::FireNavigateComplete2 implementation.
      ieframe: Improved debug traces in IShellBrowser::QueryInterface.
      mshtml: Split IHTMLPrivateWindow::SuperNavigate implementation.
      mshtml: Properly handle navigation in containers supporting IWebBrowserApp.
      mshtml: Split setting window URI from set_current_mon.
      mshtml: Properly implement nsIURI::CloneIgnoreRef.
      mshtml: Properly implement nsIURI::EqualsExceptRef.
      mshtml: Properly handle fragment-only navigation.
      mshtml: Added more navigation tests.
      mshtml: Added nsIURI::GetSpecIgnoringRef implementation.
      urlmon: Fixed protocol tests on IE9.
      mshtml: Fixed script tests on IE9.
      urlmon: Get rid of create_todo_* from uri_equality struct.
      urlmon: Don't set is_opaque for file URIs in validate_components.
      mshtml: Update window URI when its binding is redirected.
      mshtml: Fixed some htmldoc.c tests on IE9.
      mshtml: Fixed events tests on IE9.
      mshtml: Added support for ActiveX objects without IQuickActivate support.
      mshtml: Reinitialize list entry in detach_plugin_host.
      mshtml: Added tests of handling ActiveX objects without IQuickActivate interface implemented.
      mshtml: Fixed remaining IE9 failures.
      mshtml: Don't mix PRBool pointers with BOOL pointers.
      mshtml: Implement nsIStandardURL interface in nsWineURI object.
      ieframe: Fixed tests on IE9.
      mshtml: Use CLEAR_CALLED instead of SET_CALLED in some places.
      jscript: Use a helper function to allocate expression structs.
      jscript: Store expression type in expression_t.
      jscript: Added minimal bytecode compiler/interpreter and use it for '===' expressions.
      jscript: Use bytecode interpreter for '!==' expressions.
      jscript: Use bytecode interpreter for logical negation expression.

Juan Lang (5):
      iphlpapi: Implement retrieving IPv4 addresses using getifaddrs, when available.
      iphlpapi: Combine #ifdef HAVE_IFADDRS_H blocks.
      iphlpapi: Remove an unmaintained comment, and update copyright.
      iphlpapi: Remove unneeded includes.
      iphlpapi: Fix enumerating IPv6 addresses.

Jörg Höhle (2):
      mmdevapi/tests: Prevent crash when device is in use.
      mmdevapi/tests: Add PCM format tests.

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

Maarten Lankhorst (1):
      ntdll: Use VALGRIND_RESIZEINPLACE_BLOCK when available.

Marcus Meissner (4):
      wmc: Increate allocated size to match \0 (Coverity).
      gdi32: Fixed loop end setting (Coverity).
      urlmon: Fixed an array overread (Coverity).
      oleaut32: Use correct variable (Coverity).

Matej Špindler (1):
      ws2_32: Test GetAddrInfo with zero port.

Matteo Bruni (6):
      wined3d: Fix post-pixelshader blending test.
      wined3d: Skip blending test on some texture formats.
      wined3d: Make a copy of gl_info for later context_destroy_gl_resources() usage.
      wined3d: Disable WINED3DFMT_B8G8R8_UNORM.
      d3d8: Remove D3DFMT_R8G8B8 special handling.
      d3d9: Remove D3DFMT_R8G8B8 special handling.

Michael Mc Donnell (3):
      d3dx9/tests: Test for D3DXMESH_VB_SHARE option.
      d3dx9/tests: Show D3DXMESH_VB_SHARE with new declaration should fail.
      d3dx9: Return error if D3DXMESH_VB_SHARE and new declaration.

Michael Stefaniuc (6):
      include: Fixup "long" numeric constants in commctrl.h.
      include: Make "long" numeric constants LP64/LLP64 proof (mmddk.h).
      include: Fixup "long" numeric constants in vfw.h.
      include: Drop "l" modifiers from numeric constants in winternl.h.
      include: Make "long" numeric constants LP64/LLP64 proof (tapi.h).
      include: Make "long" numeric constants LP64/LLP64 proof (shlwapi.h).

Nikolay Sivov (18):
      msxml3: Fix IDispatch support for IXMLDocument.
      msxml3: Support IDispatch in IXMLElement.
      msxml3: Add IDispatchEx support for IXMLDOMNamedNodeMap.
      msxml3: Fix collection index based support for IXMLDOMSelection.
      msxml3: Implement get_line() and get_linepos().
      msxml3: Implement get_srcText().
      msxml3: Some tests to show that leading spaces are not allowed for xml stream.
      msxml3: Test that IXMLHTTPRequest doesn't support IDispatchEx.
      msxml3: Move XSLPattern test data to a table.
      msxml3: Implement get_nodeTypeValue() for attributes without a type.
      msxml3: Fix getNamedItem() for qualified node names.
      msxml3: Support multiple IXMLDOMNamedNodeMap implementations.
      msxml3: Added IDispatchEx support for IXMLDOMImplementation.
      msxml3: Properly handle qualified names in getAttributeNode().
      msxml3: Properly return node prefix from get_prefix().
      msxml3: Fix get_namespaceURI().
      msxml3: Return qualified name from get_nodeName().
      msxml3: Convert test stream to single byte string.

Octavian Voicu (3):
      makefiles: Add manual dependencies also for testlist cross object.
      ddraw/tests: Fix a couple of copy-paste typos in test messages.
      ddraw: Make IDirectDrawClipperImpl_[GS]etHWnd function names consistent with SDK.

Piotr Caban (14):
      userenv: Improved CreateEnvironmentBlock implementation.
      services: Create service environment when first service is started.
      msvcr90: Added __vswprintf_l implementation.
      msvcp90: Don't define empty structure.
      msvcrt: Don't hold FILE critical section in some functions.
      msvcrt: Don't use fputc in flsbuf implementation.
      msvcr90/tests: Added nonblocking FILE functions test.
      msvcp90: Added basic_string::_Copy implementation.
      msvcp90: Added basic_string::copy implementation.
      msvcp90: Added basic_string::insert implementation.
      msvcp90: Fixed parameters number in functions returning structures.
      msvcp: Sync spec files.
      msvcp90: Forward basic_string<short> to basic_string<wchar_t>.
      msvcp: Sync spec files.

Rafał Mużyło (1):
      configure: Fix a typo.

Rico Schüller (3):
      d3dx9: Improve argument check in ID3DXBaseEffect::GetBool/Int/Float().
      d3dx9: Allow setting texture to NULL.
      d3dx9: Add count to trace in ID3DXBaseEffect::GetMatrixArray().

Stefan Dösinger (10):
      d3d9/tests: Test partial block locks.
      wined3d: YUY2 and UYVY are block based.
      d3d8/tests: Port the double unlock test to d3d8.
      d3d8/tests: Port the block lock test to d3d8.
      ddraw/tests: Add a partial block lock test.
      ddraw/tests: Add a test for YV12 partial block locks and lock offsets.
      ddraw/tests: Add a YV12 blit test.
      ddraw/tests: Mark a VMware failure broken.
      ddraw: Add more tests and fixes for SetSurfaceDesc.
      ddraw: Set correct HEL and HAL color models.

Thomas Faber (6):
      msvcrt: Fix MSVC build in exit.c and msvcrt.h.
      msvcrt: Fix MSVC build in locale.c.
      kernel32/tests: Add tests for GetDllDirectory.
      advapi32/tests: Use already existing static string instead of literal.
      advapi32/tests: Do not assume the test is called with an absolute path.
      mshtml: Fix MSVC build in htmllocation.c.

Vincent Povirk (6):
      gdiplus: Fix center point calculation in GdipAddPathPie.
      include: Add definition of IWICComponentFactory and its dependencies.
      include: Define IWICPersistStream.
      windowscodecs: Add tests for IWICMetadataReader.
      windowscodecs: Add test for CreateMetadataReaderFromContainer.
      windowscodecs: Flesh out IWICMetadataReader test.

Vitaliy Margolen (1):
      dinput: Return correct key names for num_lock and pause.

--
Alexandre Julliard
julliard@winehq.org
