The Wine development release 1.4-rc2 is now available.

What's new in this release (see below for details):
  - Bug fixes only, we are in code freeze.

The source is available from the following locations:

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

   4386  Font rendering wrong.
  16531  Issues using embedded html (DVD Profiler written with Delphi)
  17120  Synful Orchestra tpkd.sys crashes due to unimplemented function ntoskrnl.exe.KeInitializeMutex
  20534  gdb proxy mode: allow interrupt from command line (e.g. Ctrl-C)
  22201  Dragon Age: Origins - Configuration Utility windows are blank
  22256  Miranda runs out of GDI object handles and crashes
  23512  DDO - Silent crash at login
  23682  Suggestion: Editbox with backtrace in crash window
  25606  Clones: stuck after launching a single-player game
  26240  R-Studio: HtmlHelpW HH case HH_DISPLAY_INDEX not handled
  26260  Axis & Allies: Sound does not work / stops working
  26670  Atlantis Word Processor window does not appear in task bar
  27115  Wild Earth: Photo Safari Demo: launcher screen is not functional without native ie7
  27190  Incorrect focus and Alt+Tab order with Delphi MDI application
  27374  FAR: Alt-tab will cause "alt" key to be left as pressed when returning to console window
  27543  Alice: Madness Returns - no sound in game
  27567  Crystal Towers 2 crashes with unimplemented function msvcp60.dll.??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z
  27588  Drake of the 99 Dragons needs many msvcp60.dll basic_string<char> functions
  27982  Creative Writer 2 hangs on startup
  28367  Download Accelerator Plus:needs  msvcp60.dll.?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB
  28511  Marvel Ultimate Alliance: vidoes arent played anymore
  28544  x86 PC emulator in Javascript fails to boot linux 2.6.20
  28744  CCleaner does not display checkboxes and icons in the 'cleaner' treeview
  28944  Notepad2 v4.2.25 needs native msvcp60 to work correctly
  29066  Cambridge Classware installAnywhere installer fails to draw (wined3d_surface_blt problem?)
  29122  Sonic R has rendering (color keying) issues in Direct3D mode
  29477  unimplemented function msvcp90.dll.?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z, aborting
  29496  Mouse doesn't release when moving/resizing Steam window
  29511  IrfanView fails to play a specific WAV file
  29520  Error 458. Variable uses an Automation type not supported in Visual Basic
  29544  StarCraft BroodWar crashes when I try to click on map
  29657  winecoreaudio memory management and locking seems to be broken
  29732  Prince of Persia: The Sands of Time mouse clipping broken
  29733  Notepad: replace dialog is popup when press backspace
  29739  Microsoft Visual Studio 2010 installer wants to update MSI to 4.5.6001.22299 (Wine: 4.5.6001.22159)
  29746  iexplore does not display some YouTube images
  29748  mouse doesn't work after fullscreen window goes away
  29752  Sonic 3 & Knuckles Collection AutoPlay menu hangs on start
  29759  In exclusive mode/non fullscreen app, moving the cursor can result in resizing window if cursor is "virtually" on an window border

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

Changes since 1.4-rc1:

Alexandre Julliard (19):
      wrc: Fix parsing of virtkey accelerators.
      winemine: Get rid of the exit accelerator.
      winefile: Get rid of the exit accelerator.
      view: Get rid of the quit accelerator.
      notepad: Use virtkeys for all accelerators.
      wordpad: Use virtkeys for all accelerators.
      regedit: Use virtkeys for all accelerators.
      dinput: Catch unsuccessful clipping attempts and fall back to warping.
      winex11: Disallow clipping to fullscreen rectangle if XInput2 is not available.
      kernel32: Only change the Unix current after exec_process to make sure it's inherited properly.
      winex11: Reset clipping when a fullscreen window is unmapped.
      psapi/tests: Don't check data returned from a failing call.
      winex11: Consider zero-size windows mapped even when they are positioned at 0,0.
      dinput: Clip to the client area instead of the whole window in exclusive mode.
      winex11: Don't give focus to zero-size windows.
      winex11: Move the window resizing support to mouse.c.
      winex11: Poll the mouse button to detect the end of a window manager move/resize.
      winealsa: Avoid memory leak with snd_card_get_name.
      winex11: Update only the key state on KeymapNotify without sending fake key events.

Andrew Eikum (3):
      mmdevapi: Correctly convert UINT32 to LONG32.
      winmm: Initialize COM for MULTITHREADED, not APARTMENTTHREADED.
      winecoreaudio: Improve underrun handling.

Aric Stewart (9):
      user32: Check return code from ScriptStringAnalyse.
      user32: Have a fallback in linebreaking if uniscribe fails to analyse a string.
      usp10: pwLogClust is ordered so its max will be on one end.
      usp10: Use a bsearch function to find a glyph in the LogClust array.
      usp10: Limit runs in ScriptStringAnalyse to 255.
      usp10: Implement SSA_LINK flag.
      gdi32: In update_system_links if the font we are trying to link has already been substituted or localized we need to check against that name also.
      quartz: If the MediaSeeking is not implemented all the way up the passthru chain fall back to the filtergraph's clock to find position.
      usp10: We do not yet shape hangul properly so allow for SSA_LINK flags to take effect.

Austin English (4):
      wscript: Remove an unused variable (LLVM/Clang).
      crypt32: Remove a couple unused variables (LLVM/Clang).
      dsound: Remove an unnecessary assignment (LLVM/Clang).
      msvcp60: Remove unnecessary assignments (LLVM/Clang).

Christian Costa (1):
      d3dx9_36: Remove TGA from TODO since it is supported.

Dmitry Timoshkov (1):
      riched20: Fix some GDI object leaks.

Erich Hoover (1):
      crypt32: Fix domain component length check.

Francois Gouget (4):
      po: Remove English strings (invalid even) from the Bulgarian shell folder translations.
      po: Mark an incorrect Czech translation as fuzzy.
      po: Remove/fix a couple of invalid Hungarian translations.
      po: Remove English strings from the Hungarian shell folder translations.

Frédéric Delanoy (2):
      ws2_32/tests: Remove dead code in test_completion_port (Coverity).
      msi: Avoid dead code in parse_prop (Coverity).

Gustavo Henrique Milaré (1):
      po: Update Brazilian Portuguese translation.

Henri Verbeet (2):
      ddraw: AddAttachedSurface() just references whatever we pass it.
      wrc: Avoid an unused function warning when HAVE_LIBGETTEXTPO is not defined.

Hwang YunSong (2):
      po: Updated Korean translation.
      po: Update Korean translation.

Jacek Caban (4):
      urlmon: Relative URI without scheme may be treated as hierarchical.
      urlmon: Properly handle relative URIs with specified host in combine_uri.
      mshtml: Properly handle GetScheme failure.
      mshtml: Properly handle out of memory in IHTMLElement::get_outerHTML.

Juan Lang (2):
      crypt32: Only accept trailing NULLs in a certificate common name.
      crypt32: Test and correct CryptVerifyCertificateSignature.

Jörg Höhle (4):
      winecoreaudio: Avoid deadlock in AudioClient_Stop.
      winecoreaudio: Implement a lock-free callback design.
      winecoreaudio: Fix the Start/Stop/Reset cycle.
      mciwave: Always reach an end position expressed in milliseconds.

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

Marcel Hasler (1):
      dinput: Support INFINITE as number of effect iterations.

Matteo Bruni (1):
      wined3d: Use a separate flag for discarded surfaces.

Nikolay Sivov (4):
      urlmon: Recognize <head> start tag as text/html MIME type.
      comctl32: Never release state image list.
      msxml3: Trace VARIANT parameters.
      comctl32: More tests for Toolbar window style handling.

Piotr Caban (4):
      msvcp60: Fix _Lockit class implementation.
      urlmon: Fix debug message in canonicalize_scheme.
      urlmon: Handle implicit file scheme in MapUrlToZone and GetSecurityId functions.
      mshtml: Make cookie parameter optional in ConnectionPoint_Advise.

Stefan Dösinger (8):
      ddraw/tests: Port the depth blit test to ddraw7.
      ddraw/tests: Port the depth blit test to ddraw4.
      ddraw/tests: Port the depth blit test to ddraw2.
      ddraw: Properly set the color key in texture::load.
      ddraw/tests: Add an IDirect3DTexture::Load color key test.
      ddraw/tests: Add an IDirect3DTexture2::Load color key test.
      ddraw/tests: Add an IDirect3DDevice7::Load color key test.
      ddraw/tests: Add some IDirect3DViewport interface tests.

Stefan Leichter (1):
      msi: Update version resource.

Thomas Faber (2):
      comctl32: Fix MSVC build in monthcal.c.
      comctl32: Fix MSVC build in imagelist.c.

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

--
Alexandre Julliard
julliard@winehq.org
