The Wine development release 1.1.9 is now available.

What's new in this release (see below for details):
  - A large number of regression test fixes.
  - Performance improvements in memory management.
  - Improved POP3 support in inetcomm.
  - Initial implementation of the XInput DLL.
  - Various bug fixes.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.1.9.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.1.9.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/site/download

You will find documentation on http://www.winehq.org/site/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/site/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.1.9:

   4355  WMP10 setup fails due to unimplemented functions
   4397  Application doesn't start
   5416  Port royal 2 demo will not start
   5502  Warkanoiddemo hangs with black screen
   6222  updating FFXI PlayOnline produces Unhandled exception after update restart
   6781  "battle for middle earth II" demo fails to install
   6825  imagehlp.ImageDirectoryEntryToData needs to clear out param when entry not found
   6859  renguard does not install
   7206  Scribe3 loops forever on startup adding fonts?
   7652  Transcendence: text and numbers either missing or displayed wrong
   7992  wordweb 5 doesn't download its data
   8047  BOM: DateSerial (VB function) gives 19xx for 2 digit years, but should provide 20xx for years below 30
   8366  Rainbow Six Vegas fails to start
   8663  Anarchy Online display is completely black when using windowed mode
   8844  ShoreTel Client installer crashes when searching for related applications
   8868  Oblivion crashes outdoors when moving across load boundry
   9064  UBSPay font problem
   9103  X2 The Threat: Bumpmapping broken
   9317  Can't run vbtablet
   9481  LOTRO crash with Alsa at Full Hardware Acceleration
   9529  ETQWBeta2 installer fails to execute vcredist_x86.exe
   9745  Family Archive Viewer 6, Family Tree Maker 8 start off with main window too small
   9912  La Soeur de Barrage: crashes when attempting to start game
   9983  Half-Life 2, Counter Strike Source and other games crash at startup
  10201  Playback progress not working in WMP 9
  10217  Windows Media Player 10 crashes with builtin urlmon
  10242  RACE - The WTCC Game (Two car DEMO) fails to start
  10314  Switched On Schoolhouse 2000 hangs X on startup
  10395  Programmer's Notepad 2 closes when loading a new file with no existing tabs open
  10592  EVE Online login screen causes some gfx corruptions
  10706  unimplemented ntdll.dll.NtQueryEaFile and ntdll.dll.NtSetEaFile cause CVSNT client included in TortoiseCVS to fail checkout operation
  11663  Guild Wars seems to hang with intel X3100
  11772  Mathematica 5.1, Help Browser crash everything.
  11777  Guitar Hero 3 fails to start
  12082  Project Nomads: dialog speeches too fast
  12100  lego star wars crashes entering first level
  12550  Farb-Rausch demo 30 "candytron" doesn't render past the loading screen.
  12607  Quake Wars demo crashes on startup
  12774  Caesar 3 crashes on exit
  13035  Bad HAVE_XSLTINIT in msxml3
  13112  comctl32 trackbar setPos() should not call oncustomdraw if value hasn't changed
  13116  wxDev-C++: Problem building projects
  13150  Guitar Hero 3 crashes without D3DXCreateTextureFromFileInMemoryEx and D3DXCreateTextureFromFileW
  13281  crash during installation of  WebEngine V200N by Virtual Mechanics
  13408  ActiveSync 4.5 don't install - error richedit ReadStyleSheet and others
  13426  When installing WebEngine you get the message "http://download.virtualmechanics.com/download/install/webenginev2/200N/WebEngineV200N.msi is not trusted"
  14498  VB6 App problem on MouseIcon property
  14600  Oblivion has wrong thunderbolt spell
  14824  Red Alert 3 Beta requires several functions of WinHttp to be implemented
  14885  [Morrowind] System freeze/reboot required after switching from wine to other apps
  15055  implement undocumented window message 0x0313 (WM_POPUPSYSTEMMENU)
  15233  FamiTracker 0.2.7 does not work
  15289  Warlords Battlecry II and III crash
  15446  Install Aware doesn't work with wine
  15595  Kyodai mahjong crashes
  15690  msvcrt: enumeration value not handled in switch
  15872  Games segfault with wine-1.1.7 and Ubuntu 8.10 intrepid Ibex
  15879  Lotus 6.5.4 - extermelly slow after update to Wine 1.1.6
  15898  unimplemented function advapi32.dll.LsaSetSecret, aborting
  15916  Winecfg: fails to open drive_c
  15930  ChangeWindowMessageFilter is not implemented
  15944  mountmgr only assign drive letters for up to two removable devices
  15950  wine won't build with bison 2.4
  15955  Tomb Raider underworld demo crashes at startup
  15972  Clicking close button in Word 2003 closes the window but not the program in 1.1.8
  15976  MS Exchange 2007 fails to install.
  15992  Sure Thing CD Labeller crashes when you start to try to use it
  15994  DirectX - D3DCAPS errors in WINE 1.1.8 BETA
  16024  typos in include/shlwapi.h
  16044  Cannot accept the Eula. Accept button disabled.
  16061  HEAP_FindSubHeap taking excessive CPU time
  16074  F.E.A.R in wine 1.1.8 regression
  16084  widl crash on vista x86

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

Changes since 1.1.8:

A C Hurst (1):
      ntdll: wine_nt_to_unix_file_name() parse string to int instead of cast char, where string may be passed.

Alexander Morozov (2):
      kernel32: NT drivers can handle IOCTL codes with HIWORD == 0.
      include: Remove declarations of undefined functions.

Alexandre Julliard (69):
      kernel32/tests: Fix some profile test failures on NT4.
      kernel32/tests: Fix some resource test failures on NT4.
      kernel32/tests: Fix the thread test on NT4.
      kernel32: Explicitly request execute permission in MapViewOfFile.
      ntdll/tests: Fix the atom test on NT4.
      ntdll: Don't call the dll entry point for native modules.
      mountmgr: Return the drive type even when the buffer is too small.
      kernel32: Get the drive type from the mount manager instead of the registry.
      ntdll/tests: Fix a couple of test failures on Vista.
      ntdll: Add support for root directory in NtCreateFile for Win32 file objects.
      kernel32: Implemented the Ex variants of CreateEvent/Mutex/Semaphore/WaitableTimer.
      ntdll/tests: Fixed more object manager tests on Vista.
      user32/tests: Fix window tests on various Windows versions.
      user32/tests: Skip the PM_QS_* PeekMessage tests on NT4.
      mountmgr: Make the device type more specific than what is possible with the standard Win32 drive types.
      user32/tests: Make sure the message test doesn't hang if the window doesn't have focus.
      msvcrt/tests: Trace the timezone being used.
      user32: Don't process other messages when recursing in peek_message for an internal message.
      kernel32: Don't request unneeded access in OpenFileMapping.
      kernel32/tests: Fix the thread test to cope with the Win95 InterlockedIncrement behavior.
      msvcrt/tests: Run time tests for the current year instead of 1970 and fix wrong DST assumptions.
      ole32/tests: Fix a couple of global stream test failures on Win9x.
      ole32/tests: Use a CLSID that is more likely to exist on old Windows versions.
      ole32/tests: Don't hardcode the Ansi codepage value.
      ole32/tests: Fix a couple of test failures on Win9x and NT4.
      ntdll: Added stubs for NtGetWriteWatch and NtResetWriteWatch.
      kernel32: Added GetWriteWatch and ResetWriteWatch.
      kernel32/tests: Added a bunch of tests for write watches.
      shell32/tests: Properly cleanup the created favorites shell folder.
      include: Added the IInternetProtocolEx interface.
      urlmon/tests: Accept IInternetProtocolEx interface id.
      kernel32/tests: Fix the file test on various Windows versions.
      ntdll: Add private function to manage system virtual views instead of abusing NtAllocateVirtualMemory.
      kernel32/tests: Fix the write watch tests on Win98 and Win2000.
      user32/tests: Fix the resource tests for various Windows versions.
      kernel32/tests: Fix pipe test on w2k3.
      user32: Fix FindWindow to not match an empty class name.
      ntdll: Don't set noexec protection on builtin dlls, some broken apps clear the execute permission.
      wintrust: Fix a buffer overflow.
      ntdll: Get rid of the unaligned_mmap wrapper.
      kernel32/test: Fix the timer queue tests on Vista.
      kernel32/tests: Fix the mailslot tests on Vista.
      kernel32/tests: Fix the process tests on NT4.
      ntdll: Increase subheap size quadratically to avoid slowdown when allocating tons of heap memory.
      kernel32/tests: Allow up to 2 seconds of difference in timestamps.
      kernel32: Moved allocation of the DOS memory area to ntdll.
      ntdll: Get rid of the Wine-specific MEM_SYSTEM flag.
      winetest: Capture the Win32 stderr into the log file too.
      winetest: Allow to specify a subset of tests to run on the command line.
      winetest: Report an error when a test program completely fails to run.
      make_makefiles: Add a target to build only the test directories.
      user32/tests: Fix a few more failures in the window test.
      kernel32/tests: Add a couple of tests for write watches.
      user32/tests: The BSF_SENDNOTIFYMESSAGE flag is not supported on NT4.
      user32/tests: Fix the cursor tests on Win9x.
      user32/tests: Fix the edit margins tests on Win9x.
      user32/tests: Fix wildcard directory lists handling for Win9x.
      user32/tests: Fix the monitor tests on NT4.
      user32/tests: Fix some of the sysparams tests on Win9x and NT4.
      user32/tests: Allow the foreground window to be null in the window tests.
      kernel32/tests: Fix test failures on Win9x and NT4.
      kernel32/tests: Fix the mailslot tests on Win9x.
      mshtml/tests: Avoid crashing on test failure.
      rpcrt4/tests: Fix test failures on Win9x.
      shell32/tests: Fix the systray tests on Win9x and NT4.
      urlmon/tests: Don't expect IHttpNegotiate2 queries if the interface is not supported.
      configure: Add a --disable-tests option to avoid building regression tests.
      user32/tests: Only test the window caption status if there is a foreground window.
      shdocvw: Fix the computation of the default extents.

Alistair Leslie-Hughes (12):
      advapi32: Correct spelling of SE_CHANGE_NOTIFY_PRIVILEGE.
      mshtml: Implement IHTMLStyle get/put posLeft.
      advapi32: Correct off by one in LookupPrivilegeValueW.
      shdocvw: Added Support for the IViewObjectEx interface.
      winmm: Increase tolerance range.
      mshtml: Add tests for supported interfaces.
      shdocvw: Correct tests.
      ntoskrnl.exe: Implement MmGetSystemRoutineAddress.
      mshtml: Implement IHTMLStyle get/put posTop.
      mshtml: Implement IDispatch for IHTMLCurrentStyle.
      mshtml: Implement IHTMLDocument2_get_images.
      version: VerQueryValueA/W allow blank and NULL strings.

Andrew Fenn (6):
      xinput1_3: Initial implementation.
      xinput9_1_0: Initial implementation.
      xinput1_1: Initial implementation.
      xinput1_2: Initial implementation.
      xinput: Added the function XInputGetState with test case.
      xinput: Added XInputGetCapabilities function with test case.

Andrew Nguyen (1):
      imagehlp: Rectify and add a forward.

Andrew Riedi (3):
      user32: Initial .ani support (only first frame).
      reg: const WCHAR -> static const WCHAR.
      user32: Fix the loading of stretched cursors.

Andrew Talbot (10):
      rsaenh: Sign-compare warnings fix.
      secur32: Sign-compare warning fix.
      setupapi: Sign-compare warnings fix.
      shell32: Sign-compare warnings fix.
      shlwapi: Sign-compare warnings fix.
      urlmon: Sign-compare warnings fix.
      msxml3: Void function should not return a value.
      widl: Remove superfluous semicolons.
      usp10: Sign-compare warnings fix.
      wined3d: Sign-compare warnings fix.

Aric Stewart (2):
      winhttp: Correct another difference between InternetCrackurl and WinHttpCrackUrl.
      imm32: Implement ImmInstallIME(W/A).

Austin English (2):
      include/shlwapi: Fix some typos.
      msvcrt: Fix a compiler warning.

Christian Costa (12):
      d3dxof: Allow template definitions in objects file.
      d3dxof: Close source file when releasing EnumObject.
      d3dxof: Increase max childs/subobjects and check the limit is not overcome.
      d3dxof: Finish strings support.
      d3dxof: Fix buffer overflow.
      d3dxof: Support also xfile version 3.03.
      d3dxof: Increase max objects and check limit.
      d3dxof: Add support for DXFILELOAD_FROMMEMORY.
      d3dxof: Prepare support for objects binary format.
      d3dxof: Allow '-' in names.
      d3dxof: Fix data buffer limit check. Increase size of input and data buffers.
      d3dxof: Finish support for objects binary format.

Damjan Jovanovic (4):
      winemenubuilder: Generate desktop files instead of wineshelllink.
      winemenubuilder: Moved all wineshelllink functionality to winemenubuilder and removed wineshelllink.
      shdocvw, winemenubuilder: Generate fd.o entries for .url files.
      user32: Handle NULL rectangles in WM_NCCALCSIZE.

Daniel Zimmermann (1):
      widl: Fix check for interface type in get_size_procformatstring.

David Adam (5):
      d3dx8: Simplify D3DXQuaternionInverse.
      quartz: Check for NULL condition in FilterGraph2_Disconnect.
      d3dx8: Implement D3DXMatrixAffineTransformation2D.
      d3dx8: Implement D3DXMatrixTransformation2D.
      d3dx8: Change the debug channel of d3dx8 into the generic d3dx.

Detlef Riekenberg (5):
      shlwapi/tests: Add more entries for PathIsURL.
      advapi32/tests: Fix tests on win9x (GetFileSecurity not implemented).
      advapi32/tests: Fix broken GetLastError tests.
      comctl32/tests: Make the header test dpi aware.
      shdocvw/tests: Make the webbrowser test dpi aware, make it pass in wine.

Dmitry Timoshkov (5):
      widl: Make the generated string pointers const as well.
      appwiz.cpl: Make some data static const.
      shell32: Make some data static const.
      shdocvw: Fix the COLOR_xxx usage.
      user32: Do not change focus if the window is no longer active.

Dylan Smith (9):
      richedit: Created initial tests for windowless richedit controls.
      richedit: Initial testing of ITextServices methods.
      richedit: Removed comment in header for non-existent wintest.c.
      include: Added missing macros for EM_SETIMESTATUS and EM_GETIMESTATUS.
      user32: Added message spy string for IME Status messages.
      richedit: Update strings and comments regarding IME Status messages.
      include: Fixed a typo for ITextHost::TxSetCaretPos declaration.
      richedit: Removed unused ME_AutoURLDetect function.
      richedit: Removed useless lines in ME_GetDefaultCharFormat.

Eric Pouech (6):
      winedump: Print detailed information about class/struct properties.
      dbghelp: Fix all forward declaration cases for UDT.
      winedbg: Rewrote the symbol picking mechanism so that it can handle several algorithms.
      winedbg: Slightly change the option setting syntax (allows also to get the current state back).
      winedbg: Added scoped symbol picker, and options to handle it.
      dbghelp: Properly add CPU info to minidump.

Florian Köberle (2):
      user32/tests: Capture tests should not require no active window.
      user32/tests: Test size and minmax of WS_THICKFRAME child.

Francois Gouget (31):
      gdiplus: Add a trailing '\n' to a Wine trace.
      shell32/tests: Remove spaces before '\n' in ok() calls.
      regedit: Remove unneeded variable initializations.
      regedit: Check that we were able to allocate line_buf too.
      regedit: line_size is supposed to track a string length.
      regedit: The xxx_name_len variables track buffer sizes. That is they count the trailing '\0'. Adjust a couple of places that got this wrong and rename them to xxx_name_size.
      regedit: Simplify REGPROC_export_string().
      regedit: Tighten a buffer size calculation.
      regedit: Simplify / clean up export_hkey().
      regedit: Fix a buffer overflow when exporting binary values in export_hkey().
      regedit: Fix the wrapping of binary values in export_hkey().
      d3dx9_36/tests: Fix compilation on systems that don't support nameless unions.
      inetcomm: Fix compilation on systems that don't support nameless unions.
      d3d10core: Fix spelling of 'unknown'.
      crypt32: Fix Spelling of 'superseded'.
      Assorted spelling fixes.
      msxml3: Dynamically load libxslt.so and only call xsltInit() if present.
      ntdll/tests: Fix typos in test_NtQueryValueKey().
      ntdll/tests: Test how NT(Set, Query)ValueKey() handle non-terminated strings.
      kernel32: Fix create_scsi_entry() so it puts properly '\0'-terminated strings in the registry.
      kernel32: Simplify and optimize create_(system,env)_registry_keys().
      msxml3: Fix compilation on systems that don't have xsltInit().
      regedit: Fix a buffer allocation in export_registry_key().
      regedit: Pass the string length to REGPROC_export_string().
      regedit: Fix exporting of REG_EXPAND_SZ and other 'weird' strings.
      regedit: Avoid wsprintfW() so we can avoid loading user32.dll for 'regedit /E'.
      ntdll/tests: Remove a redundant 'if'.
      advapi32/tests: Cleanup test_hkey_main_Value_[AW]().
      advapi32/tests: Fix the line number reported by test_hkey_main_Value_[AW]().
      advapi32/tests: Check how the registry APIs handle non-terminated strings.
      reg: Avoid wvsprintfW() so we can avoid loading user32.dll.

Hans Leidekker (15):
      inetcomm: Flesh out the pop3 command parser.
      inetcomm: Add an implementation of IPOP3Transport::CommandDELE.
      inetcomm: Add an implementation of IPOP3Transport::CommandNOOP.
      inetcomm: Add an implementation of IPOP3Transport::CommandRSET.
      inetcomm: Add an implementation of IPOP3Transport::CommandRETR.
      inetcomm: Add an implementation of IPOP3Transport::CommandTOP.
      inetcomm: Support both forms of the UIDL and LIST commands.
      inetcomm: Send a notification when disconnecting.
      user32: Add a stub implementation of ChangeWindowMessageFilter.
      inetcomm: Add an implementation of IVirtualStream.
      inetcomm: Get rid of the server info copy.
      mlang: Implement IMultiLanguage2::ConvertStringInIStream.
      winhttp: Reimplement WinHttpCrackUrl.
      winhttp: Add tests for WinHttpCrackUrl.
      winhttp: Prefer builtin over native.

Henri Verbeet (29):
      d3d10core: Add a d3d10core dll.
      d3d10core: Implement ID3D10Device in d3d10core instead of d3d10.
      d3d10core: Allow ID3D10Device to be aggregated.
      dxgi: Add a stub for DXGID3D10RegisterLayers.
      d3d10core: Implement D3D10CoreRegisterLayers.
      dxgi: Implement DXGID3D10RegisterLayers().
      dxgi: Implement DXGID3D10CreateDevice().
      d3d10core: Implement D3D10CoreCreateDevice().
      d3d10: Implement D3D10CreateDevice() on top of D3D10CoreCreateDevice().
      d3d10: Use the factory that created the adapter to create a swapchain.
      d3d10core: Add a trace for D3D10CoreCreateDevice().
      dxgi: Add some dxgi return codes.
      dxgi: Add a IWineD3D field to dxgi_factory.
      dxgi: Add an ordinal field to dxgi_adapter.
      dxgi: Add a wined3d device to dxgi_device.
      dxgi: Store an array of adapters in dxgi_factory.
      dxgi: Implement IDXGIFactory::EnumAdapters().
      dxgi: Add a test for DXGID3D10CreateDevice().
      d3d10core: Add a test for D3D10CoreCreateDevice().
      wininet: Treat an empty username as NULL in FTP_Connect().
      wined3d: Fix the cube map coordinates in surface_blt_to_drawable().
      wined3d: Make it more obvious the pshader path in shader_hw_map2gl() doesn't handle opcodes without parameters.
      wined3d: Give mov & mova their own handler.
      wined3d: Avoid using a stack buffer in a few places in shader_hw_map2gl().
      wined3d: wined3d_gl.h should be internal to wined3d.
      wined3d: Don't use the same GUID for IWineD3D and IWineD3DDevice.
      wined3d: Remove some unused code.
      dxgi: Implement IDXGIDevice::GetAdapter().
      dxgi: Implement IDXGIAdapter::GetParent().

Hirofumi Katayama (2):
      wordpad: Accept double-click in date and time dialog.
      wordpad: Update resources for date and time dialog.

Huw Davies (2):
      kernel32: Fix a few Welsh translations.
      ole32: Don't issue a warning if a flat copy is all that's required.

Hwang YunSong(황윤성) (2):
      winecfg: Updated Korean resource.
      oleacc: New Korean resource.

Jacek Caban (1):
      shdocvw: Revert "Added Support for the IViewObjectEx" with tests.

Juan Lang (28):
      crypt32: Don't underreport the size available when formatting szOID_AUTHORITY_KEY_IDENTIFIER2.
      crypt32: Fix off-by-one error in formatting szOID_AUTHORITY_KEY_IDENTIFIER2.
      crypt32: Implement formatting an alt name entry with type CERT_ALT_NAME_DIRECTORY_NAME.
      crypt32: Fix comment typo.
      crypt32: Fix indenting for szOID_CRL_DIST_POINTS.
      crypt32: Correct heading for a certificate issuer in a CERT_AUTHORITY_KEY_ID2.
      crypt32: Use correct string for directory names in a CERT_ALT_NAME_ENTRY.
      crypt32: Add a function to format a CERT_NAME_BLOB as an indented string, and implement CertNameToStrW on top of it.
      crypt32: Indent directory name when formatting an alt name entry.
      crypt32: When formatting a directory name as a multiline string, put a newline between the heading and the value.
      crypt32: Implement CryptFormatObject for alternate names.
      crypt32: Add tests for encoding/decoding CERT_POLICY_QUALIFIER_USER_NOTICE.
      crypt32: Implement encoding CERT_POLICY_QUALIFIER_USER_NOTICE.
      crypt32: Implement decoding CERT_POLICY_QUALIFIER_USER_NOTICE.
      crypt32: Add tests for encoding/decoding CERT_POLICIES_INFO.
      crypt32: Implement encoding CERT_POLICIES_INFO.
      crypt32: Implement decoding CERT_POLICIES_INFO.
      cryptdlg: Register/unregister the OID functions exported by cryptdlg.
      netapi32: Fix dead stores.
      include: Fix typos.
      include: Add a few missing definitions for Netscape cert extensions.
      crypt32: Implement CryptFormatObject for szOID_KEY_USAGE.
      crypt32: Implement CryptFormatObject for szOID_NETSCAPE_CERT_TYPE.
      crypt32: Fix failing tests on Win9x/NT4.
      crypt32: Decoded unicode name value strings should be NULL-terminated.
      crypt32: Check registered CryptFormatObject functions before using default hex format.
      crypt32: Formatted bits are always in a single line, regardless of dwFormatStrType.
      crypt32: Pass next data pointer when decoding a CRL dist point.

Kai Blin (1):
      advapi32: Implement LsaSetSecret stub.

Ken Thomases (1):
      ntdll: Don't poll() on a normal file; it should never block.

Lei Zhang (2):
      comctl32: Check for NULL input in TAB_AdjustRect.
      quartz: Reaching a renderer in the filtergraph is not an  error.

Maarten Lankhorst (2):
      Revert "quartz: Reaching a renderer in the filtergraph is not an error."
      quartz: Fix FilterGraph2_Connect to be thread-safe and not recurse infinitely.

Marcus Meissner (1):
      shdocvw: Fixed buffer size to GetPrivateProfileStringW.

Nicolas Le Cam (2):
      winspool.drv/tests: Fix a test on all platforms.
      crypt32/tests: Fix a failing test on win2000.

Nikolay Sivov (3):
      gdiplus: Added GdipGetTextContrast.
      gdiplus: Added GdipSetTextContrast.
      gdiplus: Return some token value on startup.

Paul Chitescu (1):
      user32: Unimplemented SystemParametersInfoW actions display fixme only once.

Paul Vriens (25):
      ole32/tests: Don't crash on NT4.
      advapi32/tests: Fix valgrind warning.
      urlmon/tests: Skip some tests on Win9x and WinMe.
      urlmon/tests: Fix failures on Win9x and WinMe.
      wininet/tests: Fix a test failure on some Win98 boxes.
      msi/tests: Fix some test failures on Win9x and WinMe.
      winmm/tests: Fix a test failure on Vista and W2K8.
      setupapi/tests: Fix some failures on Win9x and WinMe.
      ddraw/tests: Fix a typo.
      ddraw/tests: Skip tests when DirectDraw4 is not supported.
      snmpapi/tests: Fix failures on NT4 and below.
      crypt32/tests: Skip some tests if needed.
      crypt32/tests: Fix a test failure on Vista and W2K8.
      gdi32/tests: Fix a few failures on Win9x and WinMe.
      msi/tests: Skip some tests on Win9x and WinMe.
      quartz/tests: Fix a few failures on Win95 and NT4.
      setupapi/tests: Don't use hardcoded C: for the system drive.
      kernel32/tests: Fix timeouts on NT4 and W2K.
      msi/tests: Skip tests on win9x by checking functionality instead of registry keys.
      user32/tests: Fix a test failure on Win9x, WinMe and NT4.
      winetest: Give the 'Running' progress bar the same size as the others.
      user32/tests: Don't crash on Win95.
      comdlg32/tests 1/2: Fix a test failure on XP and W2K3.
      comdlg32/tests 2/2: Fix a test failure on Win9x.
      user32/tests: Fix a few test failures on Win9x.

Peter Dons Tychsen (5):
      winedos: Add support for decoding and displaying the 4 bit CGA framebuffer.
      winedos: Add support for the Color Control Register (CGA).
      winedos: Implement int10 CGA palette control.
      winedos: Implement VGA_WritePixel for int10 service in CGA mode.
      winedos: Implement mode control register, and the 160x200x4 display mode that it opens.

Reece Dunn (2):
      uxtheme: Add stubs for the double buffer drawing API in Vista.
      uxtheme: Draw the correct part of the themed parent background to the DC.

Ricardo Filipe (27):
      appwiz.cpl: Added Portuguese translation.
      browseui: Added Portuguese translation.
      credui: Added Portuguese translation.
      gphoto2.ds: Added Portuguese translation.
      localspl: Added Portuguese translation.
      localui: Added Portuguese translation.
      msvidc32: Added Portuguese translation.
      shdoclc: Added Portuguese translation.
      wldap32: Added Portuguese translation.
      hhctrl.ocx: Added Portuguese translation.
      crypt32: Added Portuguese translation.
      winspool.drv: Added Portuguese translation.
      cabinet: Fix dead stores (llvm/clang).
      dbghelp: Fixed dead store (llvm/clang).
      gdi32: Fix dead store (llvm/clang).
      iphlpapi: Fixed dead store (llvm/clang).
      mlang: Fixed dead stores (llvm/clang).
      oleaut32: Fixed dead increment (llvm/clang).
      ntdll: Fixed dead store (llvm/clang).
      rpcrt4: Fixed dead increments (llvm/clang).
      msxml3: Check some dead store results (llvm/clang).
      sane.ds: Check dead stored status (llvm/clang).
      comctl32: Removed dead store (llvm/clang).
      comctl32: Removed dead increment (llvm/clang).
      comctl32: Removed dead increment (llvm/clang).
      comctl32: Remove dead stores (llvm/clang).
      atl: Remove dead store (llvm/clang).

Roderick Colenbrander (1):
      wined3d: Add two missing D3D8/D3D9 capabilities.

Ryan Schmidt (1):
      jscript: Fix build with bison 2.4.

Stefan Dösinger (3):
      wined3d: Make sure the arbfp pipeline replacement constants are loaded.
      d3d9: Test psize_min vs psize_max vs psize behavior.
      wined3d: Rename the fragment ffp desc structures.

Tony Wasserka (3):
      d3dx9: Implement ID3DXSprite_Begin/End.
      d3dx9: Implement ID3DXSprite_Flush.
      d3dx9: Implement ID3DXSprite_GetDevice.

Vincent Povirk (4):
      msiexec: Build with -mwindows.
      comctl32: Do not repaint on TBM_SETPOS if position is unchanged.
      gdiplus: Fix GdipFlattenPath for already-flat paths and add a test.
      gdiplus: Restore a line I removed by mistake.

Vitaliy Margolen (1):
      user32/tests: Print line numbers of callers in check_wnd_state to help debugging.

--
Alexandre Julliard
julliard@winehq.org
