The Wine development release 1.3.3 is now available.

What's new in this release (see below for details):
  - Improved support for right-to-left text.
  - Support for CMYK JPEG images.
  - Beginnings of a Game Explorer implementation.
  - Improved 64-bit support in MSI.
  - Stub inetcpl control panel applet.
  - A number of fixes to crypto support.
  - Translation updates.
  - Various bug fixes.

The source is available from the following locations:

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

   1236  Combo boxes with RTL set do not appear right aligned
   5299  d3d crash in tombraider 4
   5586  Tibia runs with garbled graphics
   6303  PowerDVD 7.0 (trial version) doesn't start
   6577  After upgrade, the demo fr-038: theta is broken
   7510  Super Copyright (free software): irresponsive gui
   8902  Personal Stock Monitor 6 standard crashes if you wiggle the main window
   9008  Combat Pillows game: crashing, needs explicit backbuffer
  10368  Corel Draw X3 Won't Install
  12051  Max Payne 2 - rendering bug, looks like wrong shadow
  12530  Psychonauts does not run due to unimplemented function d3dx9_36.dll.D3DXFilterTexture
  12648  With 16 bit display, Qtracker crashes just after it puts up GUI
  12805  Virtualbox refuses to install (dogfood)
  13297  unimplemented d3dx9_36.dll.D3DXCreateTextureFromFileA
  13406  Overlord: crash on unimplemented function d3dx9_36.dll.D3DXCompileShaderFromFileA
  13781  Lego Indiana Jones won't start
  13965  Can't change resolution in RTHDRIBL
  14054  JAZZ Hired Guns demo: characters' models aren't redered properly
  14944  Mission planning menu in Raven Shield is not drawn correctly
  16617  klsoft.de Mathematik crashes on clicking selected text
  16985  Live For Speed S2 - Patch Z10: wrong shadows drawing
  17174  Morrowind Mudcrab crash: creatures near water hit animation/location errors
  17186  Final Reality 1.01 Benchmark: Triggering ID3DDevImpl_7_GetRenderState ERRs
  17356  Starcraft Crashes while attempting to access Battle.net
  17374  Adobe Framemaker 9 crashes on startup, can't find ATL80.DLL?
  17381  CDialog does not display proper window icon when first executed.
  17446  Slideshow with MP3 breaks PowerPoint
  17447  Another slideshow with MP3 breaks PowerPoint
  17463  Attempting to compile crosstest without mingw should issue error
  17659  Greyed out toolbars in Cuneiform OCR
  17720  Pefect World MS crashes when minimized
  17847  MySQL-Front 5.1: crashes when you close application
  17932  winemp3 not play sounds correctly
  17989  Mosaic doesn't launch
  18128  Sniper Elite: Player falls through floor
  18207  Installation of the Children of the Nile demo 3 crashes
  18434  Unhandled page fault while using gecko to browser a URL
  18545  Condor: graphic errors
  18607  Perfect World can't restore window from minimizing
  18851  3DMark Vantage requires d3dx10_36.dll
  18858  D3DADAPTER_IDENTIFIER9.Description retrieved from IDirect3D9::GetAdapterIdentifier is empty for Mesa DRI Intel(R) 852GM/855GM card/driver
  19026  Can't run Myst III:Exile in Direct3D mode
  19070  hh.exe should exit immediately if not given a file to open (appinstall)
  19198  EPIM main window restricts to a handful of pixels when maximizing
  19199  EPIM showing two windows
  19298  Can't change the font size for the Opengl application.
  19443  Wine itself segfaults when running Geneforge
  19444  Netscape 6 slows down considerably after brief usage
  19545  GraFit 5 unhandled page fault on read access when saving file
  19560  Street Fighter IV : launcher crashes
  19562  Guitar Hero World Tour crashes after dinput GetProperty
  19618  X-Change 3 crashes randomly when loading a saved game or starting a new game
  19772  EverQuest 2 crashes in third-person when riding the Ykeshan bear mount.
  20306  Wine does not compile with LLVM
  20865  Steam login window jumps around the screen when moved
  21079  Manga Studio 4.0 EX does not display icons or toolbar correctly.
  21325  aclocal.m4's main prototype is incorrect
  23009  Some textures are shown dark from certain angles of view in F1 Challenge 99-02
  23125  Mass Effect 2 requires d3dx10_39.dll
  23137  dbghelp doesn't support DW_LNE_set_discriminator (gcc 4.6)
  23400  Metatrader 5 setup crashes
  23453  Worms Armageddon cannot send text in WormNET
  23582  PowerDVD 10 (trial) needs unimplemented function ws2_32.dll.WSANSPIoctl
  23618  Overloading of CPU when executing EPIM
  23660  America's Army 3 needs d3dx9_36.dll.D3DXPreprocessShader
  24059  StarCraft II patcher crashes during Patch 1.0.3 update
  24068  Crash in dbghelp (WoW)
  24170  Warhammer Dawn of war : Fails to install
  24180  crash in dnsbench.exe
  24246  Windows Live Essentials Beta installer needs kernel32.GetThreadUILanguage
  24270  kernel32/time.c tests fail due to being miscompiled by clang, but not gcc
  24272  Office 2003 & 2007 installers fail on an unexpected error
  24332  WoW: Cataclysm crashes on startup (needs GetUserDefaultLocaleName impl)
  24404  msxml3 does not compile --without-xml
  24423  directx sdk (nov 2006) fails to install
  24425  err:module:find_forwarded_export function not found for forward 'krnl386.exe16.GetProcessDword'
  24427  Firefox 4.0 beta 6: window controls are blank when the Firefox button is visible
  24441  Fix the detection of the number of CPUs for OpenBSD.

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

Changes since 1.3.2:

Alexander Morozov (5):
      crypt32: Add stub for CryptSignMessage.
      crypt32/tests: Add a test for CryptSignMessage.
      crypt32: Implement CryptSignMessage.
      crypt32: Initialize HashEncryptionAlgorithm.
      crypt32: Add a stub for CryptEncryptMessage.

Alexandre Goujon (4):
      avifil32: Fix EditStreamSetInfo wine checks.
      fusion: Improve parse_display_name.
      odbccp32: Fix SQLInstallDriverManager{,W}.
      quartz: avisplitter Fix query interface test.

Alexandre Julliard (15):
      ws2_32/tests: Fix some buffer overflows in traces.
      widl: Fix declaration order in generated headers.
      include: Move some included files outside of extern "C".
      user32: Add support for fetching window rectangles relative to various origins.
      user32: Pass the window styles to NC_GetInsideRect instead of accessing the window structure.
      user32: Use WIN_GetRectangles where possible instead of accessing the window structure.
      user32: Use WIN_GetRectangles where possible instead of mapping coordinates explicitly.
      user32: Avoid redundant server call in WIN_GetRectangles and fix the screen coordinates mapping.
      user32: Avoid direct accesses to the window structure in NC_HandleNCHitTest.
      user32: Don't try to set the WS_EX_LAYOUTRTL flag on the desktop window.
      gdi32: Mirror the returned rectangle in GetClipBox for RTL layout.
      winemp3.acm: Fix a couple of compiler warnings on Mac OS.
      ntdll/tests: Fix the image protection test on Mac OS where the image limits are only approximative.
      winebuild: Don't add extra CPU flags to stubs if they have some already.
      krnl386.exe: Remove 16 suffix on Get/SetProcessDword since there's no 32-bit version.

Alistair Leslie-Hughes (4):
      mshtml: Correct test for unknown dispID.
      msxml6: Register interfaces.
      mshtml: Correct test for another unknown dispID.
      msxml: Added support to create msxml4/6 interfaces.

Anders Jonsson (3):
      ipconfig: Update Swedish translation.
      shdocvw: Update Swedish translation.
      inetcpl.cpl: Add Swedish translation.

Andrew Nguyen (7):
      setupapi: Improve parameter validation for SetupCreateDiskSpaceListA/W.
      setupapi: Implement SetupQuerySpaceRequiredOnDriveW.
      setupapi: Improve parameter validation in SetupQuerySpaceRequiredOnDriveA/W.
      setupapi: Implement SetupDuplicateDiskSpaceListA/W.
      ipconfig: Permit the "Yes/No" strings to be localized.
      d3dx9_36: Fix D3DXCompileShader* spec file prototypes.
      msxml3: Correct the prototype of DOMDocument_create when compiling without libxml2.

Andrew Talbot (2):
      dmusic: Constify a variable.
      dsound: Constify some variables.

André Hentschel (9):
      winebuild: Don't segfault when run without arguments.
      ipconfig: Update German translation.
      ntdll: Remove an unused function from signal_powerpc.
      winedbg: Fix typo in German translation.
      winedbg: Only add ContextFlags which are defined.
      shell32: Update German translation.
      shdocvw: Update German translation.
      shell32: Update German translation.
      user32: Only select needed part of the flags.

Aric Stewart (8):
      imm32/tests: Test various Imm call cross-thread.
      gdi32: Correct usage of ScriptLayout for bidi code.
      usp10: Attempt to shape with non TMPF_TRUETYPE fonts.
      usp10: Implement handling fMergeNeutralItems.
      usp10: Improve handling of spaces during Itemization.
      usp10: Check font for required features and report error if missing.
      gdi32: Silence a common and expected error.
      quartz: Return E_OUTOFMEMORY of the StdMemAllocator is unable to allocate memory.

Aurimas Fišeras (4):
      ipconfig: Update Lithuanian translation.
      shell32: Update Lithuanian translation.
      shdocvw: Update Lithuanian translation.
      inetcpl.cpl: Add Lithuanian translation.

Austin English (8):
      winealsa.drv: Remove unused variable.
      kernel32/tests: Be sure to terminate array.
      kernel32: Add a stub for GetThreadUILanguage.
      mmdevapi: Remove an unused variable.
      rstrtmgr: Add stubs for RmGetList and RmRegisterResources.
      kernel32/tests: Typo fixes.
      ws2_32: Add a stub for WSANSPIoctl.
      widl: Fix compiler warnings on clang.

Brad Smith (1):
      ntll: Fix the detection of the number of CPUs for OpenBSD.

Damjan Jovanovic (1):
      windowscodecs: Test that ICO GetSize returns the BITMAPINFOHEADER size instead of the ICONDIRENTRY size.

Detlef Riekenberg (3):
      inetcpl: Add initial applet.
      inetcpl: Add an applet icon.
      inetcpl: Add German translation.

Dmitry Timoshkov (3):
      winex11.drv: Avoid copying window bits if the window didn't move.
      winex11.drv: Avoid copying invalid window bits.
      gdi32: Add a trace for GetClipBox.

Eric Pouech (3):
      dbghelp: Fix regression with prevented StackWalk on i386 CPU to be called with a NULL context.
      kernel32: Fixed a couple of cases where the console was not reset in cooked mode after a bare console has been created.
      server: Ensure we set proper errors when getting a NULL fd out of a handle.

Francois Gouget (5):
      msi/tests: Fix compilation on systems that don't support nameless unions or structs.
      d3dcompiler_43: Move asmparser_message() and asmshader_error() up to avoid forward declarations.
      d3dcompiler_43: Make asmshader_error() and set_rel_reg() static.
      shell32/tests: Make create_commdlgbrowser3() static.
      usp10: Add a trailing '\n' to a TRACE() call.

Frédéric Delanoy (4):
      ipconfig: Update French translation.
      shdocvw: Update French translation.
      shell32: Update French translation.
      inetcpl.cpl: Add French translation.

Gerald Pfeifer (7):
      server: Remove pollev from set_socket_event.
      urlmon/tests: Simplify test_IUriBuilder_GetPorttest_IUriBuilder_GetPort a bit.
      gdi32/tests: Fix a test description in test_logpen.
      winex11.drv: Fix comment for #endif.
      setupx.dll16: Simplify vcpUICallbackProc16 a bit.
      gdi32/tests: Fix another test description in test_logpen.
      setupx.dll16: Simplify VCP_CopyFiles by removing a set, but never read, variable.

Hans Leidekker (15):
      dnsapi: Remove the critical section around res_query.
      msi: Fix comparison of table ids in TABLE_Exists.
      msi: Open relocated package database in transacted mode.
      msi/tests: Fix some test failures on 64-bit.
      msi: Avoid pointer truncation in MSI_ViewFetch and MSI_ViewModify.
      shell32: Add support for CSIDL_PROGRAM_FILESX86 and CSIDL_PROGRAM_FILES_COMMONX86.
      wine.inf: Create 32-bit program files and common files directories in 64-bit prefixes.
      include: Add knownfolders.h.
      include/shlobj.h: Add known folder flags.
      shell32: Implement SHGetKnownFolderPath.
      shell32: Implement SHGetFolderPathEx.
      shell32: Support FOLDERID_LocalAppDataLow.
      msi: Adjust the AdminUser property too after applying a patch.
      msi: Avoid a crash on database destruction.
      msi: Read supported platform and language ids from the summary information stream.

Henri Verbeet (30):
      wined3d: Fix a silly typo.
      wined3d: Do not call device_switch_onscreen_ds() while under the GL lock.
      wined3d: Translate before scaling for rhw as well in transform_projection().
      wined3d: Don't overwrite the offscreen depth/stencil surface with undefined data in surface_load_ds_location().
      d3d8: An invalid shader version isn't an internal error.
      wined3d: Avoid a memcpy() in IWineD3DImpl_FillGLCaps().
      wined3d: Rename "pDesc" to "desc".
      wined3d: Getting the current vertex shader should never fail.
      wined3d: Getting the current pixel shader should never fail.
      wined3d: GL_DRAW_FRAMEBUFFER depends on either ARB_framebuffer_object or EXT_framebuffer_blit.
      wined3d: IWineD3DSurface_GetDesc() should never fail.
      wined3d: IWineD3DVolume_GetDesc() should never fail.
      ddraw: Remove some stray tabs.
      ddraw: Just pass FOURCC formats through to wined3d.
      wined3d: IWineD3DBuffer_GetDesc() should never fail.
      wined3d: Get rid of redundant comparisons against NULL / 0.
      wined3d: Get rid of redundant comparisons against FALSE.
      wined3d: Introduce a structure for stream state.
      ntdll: Do not return STATUS_SUCCESS on failure in NtQueryObject().
      wined3d: Introduce a separate structure for stateblock states.
      wined3d: Move the scissor rect to wined3d_state.
      wined3d: Move the viewport to wined3d_state.
      wined3d: Move the material to wined3d_state.
      wined3d: Move transforms to wined3d_state.
      wined3d: Move texture states to wined3d_state.
      wined3d: Move sampler states to wined3d_state.
      wined3d: Move the texture's target field to the base texture struct.
      wined3d: Remove IWineD3DBaseTexture::GetTextureDimensions() from the public wined3d interface.
      wined3d: Move texture bindings to wined3d_state.
      wined3d: Move the vertex declaration to wined3d_state.

Hwang YunSong (3):
      ipconfig: Update Korean resource.
      shell32: Update Korean resource.
      inetcpl.cpl: New Korean resource.

Igor Paliychuk (3):
      shell32: Ukrainian translation update.
      shdocvw: Ukrainian translation update.
      ipconfig: Ukrainian translation update.

Jacek Caban (26):
      msxml3: Store outer iface as IXMLDOMNode instead of IUnknown in xmlnode.
      msxml3: Added node_query_inerface function for common xmlnode child objects implementation.
      msxml3: Use fake IID to safely cast IXMLDOMNode interface to xmlnode object.
      msxml3: Use separate object for unknown node type implementation.
      msxml3: Use get_node_obj to get xmlnode from iface in replaceChild implementation.
      msxml3: Use xmlnode child object's IXMLDOMNode implementation as base interface.
      msxml3: Don't use xmlnode's IXMLDOMNode iface in get_nodeName implementations.
      msxml3: Don't use xmlnode's IXMLDOMNode iface in get_nodeValue implementations.
      jscript: Rename DispatchEx to jsdisp_t to match jscript naming convention.
      msxml3: Don't use xmlnode's IXMLDOMNode iface in put_nodeValue implementations.
      msxml3: Don't use xmlnode's IXMLDOMNode iface in get_nodeType and get_nodeParent implementations.
      jscript: Added a helper function for setting VARIANT value to jsdisp_t.
      jscript: jsdisp_t to IDispatch casts clean up.
      jscript: Addd jsdisp_addref helper function.
      urlmon: Correctly handle INET_E_USE_DEFAULT_SETTING returned from GetBindString(BINDIND_ACCEPT_MIMES).
      msxml3: Don't use xmlnode's IXMLDOMNode iface in get_childNode implementations.
      msxml3: Don't use xmlnode's IXMLDOMNode iface in get_[first|last]Node implementations.
      shdocvw: Fixed tests on IE <6.
      msxml3: Don't use xmlnode's IXMLDOMNode iface in get_[previous|next]Sibling implementations.
      msxml3: Don't use xmlnode's IXMLDOMNode iface in get_attributes implementations.
      msxml3: Don't use xmlnode's IXMLDOMNode iface in insertBefore implementations.
      mshtml: Use stored nsWineURI object to create moniker in async_open.
      include: Added more d3d9 error codes.
      mshtml: Added nsIHttpChannel::VisitResponseHeaders implementation.
      mshtml: Try getting window from notification callback if load group is not available in AsyncOpen.
      mshtml: Added nsIURL::GetQuery implementation.

Jason Edmeades (2):
      cmd: Make tests supply stderr + more diagnostics.
      cmd: echo.word should echo back the word without the .

Jesse Litton (1):
      wined3d: Recognize GeForce GTX 465.

Joris Huizer (4):
      wined3d: Fix typo in checkGLcall.
      msxml3: Fix copy/paste error in get_lastChild functions.
      msxml3/tests: Add lastChild tests.
      d3dx9_36: D3DXPreprocessShaderFromFileW: remove unneeded code.

Juan Lang (2):
      shdocvw: Add Close menu item.
      winex11.drv: ImeInquire's second parameter is an output parameter.

Jörg Höhle (2):
      winmm: Support MCI_SOUND.
      winmm: Auto-open MCI core commands only.

Kovács András (1):
      dinput: Return an error in IDirectInputDevice2AImpl_GetProperty().

Louis Lenders (1):
      kernel32: Change SetHandleCount to match behaviour on versions >WINNT.

Luca Bennati (14):
      ipconfig: Update Italian translation.
      crypt32: Update Italian translation.
      cryptui: Update Italian translation.
      kernel32: Update Italian translation.
      winecfg: Update Italian translation.
      wldap32: Update Italian translation.
      devenum: Update Italian translation.
      cmd: Update Italian translation.
      user32: Update Italian translation.
      shell32: Update Italian translation.
      shell32: Update Italian translation.
      inetcpl.cpl: Add Italian translation.
      shdocvw: Update Italian translation.
      winecfg: Fix Italian translation.

Marcus Meissner (1):
      ole32: Check for interface NULL which happens with e.g. Abiword.

Mariusz Pluciński (12):
      gameux: Initial implementation of IGameExplorer::AddGame.
      gameux: Add support of loading Application Id into registry.
      gameux: Add storing Title registry value.
      gameux: Add storing Description registry value.
      gameux: IGameExplorer::RemoveGame implementation.
      include: Add LOCALE_INVARIANT definition.
      kernel32: New flags added to LoadLibraryEx.
      gameux: IGameExplorer::UpdateGame implementation.
      gameux/tests: Add basic test for InstallGame and UninstallGame.
      gameux/tests: Add verification of registry content for InstallGame and UninstallGame.
      gameux: Add InstallGame implementation.
      gameux: Add UninstallGame implementation.

Matej Spindler (8):
      shell32: Update Slovenian translation.
      shdocvw: Add Slovenian translation.
      jscript: Update Slovenian translation.
      mshtml: Update Slovenian translation.
      shdocvw: Update Slovenian translation.
      ipconfig: Add Slovenian translation.
      inetcpl.cpl: Add Slovenian translation.
      shell32: Update Slovenian translation.

Matteo Bruni (5):
      d3dx9: Fix D3DXCompileShaderFromFileW.
      d3dx9: Fix D3DXAssembleShader tests.
      d3dcompiler: D3DPreprocess implementation.
      d3dcompiler: Add D3DPreprocess tests.
      d3dx9: D3DXPreprocessShader implementation with tests.

Michael Mc Donnell (1):
      shell32/tests: Test that basic renaming is supported.

Michael Stefaniuc (2):
      oleaut32: The function pointer should be const and not the return value.
      urlmon: Remove superfluous NULL check before heap_free (Smatch).

Mikko Rasa (6):
      wined3d: Recognize GeForce GTX 460.
      secur32: Validate buffers passed to schan_DecryptMessage.
      secur32: Fill header and trailer buffers in schan_DecryptMessage.
      secur32: Only process full TLS frames in schan_DecryptMessage.
      secur32: Fill a SECBUFFER_MISSING buffer if the message is not complete.
      secur32: Add some more schannel tests.

Misha Koshelev (3):
      d3dx9: Implement D3DXFVFFromDeclarator.
      d3dx9_36: Fix the D3DXCreateMesh() prototype.
      d3dx9_36: Implement D3DXGetDeclLength with tests.

Nikolay Sivov (13):
      msxml3/tests: Add a helper to create document instance, remove useless output.
      msxml3/domdoc: Implement IXMLDOMNamedNodeMap::removeQualifiedItem().
      msxml3/tests: Some tests for ::get_ownerDocument() returned document instance.
      msxml3/tests: Basic test for ::setAttributeNode().
      msxml3: Support elements with namespaces.
      msxml3: Fix IXMLDOMNode::get_prefix() for empty prefix.
      msxml3: Fix IXMLDOMNode::get_namespaceURI() for empty URIs.
      msxml3: Properly set default value for SelectionLanguage property.
      msxml3/tests: Don't raise a test error on first try to create a document.
      msxml3: Fix ::selectSingleNode() behaviour on invalid arguments.
      msxml3: Store selected query language in backend document instance.
      msxml3: Remove some useless initializers.
      msxml3/tests: Store test data as a table for ::nodeTypedValue() tests.

Octavian Voicu (1):
      include: Fix typo in propkeydef.h.

Oldřich Jedlička (3):
      ddraw/tests: New attachment tests for 3D back buffers.
      ddraw: Allow creating back buffer for DirectX 1 interfaces.
      ddraw: Add checking of SURFACEDESC type/nullness into CreateSurface methods.

Owen Rudge (2):
      d3dx9: Implement D3DXCreateTextureFromResource*.
      d3dx9/tests: Add D3DXCreateTextureFromResource tests.

Paul Vriens (5):
      include/evntrace.h: Add some definitions.
      advapi32: Add stubs for FlushTrace[AW].
      dlls: Fix some specfiles with respect to 'str' and 'wstr' usage.
      msvcp80/msvcr90: Fix some typos in the forwards.
      msxml3/tests: Step to the next item on failure as well.

Piotr Caban (4):
      shlwapi: Improved UrlCanonicalize implementation.
      shlwapi: Improved UrlEscapeW implementation.
      secur32: Handle extra data in schan_InitializeSecurityContextW.
      secur32: Prevent schannel tests from crashing on Windows NT.

Rico Schüller (1):
      wined3d: Add argument check for Type to Get/SetTextureStageState().

Ričardas Barkauskas (2):
      wined3d: Add NVDB support.
      d3d9/tests: Test NVDB (depth bounds test) behavior.

Roderick Colenbrander (9):
      wined3d: Separate driver info from GPU info.
      wined3d: Return generic info for unhandled devices/drivers.
      include: Undefine INTERFACE before defining it.
      wined3d: Add Nvidia NT6x driver information.
      wined3d: Add AMD NT6x drivers.
      wined3d: Add Intel gpu and driver information.
      wined3d: Add legacy ATI cards.
      wined3d: Store amount of video memory in gpu_description_table.
      wined3d: Move video memory override to init_driver_info.

Rudolf Mayerhofer (1):
      kernel32: Implement GetUserDefaultLocaleName using users default LCID.

Stefan Leichter (1):
      setupapi: Added tests for SetupDiGetINFClassA.

Sven Baars (4):
      ipconfig: Update the Dutch translation.
      shdocvw: Update the Dutch translation.
      shell32: Update the Dutch translation.
      inetcpl.cpl: Add the Dutch translation.

Thomas Mullaly (22):
      urlmon: Implemented IUriBuilder_{Get/Set}Fragment.
      urlmon: Implemented IUriBuilder_{Get/Set}Host.
      urlmon/tests: Restructured IUriBuilder's test data.
      urlmon: Implemented IUriBuilder_{Get/Set}Password.
      urlmon: Implemented IUriBuilder_{Get/Set}Path.
      urlmon: Removed some unneeded URI_THIS casts.
      urlmon: set_builder_component now handles setting the modified property flag.
      urlmon: Implemented IUriBuilder_{Get/Set}Port.
      urlmon: Implemented IUriBuilder_{Get/Set}Query.
      urlmon: Implemented IUriBuilder_{Get/Set}SchemeName.
      urlmon: Some IUri's don't include the userinfo component in the absolute URI string.
      urlmon: Implemented IUriBuilder_{Get/Set}UserName.
      urlmon: Fixed bug in IUriBuilder_GetUserName.
      urlmon/tests: Removed no longer needed todo_wine's.
      urlmon/tests: Restructured IUriBuilder tests so they can accept IUriBuilders which don't have a base IUri.
      urlmon/tests: IUriBuilder's can create IUri's even if they don't have a base IUri.
      urlmon: Implemented IUriBuilder_{Get/Set}IUri.
      urlmon: Implemented IUriBuilder_HasBeenModified.
      urlmon: Implemented IUriBuilder_RemoveProperties.
      urlmon: Can't set the scheme name of a IUriBuilder to NULL or an empty string.
      urlmon/tests: IUriBuilder_CreateUri functions will return the base IUri if no changes have been made.
      urlmon/tests: Fixed bug in tests where the wrong value is checked.

Vincent Povirk (11):
      windowscodecs: Enumerate encoders.
      windowscodecs: Register builtin encoders.
      windowscodecs: Add tests for IWICBitmapDecoderInfo_GetMimeTypes.
      windowscodecs: Implement IWICBitmapCodecInfo::GetMimeTypes.
      windowscodecs: Implement IWICComponentInfo::GetCLSID.
      ole32: Don't fail if the file ends during a big block.
      windowscodecs: Fix the seeking in stream region streams.
      windowscodecs: Decode CMYK/YCCK JPEG images as CMYK.
      windowscodecs: Implement conversion from CMYK to RGB.
      windowscodecs: Override libjpeg's default error handling.
      ws2_32: Add a test for selecting invalid sockets.

Vitaly Perov (1):
      winspool.drv: Set the printer name in AddJobW.

Vladimir Panteleev (1):
      user32: Fix VK_RETURN handling in IsDialogMessage for dialogs without an IDOK.

Wolfram Sang (1):
      hhctrl: Add check for no filename.

Łukasz Wojniłowicz (3):
      jscript: Update the Polish translation.
      shdocvw: Update the Polish translation.
      mshtml: Update the Polish translation.

--
Alexandre Julliard
julliard@winehq.org
