You are here

Wine changelog for 1.5.2

The Wine development release 1.5.2 is now available.

What's new in this release (see below for details):
  - Improved naming scheme for audio devices.
  - Better support for finding system fonts on Mac OS X.
  - Beginnings of support for JPEG encoding.
  - Several printing fixes.
  - Improvements to the URL cache.
  - Various bug fixes.

The source is available from the following locations:

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

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

Changes since 1.5.1:

Akihiro Sagawa (1):
      comctl32: Add support for retrieving lpszText in TOOLINFO structure.

Alexander Morozov (2):
      advapi32: Regular program should not freeze forever if it calls StartServiceCtrlDispatcher.
      kernel32/tests: Add a test for creating named mapping after closing without unmapping.

Alexandre Julliard (21):
      ntdll: Move the _chkstk implementation to signal_i386.c.
      ntdll: Add a __chkstk entry point for x86_64.
      winex11: Fix a potential deadlock in the GradientFill non-XRender fallback.
      msvcp60: Use DEFINE_RTTI_DATA to initialize exception RTTI data.
      msvcp60: Use the correct vtable pointer for type_info objects.
      msvcp90: Use the correct vtable pointer for type_info objects.
      msvcrt: Use macros to define RTTI data.
      msvcrt: Use macros to define exception type info structures.
      gdi32: Fix GetClipBox return value for non-memory DCs.
      gdi32/tests: Automatically reset the bits after comparing the hash.
      gdi32/tests: Add tests for DC bounds to the DIB graphics tests.
      gdi32/tests: Add tests for DC bounds on various device types.
      gdi32/tests: Add tests for DC bounds handling across various DC manipulations.
      gdi32: SaveDC doesn't save the DC bounds.
      gdi32: Clip the returned DC bounds to the device rectangle.
      gdi32: Add explicit fields for the DC flags.
      gdi32: Store the reference DC in the enhanced metafile and use it to retrieve device caps.
      gdi32: Move the pen/brush_region helpers to graphics.c and avoid redundant clipping.
      gdi32: Map all the points at once in PolyPolyline, similarly to what PolyPolygon does.
      gdi32: Avoid redundant computation of the gradient bounding rectangle.
      gdi32/tests: Add test cases for wide pen bounding rectangles.

Alistair Leslie-Hughes (2):
      scrrun: Add IFileSystem3 support.
      scrrun: Add scrrun tests.

Andrew Eikum (13):
      dsound: Validate and correct wValidBitsPerSample in primary buffer SetFormat.
      mmddk.h: Remove unused, Wine-specific WinMM defines.
      winealsa.drv: Use device GUIDs as keys.
      wineoss.drv: Use device GUIDs as keys.
      winecoreaudio.drv: Use device GUIDs as keys.
      mmdevapi: Use device GUIDs as unique identifiers.
      winealsa.drv: Prefix device names with direction indication.
      wineoss.drv: Prefix device names with direction indication.
      dmusic: Check correct return code.
      mmdevapi: Store device interface in registry.
      winmm: Support DRV_QUERYDEVICEINTERFACE in waveXxxMessage.
      mmdevapi: Indicate data flow direction in IMMDevice::GetId result.
      winealsa.drv: Enumerate ALSA devices in a single pass.

André Hentschel (5):
      winedbg: Implement be_arm_store_integer on ARM.
      make_specfiles: Add atl group.
      libwine: Add thumb support.
      winedbg: Add partial ARM disassembler.
      winedbg: Add partial Thumb disassembler.

Aric Stewart (28):
      quartz: COM cleanup for AsyncReader and FileAsyncReader.
      quartz: COM cleanup for AVIDecImpl.
      quartz: COM cleanup in ACMWrapperImpl.
      strmbase: Expand BaseRenderer implementation.
      quartz: Convert DsoundRenderer to use strmbase BaseRenderer.
      strmbase: More additions to BaseRenderer for video renderers.
      strmbase: Implement renderer quality control into the base renderer.
      quartz: Have the VideoRenderer use strmbase BaseWindow.
      quartz: Convert VideoRenderer to use strmbase BaseRenderer.
      strmbase: Remove QualityControlImpl from the general strmbase.h.
      quartz: Convert VideoRenderer to use strmbase's BaseControlWindow.
      quartz: Change VideoRenderer to use strmbase's BaseControlVideo.
      strmbase: COM cleanup for PosPassThru.
      strmbase: Fix issues with new quality control implementation in TransformFilter.
      strmbase: Add IMediaPosition implementation to PosPassThru.
      quartz: COM cleanup for DSoundRenderImpl.
      quartz: Add initial VMR9 stub.
      quartz: Add BaseControlWindow to VMR9.
      quartz: Add BaseControlVideo to VMR9.
      quartz: Add IAMFilterMiscFlags to VMR9 implementation.
      quartz: Add VMRFilterConfig9 to VMR9.
      quartz: Add VMRWindowlessControl9 to VMR9.
      user32: While calculating lines, discard uniscribe data for non-visible lines.
      quartz: COM cleanup for PullPin.
      quartz: Add VMRSurfaceAllocatorNotify9 to VMR9.
      wineqtdecoder: Register the QT Splitter to be a default potential handler for all unhandled streams.
      quartz: Add control.idl as a typelib resource.
      wineqtdecoder: Call OutputQueue_Destroy during pin disconnect.

Austin English (1):
      ntdll: Give a better error message if signal context functions aren't defined.

Bruno Jesus (4):
      ws2_32/tests: Avoid usage of inet_ntoa since its return is static.
      ws2_32/tests: Add hostent struct tests for gethostbyname.
      ws2_32/tests: Update hostent struct tests.
      ws2_32/tests: Avoid crashing if getservbyname fails.

Carlo Bramini (4):
      include: Add PERCEIVED types and flags.
      include: mimeole.idl: Fix typo in ADDRESSPROPS structure.
      shlwapi: Add stub for AssocGetPerceivedType.
      shlwapi: Don't remove nonexistent extension in PathRemoveExtension.

Christian Costa (17):
      d3drm: Make IDirect3DRMMeshBuilderX stub return D3DRM_OK.
      d3drm: Add support for frame with fake data in IDirect3DRMX:Load methods + tests.
      d3drm: Implement CreateMesh method and stubbed IDirect3DRMMesh interface.
      dmusic: Enumerate ports for midi out and midi in devices in EnumPort.
      dmusic: Check return codes and display name from port caps when enumerating microsoft synthetizer.
      amstream: Add CLSID_AMAudioData implementation.
      amstream: Implement IAMMultiMediaStreamImpl_Seek.
      amstream: Implement IAMMultiMediaStreamImpl_SetState.
      dmsynth: Add basic tests.
      dmsynth: Check the rigth CLSID to create the DirectMusicSynthSink object.
      dmsynth: Put port caps that match native ones.
      d3drm: Display filename when loading data from a file.
      kernel32: Limit dwTotalPageFile in GlobalMemoryStatus to 4Gb minus 512kb for apps that do not expect so much memory.
      dmusic: Replace debugstr_DMUS_OBJECTDESC by a specific dump function to avoid debug buffer overflow.
      dmusic: Add dump function for DMUS_PORTPARAMS struct.
      dmusic: Check wrong params when creating a port + tests.
      dmusic: Add trace to DMUSIC_CreateReferenceClockImpl and rename some variables.

Daniel Jelinski (2):
      comctl32/tests: Added test for treeview expand notifications on keyboard events.
      comctl32/tests: Added tests for treeview TVM_HITTEST message.

Detlef Riekenberg (1):
      comdlg32: Remove an unused 16-bit macro.

Dmitry Timoshkov (10):
      gdi32: Remove a no longer needed shortcut in CreateScalableFontResource test.
      gdi32: Refuse to load a large .fot file earlier.
      user32: SetParent() should use ShowWindow() to make a reparented window visible and move a window to new position.
      user32: SetWindowPos() should check the final window position in screen coords before adding SWP_NOMOVE.
      gdi32: Fix a typo in faces_equal() preventing loading all sizes of a bitmap font.
      gdi32: Add more verbose messages to indicate when a font is being added/replaced/refused to load.
      gdi32: Add a test for bitmap fonts selected for not existing font sizes.
      fonts: Update cyrillic bitmap glyphs in Tahoma Bold.
      fonts: Generate large pixel size versions of MS Sans Serif.
      gdi32: Add large fonts support for MS Sans Serif.

Eric Pouech (1):
      winedbg: Fix set instruction when sizeof(int)  sizeof register.

Erich Hoover (3):
      ntdll: Fix section header heap deadlock.
      ws2_32: Implement IP_UNICAST_IF socket option.
      ws2_32: Implement IPV6_UNICAST_IF socket option.

Francois Gouget (1):
      po: Remove duplicate spaces between sentences.

Hans Leidekker (12):
      msi: Implement MsiEnumComponentsEx.
      msi: Reimplement MsiEnumComponents on top of MsiEnumComponentsEx.
      msi/tests: Add tests for MsiEnumComponents and MsiEnumComponentsEx.
      msi: Rename the need_reboot flag to need_reboot_at_end.
      msi: Use the state parameter passed to MsiSetMode.
      msi: Implement MsiGet/SetMode(MSIRUNMODE_REBOOTNOW).
      msi: Suspend the installation if an action sets MSIRUNMODE_REBOOTNOW.
      kernel32/tests: Add tests for GetModuleHandleEx.
      kernel32: Return failure from GetModuleHandleEx if the module handle pointer is NULL.
      kernel32: Clear the module handle on failure in GetModuleHandleEx.
      kernel32: GetModuleHandleEx already clears the module handle on failure.
      msi: Keep the UI level fixed during the lifetime of a package.

Henri Verbeet (49):
      ddraw: Explicitly check for the IDirectDrawColorControl interface in ddraw_surface7_QueryInterface().
      ddraw: The texture interfaces can't be queried from version 7 surfaces.
      ddraw: The texture interface shares its refcount with the surface interface version used to create the surface.
      d3d9: Don't return a pointer to the implementation in IDirect3DStateBlock9Impl_QueryInterface().
      d3d9: Don't return a pointer to the implementation in IDirect3DQuery9Impl_QueryInterface().
      ddraw: The various D3D device interfaces can't be queried from version 7 surfaces.
      ddraw: Surface versions before 7 return E_INVALIDARG on failure in QueryInterface().
      ddraw/tests: Add some QueryInterface() tests for surfaces.
      d3d9: Don't return a pointer to the implementation in IDirect3DDevice9Impl_QueryInterface().
      d3d9: Don't return a pointer to the implementation in IDirect3DCubeTexture9Impl_QueryInterface().
      ntdll: Free the correct section headers copy in map_image().
      ntdll: Use the copy of the section headers for applying memory protections as well in map_image().
      ddraw: Keep track of the ddraw version used to create a device.
      ddraw: Replace an ERR in IDirect3DDeviceImpl_7_QueryInterface() with a WARN.
      ddraw: Remove some interfaces from IDirect3DDeviceImpl_7_QueryInterface().
      wined3d: Properly determine the viewport size for front buffer blits in SetupForBlit().
      d3dx9: Also print the format as FOURCC in get_format_info().
      ddrawex: Don't return a pointer to the implementation in IDirectDrawFactoryImpl_QueryInterface().
      ddrawex: Don't return a pointer to the implementation in IDirectDrawClassFactoryImpl_QueryInterface().
      ddraw: Fix querying device interfaces in IDirect3DDeviceImpl_7_QueryInterface().
      ddraw: Version 1 devices are aggregated by the surface that created them.
      ddraw/tests: Add some QueryInterface() tests for devices.
      dxgi: Don't return a pointer to the implementation in dxgi_surface_inner_QueryInterface().
      d3dx9: Don't return a pointer to the implementation in ID3DXSpriteImpl_QueryInterface().
      wined3d: Simplify the data.buffer_object assignment in surface_load_texture().
      ddraw: Simplify updating palette entries in d3d_texture2_Load().
      ddraw: Properly retrieve an interface pointer in ddraw_surface7_GetPalette().
      d3dx9: Don't return a pointer to the implementation in ID3DXConstantTableImpl_QueryInterface().
      d3dx9: Don't return a pointer to the implementation in ID3DXMeshImpl_QueryInterface().
      ddraw: Properly retrieve an interface pointer in ddraw7_GetSurfaceFromDC().
      ddraw: Properly retrieve an interface pointer in IDirect3DDeviceImpl_7_GetTexture().
      ddraw: Get rid of IDirect3DDeviceImpl.
      d3dx9: Don't return a pointer to the implementation in ID3DXMatrixStackImpl_QueryInterface().
      d3dx9: Don't return a pointer to the implementation in ID3DXLineImpl_QueryInterface().
      d3d9: Introduce a separate function for swapchain creation.
      d3d9: COM cleanup for the IDirect3DSwapChain9 interface.
      ddraw: Get rid of IDirect3DExecuteBufferImpl.
      d3dx9: Don't return a pointer to the implementation in ID3DXFontImpl_QueryInterface().
      d3dx9: Don't return a pointer to the implementation in ID3DXEffectPoolImpl_QueryInterface().
      d3d9: Introduce a separate function for vertex declaration creation.
      d3d9: Store wined3d vertex declarations in the fvf lookup table.
      ddraw: Get rid of IDirect3DVertexBufferImpl.
      d3dx9: Don't return a pointer to the implementation in ID3DXEffectCompilerImpl_QueryInterface().
      d3dx9: Don't return a pointer to the implementation in ID3DXEffectImpl_QueryInterface().
      d3d9: Use the wined3d declaration to retrieve the FVF in IDirect3DDevice9Impl_GetFVF().
      d3d9: COM cleanup for the IDirect3DVertexDeclaration9 interface.
      wined3d: Unify the wined3d_mapped_rect and wined3d_mapped_box structures.
      include: Fix a couple of ID3DXSaveUserData prototypes.
      d3dx9: Don't return a pointer to the implementation in ID3DXBaseEffectImpl_QueryInterface().

Huw Davies (33):
      winspool: Propagate the printer's devmode to a new job.
      wineps: Use the unicode version of StartDocPrinter.
      winspool: Initialise portname.
      winspool: Correct the padding calculation when there is no buffer.
      winspool/tests: Add some tests for OpenPrinter with non-NULL defaults.
      winspool: Remove a FIXME now that we don't ignore the defaults.
      wineps: Free the output string from the correct heap.
      wineps: Move some structs to the process heap.
      wineps: Store the document title as a unicode string.
      wineps: Store the unicode version of the printer name and call the unicode version of OpenPrinter.
      wineps: Move some allocations to the process heap.
      wineps: Fix a memory leak.
      wineps: Change the printer info list into a standard list.
      wineps: Add a helper to retrieve the font substitution table.
      winspool: Generalise the A to W printer info conversion to cope with other levels.
      winspool: Forward SetPrinterA to SetPrinterW.
      winspool: Add a helper to set devmode data in the registry.
      winspool: Implement SetPrinterW for level 9.
      wineps: Move the installed font list to a standard list.
      wineps: Move the constraints list to a standard list.
      wineps: Move the input slot list to a standard list.
      wineps: Move the duplex list to a standard list.
      wineps: Remove the installed options list as it's never populated.
      wineps: Retrieve the printer's devmode using GetPrinter.
      wineps: Set the printer's devmode using SetPrinter.
      wordpad: Don't quit if the user cancels the save-as dialog when being prompted to save changes.
      wineps: Return from a common point.
      wineps: Switch to using a Unicode devmode.
      wineps: Pass the devmode to OpenPrinter.
      wineps: Simplify the failure path.
      wineps: Move the default resolution fallback to the ppd parser.
      wineps: Add the duplex entry to the list.
      wineps: Move ppd filename retrieval to a separate function.

Igor Paliychuk (1):
      po: Update Ukrainian translation.

Ilya Basin (1):
      regedit: Fix buffer size when exporting binary values.

Jacek Caban (36):
      jscript: Fixed jsheap_grow implementation.
      jscript: Emit undefined statement return for switch without default clausule.
      jscript: Fixed parsing /=/ regexp.
      mshtml.idl: Added DispHTMLMetaElement declaration.
      mshtml.idl: Added IHTMLMetaElement* declarations.
      mshtml: Added IHTMLMetaElement stub implementation.
      mshtml: Fixed status text cache implementation.
      mshtml: Added IHTMLMetaElement::get_name implementation.
      mshtml: Added IHTMLMetaElement::get_content implementation.
      mshtml: Added IHTMLMetaElement::get_httpEquiv implementation.
      mshtml: Use helpers for IHTMLStyle::put_verticalAlign property implementation.
      mshtml: Use helper for IHTMLStyle::get_height implementation.
      mshtml: Use helper for IHTMLStyle::get_top implementation.
      mshtml: Use helper for IHTMLStyle::get_left implementation.
      mshtml: Use helper for IHTMLStyle::put_zIndex implementation.
      devenum: Removed useless structs.
      mshtml: Added IHTMLWindow2::onerror semi-stub implementation.
      jscript: Avoid cleaning an uninitialized variable.
      mshtml: Remove old channel from load group in nsIAsyncVerifyRedirectCallback::AsyncOnChannelRedirect.
      mshtml: Added support for IDispatch-only ActiveX objects.
      mshtml: Detach also internal listeners in detach_events.
      mshtml: Added IHTMLImgElement::onerror implementation.
      mshtml: Added IHTMLImgElement::onerror tests.
      mshtml: Added semi-stub implementation of IOmNavigator::get_cookieEnabled.
      urlmon: Build more appropriate user agent string.
      mshtml: Added IHTMLFormElement::submit implementation.
      jscript: Replace only the first match for non-regexp pattern in String.replace.
      mshtml: Added better IHTMLWindow2::get_opener stub.
      mshtml: Added IHTMLDocument2::onkeypress implementation.
      mshtml: Added IHTMLElement2::blur implementation.
      mshtml: Return self as a parent of global top window.
      mshtml: Improved helper for returning color as VARIANT in HTMLBodyElement implementation.
      mshtml: Use return_nsstr helper in IHTMLBodyElement::get_background implementation.
      mshtml: Use return_nsstr helper in HTMLElement object implementation.
      mshtml: Use return_nsstr helper in more functions.
      vbscript: Short if statement may have optional 'end if'.

Jeff Latimer (1):
      ws2_32: Make a common fixme more meaningful and return success.

Joris Huizer (1):
      amstream: IAMMultiMediaStreamImpl_SetState: correct ifs.

Józef Kucia (3):
      include/d3dx9: Fix spelling errors.
      d3dcompiler: Fix parsing the tex instruction in ps_1_0 shaders.
      d3dcompiler: Allow the alternative shader version format (with dots instead of underscores).

Ken Thomases (2):
      Revert "gdi32: Load fonts from default Mac external font paths.".
      gdi32: On Mac OS X, find fonts using Core Text rather than FontConfig, by default.

Kusanagi Kouichi (1):
      gdi32: Improve font cache.

Lucas Zawacki (1):
      dinput: Don't trace DIEFFECT members if they don't contain valid data.

Marcus Meissner (1):
      winealsa.drv: Fixed buffer to RegEnumKeyExW.

Michael Stefaniuc (11):
      dmime: COM cleanup for IDirectMusicPerformance8.
      dmime: DirectMusicPerformance doesn't supports COM aggregation.
      dmime/tests: Add some COM tests for IDirectMusicPerformance.
      dmime: Move struct IDirectMusicPerformance8Impl to the c file.
      devenum: COM cleanup for ICreateDevEnum.
      devenum: COM cleanup for IEnumMoniker.
      devenum: COM cleanup for IMoniker (MediaCatMoniker).
      devenum: Don't use DEVENUM_IPropertyBag_AddRef method directly.
      devenum: COM cleanup for IParseDisplayName.
      dmime: DirectMusicSegment doesn't supports COM aggregation.
      dmime/tests: Add some COM tests for DirectMusicSegment.

Morten Rønne (5):
      po: Updated Danish translation.
      wininet/tests: Fixed text errors in tests.
      wininet/tests: Added more tests for urlcache, including a new flag in CacheEntryType.
      po: Updated Danish translation.
      wininet/tests: Moved a test outside a loop to make numbers of tests run independent on the numbers of entries in the cache.

Nicolas Le Cam (1):
      configure.ac: Prefer pkg-config over freetype-config.

Piotr Caban (20):
      wininet: Store element type and state in hash table key (urlcache).
      wininet: Correctly set next hash table offset.
      wininet: Mark empty fields in the same way while hash table is created and element is removed.
      wininet: Set uninitialized memmory to 0xdeadbeef in cache files.
      wininet: Only mark elements as deleted in DeleteUrlCacheEntry function.
      wininet: Don't delete locked entry in DeleteUrlCacheEntry.
      wininet: Don't overwrite locked entry in CommitUrlCacheEntry.
      wininet: Don't reserve space for directory in URL cache entry.
      wininet: Return error code in URLCache_FindFirstFreeEntry function.
      wininet: Implement urlcache index growing.
      ddraw: Improve GetScanLine stub so it's usable for timing related tasks.
      msvcrt: Rewrite asctime function.
      msvcrt: Rewrite wasctime function.
      msvcrt: Set correct date and time format for C locale.
      msvcrt: Added field names to MSVCRT___lc_time_data structure.
      msvcrt: Added _Strftime implementation.
      msvcrt/tests: Added more strftime tests.
      msvcrt: Added support for _TRUNCATE flag in wcsncpy_s.
      msvcrt: Fix months and weekday names in C locale.
      wininet: Store correct urlcache file size.

Robert van Herk (1):
      msi: Fixed MsiGetFileHashW for empty files.

Stefan Leichter (2):
      atl80: New dll.
      atl80: Add stub for AtlCreateRegistrar.

Vincent Povirk (14):
      gdiplus: Implement GdipGetPathGradientCenterColor.
      gdiplus: Implement path gradient preset blend accessors.
      gdiplus: Add tests for preset blend accessors.
      gdiplus: Implement GdipGetPathGradientTransform.
      gdiplus: Forbid creating path gradients with fewer than 2 points.
      gdiplus: Default path gradient center color depends on the constructor.
      gdiplus: Set the wrap mode in the path gradient constructor.
      gdiplus: Implement path gradient transform setters.
      winedump: Add basic support for dumping the property store in lnk files.
      windowscodecs: Add stub JPEG encoder.
      windowscodecs: Implement JpegEncoder_Initialize.
      windowscodecs: Implement JpegEncoder_CreateNewFrame.
      windowscodecs: Implement JpegEncoder_Frame_Initialize.
      windowscodecs: Implement JpegEncoder_Frame_SetSize.

Łukasz Wojniłowicz (1):
      po: Updated Polish translation.

--
Alexandre Julliard
julliard@winehq.org