The Wine development release 1.1.5 is now available.

What's new in this release (see below for details):
  - Substantial JavaScript implementation.
  - Partial support for layered windows.
  - Support for Unicode file export in Regedit.
  - Proper exception handling in widl-generated code.
  - Asynchronous requests and cookies support in WinHTTP.
  - Various bug fixes.

The source is available from the following locations:

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

   3888  print page range defaults to 1 to 65535 pages on graphical applications
   4581  failure of CreateScalableFontResourceA and Unhandled page fault in MathWorkshop
   4875  Deliplayer doesn't fully open saying it can't open DeliUI
   4987  Close combat 3 crashes with backtrace
   5243  Hyperlobby: runtime error 430
   5423  AOL AIM won't install: complains about minimum requirements
   6496  Defcon crashes in ws2_32
   7026  Formula objects in Word 97 always trigger unhandled page fault
   7598  Regedit cannot import/export version 5 registry files
   7600  Regedit Metabug: get regedit working perfectly
   7670  No battle sounds in Guild Wars
   7851  Warrock installer crash
   8674  Safari crashes on startup
   8763  Evernote crashes
   9014  MS Office 2007 Home and Student edition installer crashes
   9364  Call from 0x7b840a80 to unimplemented function gdiplus.dll.GdipSetLinePresetBlend
   9558  FIFA2002 demo crashes, dsound/alsa
   9659  Guild Wars: Rendering of 3D models broken
   9777  Silencer doesn't fully connect to lobby server.
   9838  Input Method's output overruns the buffer of wine keyboard input
   9915  cookies not set within steam
   9961  SEH stack overflow exception in Kuma Games
   9973  Bioshock demo: crashes on loading screen
  10092  Problems with ole on Interfax-Direct
  10117  Mpeg2Schnitt doesn't display video since wine v. 0.9.16
  10167  sacred: Sacred crashes randomly after several actions in game
  10628  Portal must be launched twice to run properly
  10725  excel page faults and exits
  11194  FileZilla 3.0.5.2 crashes if changing local working directory
  11337  Cannot select a format option for numeric values in Excel 2003
  11445  Medieval 2: Total War: water covers the land
  11494  Speed Commander 12 does not install
  12049  Regression running "Splinter Cell:Pandora Tomorrow"
  12241  D3D9: Visual test fails
  12314  Photoshop CS2 tab doesn't really really hide windows
  12432  MotoGP 3: Crashes when attempting to configure controllers
  12534  Cepstral voice configuration tools are not displayed in the control panel
  12576  BYOND: Clicking url doesn't launch native browser
  12577  BYOND: Crashing on login
  12647  Cepstral voices garble the first part of the sentence they are reading
  12679  Trackmania nations forever does not install Openal
  12778  Progecad smart! crashes on save/save us
  12830  Xenocode Virtual Appliance Runtime Error
  12843  A-ray crashes on startup
  12879  Cluster size not supported for large NFS mounts?
  12992  Excel 2007 Crashes immediately on start up.
  12998  FtpVC applicaton does not run
  13058  BYOND Suite: Browser windows do not function / crash DreamSeeker.
  13220  warcraft 3 sound stops after a while
  13441  Sopcast generate a crash while using, native wmvcore.dll
  13643  ddraw tests fail on XP SP2 with Radeon Mobility 9000 card
  13723  Sound buffer freed by both winealsa.drv and dsound
  13742  installation of WISO 2007 failed
  13990  Spore Creature Creature:  Failed to connect to license server
  14131  No sound in Morrowind using software mixing
  14250  richedit: Deleting text at end of edit control is improperly handled
  14374  Diablo2:LOD Digital Distribution: "Agree" button never enables
  14381  Google Lively installer aborts because of missing directx registry entry
  14403  VFP8-SP1-Runtime crashes on a certain function
  14410  orb installer aborts, unimplemented function gdiplus.dll.GdipGetPropertyItem
  14567  Shell32 IAutoCompleteDropDown needed for VS.NET 2005 and other tools which use MS DevEnv UI engine
  14595  UnrealTournament: General Protection fault!
  14639  ngen.exe from .NET 2.0 show exception E_INVALIDARG when trying to compile an assembly
  14670  Installer doesn't allow for the Accept button to be clicked on the license agreement
  14787  widl fails to honour typedef ptr attributes
  14846  Raising exception for SC_RPC_HANDLE being NULL
  14959  No ingame sound in Diablo 2 anymore since update
  14994  Haskell's removeDirectoryRecursive fails on Wine
  15033  intermittant crashes while playing bf1942
  15093  Rome Total War: water is not rendered on the campaign map
  15107  Google Chrome fails to load web pages.
  15119  Google Chrome on Wine 1.1.3 does not load pages over HTTPS
  15125  Flashplayer crashes when used with an IMC
  15130  Wine notepad: Extension behaviour differ from Windows
  15141  In Google Chrome, embedded flash window does not scroll with main window
  15179  Parallel install in multiple jobs as in "make -j99 install" fails
  15197  Several fonts don't appear in Adobe Photoshop CS
  15201  Google Chrome crashes when downloading an exe file
  15209  winedbg has an infinite loop at wine/programs/winedbg/memory.c:426
  15227  orb installer crashes when showing eula
  15252  moving/resizing undecorated windows broken in dual-screen setups
  15260  objects in spore leave trails
  15266  jscript: engine.c - unitialized variable

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

Changes since 1.1.4:

Alexander Dorofeyev (1):
      quartz/tests: Fix potential NULL dereference (Coverity).

Alexander Nicolaysen Sørnes (5):
      notepad: Only append .txt to missing files without a dot in them.
      regedit: Convert parts of export handling to unicode.
      regedit: Fix importing REG_MULTI_SZ values for ANSI files.
      regedit: Gather a full string before exporting it.
      regedit: Add support for exporting unicode files.

Alexandre Julliard (56):
      makefile: Fix dependency for programs install.
      winex11: Moved the X11DRV_WindowMessage function to window.c.
      winex11: Support setting the window region on windows belonging to other threads.
      user32: Fix DeferWindowPos to work on windows belonging to other processes.
      configure: Fixed the check for sigset_t on mingw.
      mstask/tests: Use case-insensitive compare for file names.
      kernel32: Added implementation for UnregisterWaitEx.
      jscript: Add necessary dependencies for the bison file.
      kernel32/tests: Fix the async I/O test to handle errors properly.
      kernel32/tests: Fix the BindIoCompletionCallback test on Vista.
      kernel32/tests: Fix the ResumeThread on win9x.
      ntdll/tests: Fix the async I/O test on Vista.
      rpcrt4/tests: Fix a couple of test failures on Windows.
      winex11: Remove debug hack that slipped into commit a4a5a2ec121eeb2a7cd4ffbb5ba7b298f2a050b1.
      winex11: Fixed mapping of the move/resize starting point to X11 root coordinates.
      user32: Notify the user driver about window extended style changes too.
      server: Implemented the server side of Get/SetLayeredWindowAttributes.
      user32/tests: Added some tests for Get/SetLayeredWindowAttributes.
      user32: Add a SetLayeredWindowAttributes driver entry point.
      winex11: Driver-side implementation of SetLayeredWindowAttributes.
      inetcomm: Avoid a compiler warning.
      user32/tests: Ignore some more messages.
      user32/tests: Fix a test that fails on all Windows versions.
      include: Added definition for  RPC_BAD_STUB_DATA_EXCEPTION_FILTER.
      widl: Create an explicit structure for the function frame of all generated functions.
      widl: Make the exception handling macros more general and use the same code everywhere.
      widl: Infrastructure for adding a prefix to local variable references.
      widl: Separate declaration and initialisation for indirect arguments.
      widl: Implemented __finally support in stub functions.
      widl: Implemented __finally support in server functions.
      widl: Implemented __finally support in client functions.
      widl: Implemented RpcAbnormalTermination in the generic exception handling code.
      widl: Remove unnecessary casts in the generated code.
      ntdll: Hardcode the filesystem cluster size to avoid trouble on NFS.
      user32/tests: Fix a number of message test failures on various Windows versions.
      user32: Don't reinitialize the window placement even if the window rect is empty.
      user32: Implemented UpdateLayeredWindow and UpdateLayeredWindowIndirect.
      ntdll/tests: Clear the direction flag in the handler since Windows may not do it.
      kernel32/tests: Fix a test on win9x.
      kernel32/tests: Support alternate results in the loader test on Vista.
      kernel32/tests: Comment out an UpdateResource call that causes failures.
      user32/tests: Fix some test failures on XP.
      mstask/tests: Fix test failures on XP.
      shlwapi/tests: SHLWAPI.23 apparently returns an HRESULT on Vista.
      user32/tests: Cope with last error behavior on Vista.
      user32/tests: Fix some test failures on win9x.
      kernel32/tests: Handle the win2k3 version check behavior.
      winex11: Force the X11 size of zero-sized window to always be 1x1.
      winex11: Don't try to retrieve the X11 size on ShowWindow for zero-sized windows.
      winex11: Ignore the initial WM_STATE transition out of withdrawn state.
      winex11: Compare the window position against the cached position in ConfigureNotify.
      user32/tests: Fix a few more message test failures.
      gdi32/tests: Skip test that depends on Tahoma if it isn't installed.
      kernel32/tests: Fix race condition in the thread test.
      kernel32/tests: Fix a couple of tests failing on NT4.
      ntdll/tests: Fix a couple of tests failing on NT4.

Alistair Leslie-Hughes (25):
      mshtml: Implement IHTMLBodyElement get/put bgColor.
      mshtml: Add IHTMLBodyElement bgColor tests.
      mshtml: Implement IDispatch for IHTMLDocument3.
      mshtml: Implement IDispatch for IHTMLDocument4.
      mshtml: Implement IDispatch for IHTMLDOMTextNode.
      mshtml: Implement IDispatch for IHTMLImgElement.
      mshtml: Implement IDispatch for IHTMLTextContainer.
      mshtml: Implement IDispatch for IHTMLScriptElement.
      mshtml: Implement IDispatch for IHTMLGenericElement.
      mshtml: Implement IDispatch for IHTMLOptionElement.
      mshtml: Implement IDispatch for IHTMLTextAreaElement.
      mshtml: Implement IDispatch for IHTMLInputElement.
      mshtml: Implement IDispatch for IHTMLDocument5.
      mshtml: Implement IDispatch for IHTMLTable.
      mshtml: Implement HTMLElement2 get_scrollLeft.
      mshtml: Implement IHTMLTextContainer get_scrollLeft.
      mshtml: Add tests for get_scrollLeft.
      hlink: Mark Get/Set AdditionalParams as Unimplemented.
      mshtml: Implement get/put margin.
      mshtml: Add IHTMLStyle margin tests.
      msxml3: Add IXMLDOMCharacterData to IXMLDOMCDATASection.
      msxml3: Add IXMLDOMCharacterData to IXMLDOMComment.
      msxml3: Correct test.
      msxml3: Correct IDispatchEx Invoke to return the correct object.
      mshtml: Implement IHTMLBody get/put_Text.

Allan Tong (1):
      wined3d: Fix Geforce9 detection.

Andrew Talbot (5):
      qcap: Sign-compare warning fix.
      qmgr: Sign-compare warnings fix.
      shdocvw: Sign-compare warnings fix.
      msi: Uninitialized variable fix (Coverity).
      comctl32: Sign-compare warnings fix.

Aric Stewart (6):
      mlang: Expand stub of fnIMLangFontLink2_GetStrCodePages.
      imm32: Implement helper functions for copying CompositionString data out of the IME. Standardize ImmGetCompositionStringA/W to use a common T function.
      imm32: Correct CopyCompAttrIMEtoClient to handle A->W and W->A conversions.
      imm32: Update CopyCompClauseIMEtoClient to handle A->W and W->A conversions.
      imm32: Update CopyCompOffsetIMEtoClient to handle A->W and W->A conversions.
      imm32: Include a basic ImmGetCompositionString test checking ATTR lengths.

Austin English (1):
      widl: Remove unreached code (Smatch).

Christian Costa (3):
      d3dxof: Simplify parsing.
      d3dxof: Implement object parsing in text mode.
      d3dxof: Fix IDirectXFileDataImpl_GetType.

Damjan Jovanovic (1):
      ws2_32: Only enable FD_WRITE on short sends.

David Adam (1):
      appwiz: Fix some typos in the French resource.

Detlef Riekenberg (8):
      include: Update RASCONN and error codes.
      rasapi32/tests: Trace the correct variable.
      oleaut32: Dump parameter and SYSKIND for LHashValOfNameSysA.
      shlwapi: Add a stub for SHSetDefaultDialogFont.
      advapi32: Remove outdated comment.
      localspl: Implement AddMonitor.
      winspool: Use the backend for AddMonitor.
      dlls: Do not use __WINE_ALLOC_SIZE between void and *.

Dmitry Timoshkov (11):
      gdi32: Don't use pOS2->usWeightClass, some fonts don't set it correctly.
      winex11.drv: Fix the scan codes keypad keys section to match the vkeys one.
      kernel32: Use a kernel error code.
      winedevice: Wine PE loader is able to resolve forwards to not yet loaded modules.
      user32: Make GetMonitorInfoW print the monitor properties.
      user32: Implement SystemParametersInfo(SPI_GETWORKAREA) properly.
      user32: Fix the work area test to pass on Windows when the taskbar is on top.
      winhttp: Add some tests for set/query option, make them pass under Wine.
      jscript: Fix the uninitialized variable warning.
      kernel32: Fix the target buffer size.
      winhttp: Move common code to the upper level, avoid accessing the buffer before the buffer size check, make the code conform to existing rules.

Dylan Smith (10):
      richedit: Avoid acting on control words in skipped RTF groups.
      richedit: Don't put cursor in the table row start paragraph.
      richedit: Enter at the end of a table row appends a new row.
      richedit: Enter inserts newline before table at start of document.
      richedit: Make sure the nested tables' RTF properties are not skipped.
      richedit: Fixed bugs in handling unterminated nested tables in RTF.
      richedit: Prevent buffer overrun for tab stops buffer.
      richedit: Handle deletion at the end of text properly.
      richedit: Avoid unconditionally rewrapping text on scroll.
      richedit: Removed a redundant condition.

Eric Pouech (6):
      dbghelp: Fixed offset computation for bitfields inside structures in Codeview debug information.
      dbghelp: Correctly setup the Unix regular expression for matching file names in SymEnumLines.
      winedbg: Also handle 1 byte signed int as they were char (PDB files are done like this... sigh).
      dbghelp: Use the correct size for global variable when searching for a symbol.
      dbghelp: Silence 0x112c symbol type.
      dbghelp: While loading MSC debug info, don't handle public symbol at once, but delay their handling after all other symbols are loaded.

Erik Inge Bolsø (2):
      winealsa.drv: fix typo in IDsCaptureDriverImpl_Open.
      wineesd.drv: Allow all errors to interrupt recording.

Florian Köberle (1):
      winedbg: Fixed an infinite loop.

Francois Gouget (7):
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      jscript: Fix compilation with older bison.
      crypt32/tests: Win98 is missing Crypt{Encode,Decode}ObjectEx().
      ws2_32/tests: Fix a race in sock.c:test_write_events().
      mshtml/tests: Add a trailing '\n' to an ok() call.
      d3dx9_36: Fix compilation on systems that don't support nameless unions.
      gdiplus: Add some documentation stubs to make winapicheck happy.

Gerald Pfeifer (2):
      wordpad: Shed off unused parameters from on_fontlist_modified, OnCreate, OnUser, OnNotify, and OnInitPopupMenu.
      comctl32: Remove unused paramters from MONTHCAL_GetRange, MONTHCAL_MouseMove, and MONTHCAL_Create.

Hans Leidekker (22):
      winhttp: Start sending async completion notifications. Add corresponding tests.
      winhttp: Implement WINHTTP_OPTION_SERVER_CERT_CONTEXT.
      winhttp: The last parameter of WinHttpWriteData is optional.
      winhttp: Use a process global SSL context instead of per connection.
      winhttp: Add the remaining completion notifications.
      winhttp: Support asynchronous requests.
      winhttp: Option WINHTTP_OPTION_SERVER_CERT_CONTEXT must return a pointer.
      winhttp: WinHttpQueryDataAvailable should do a blocking read if more data is expected.
      winhttp: Make sure not to read more data than expected on a redirect.
      winhttp: Don't loop on response codes other than 301 and 302.
      winhttp: Increase sleep between two tests that connect to the same host.
      winhttp: Better diagnostics in the notification test.
      cryptui: Add a stub implementation of CryptUIDlgViewCertificateW.
      winhttp: Handle relative redirects.
      winhttp: Redirects are always GET requests.
      winhttp: Preserve cookies on redirects.
      winhttp: Strip content-type/length headers from request on a redirect.
      winhttp: Reset content length when all data has been read.
      winhttp: Move handling of default request parameters back to WinHttpOpenRequest.
      winhttp: Manage a session global cookie cache.
      winhttp: Fix logic inversion bug in setting disable flags.
      winhttp: Close the network connection if necessary.

Henri Verbeet (28):
      sspi: SECBUFFER_HEADER should be called SECBUFFER_STREAM_HEADER.
      wined3d: Translate one pixel down after flipping for offscreen rendering.
      wined3d: Fix the half pixel offset.
      wined3d: Correct a comment.
      d3d9: GetDepthStencilSurface returns D3DERR_NOTFOUND when no depth stencil is present.
      d3d8: GetDepthStencilSurface returns D3DERR_NOTFOUND when no depth stencil is present.
      d3d8: Fix IDirect3DDevice8::SetRenderTarget().
      wined3d: Reset the auto depth stencil.
      d3d9: Only run the reset test once.
      d3d9: Add a test for auto depth stencil reset.
      d3d8: Add a test for auto depth stencil reset.
      wined3d: Make some GLSL structs and functions private to the backend.
      Make some ARB program structs and functions private to the backend.
      wined3d: Improve a TRACE.
      wined3d: IWineD3DCubeTextureImpl implements IID_IWineD3DCubeTexture, not IID_IWineD3DTexture.
      wined3d: Use the internal format for renderbuffer storage.
      wined3d: Clarify a comment.
      wined3d: Remove some assumptions that PreLoad() will always bind the texture.
      wined3d: Don't assume the texture is bound in IWineD3DVolumeImpl_LoadTexture().
      wined3d: Don't needlessly bind the texture in PreLoad().
      wined3d: Make the debug channels more consistent.
      wined3d: Add a checkGLcall() at the end of loadTexCoords().
      wined3d: Move FBO handling functions to context.c.
      wined3d: Split off a function for applying an attachment's filter states.
      wined3d: Handle drawbuffers in context_apply_fbo_state() instead of context_set_render_target_fbo().
      wined3d: Get rid of context_set_render_target_fbo().
      wined3d: Get rid of context_set_depth_stencil_fbo().
      wined3d: Create a FBO for each combination of render targets and depth stencil.

Hirofumi Katayama (1):
      notepad: Cancel closing window by cancelling "Save As" dialog box.

Huw Davies (28):
      winex11.drv: Fix SetDIBits optimization to work with top-down dib sections.
      include: Add some more mimeole errors.
      inetcomm: Add a stub MimeInternational object.
      inetcomm/tests: Start of IMimeInternational tests.
      mlang: Forward IMultiLanguage_GetCharsetInfo to IMultiLanguage3_GetCharsetInfo.
      inetcomm: Implement IMimeInternational_FindCharset.
      inetcomm/tests: Tests for IMimeInternational_FindCharset.
      inetcomm: Implement IMimeInternational_GetCharsetInfo.
      inetcomm/tests: Add tests for IMimeInternational_GetCharsetInfo.
      inetcomm: Implement IMimeInternational_GetCodePageCharset.
      inetcomm/tests: Add tests for IMimeInternational_GetCodePageCharset.
      inetcomm: Implement IMimeInternational_GetDefaultCharset.
      inetcomm/tests: Add test for IMimeInternational_GetDefaultCharset.
      inetcomm: Implement IMimeInternational_SetDefaultCharset.
      inetcomm/tests: Add a test for IMimeInternational_SetDefaultCharset.
      inetcomm: Add a missing function and fix some idl.
      inetcomm: Implement IMimeInternational_CanConvertCodePages.
      inetcomm: Fix some more idl.
      inetcomm: Implement IMimeInternational_ConvertBuffer.
      inetcomm/tests: Tests for IMimeInternational_ConvertBuffer.
      oleaut32: Add support for VT_INT and VT_UINT constants.
      oleaut32: Use V_INT instead of V_UNION.
      inetcomm: Implement IMimeInternational_ConvertString.
      inetcomm/tests: Add tests for IMimeInternational_ConvertString.
      inetcomm: Implement MimeOleGetCharsetInfo.
      include: Fill in IMimeEnumProperties.
      inetcomm: Make variable static to fix crash on process detach.
      gdi32: Factor out the name table lookup into a separate function.

Ismael Barros (1):
      dplayx: Fix static overrun of pDP array in test (Coverity).

Jacek Caban (123):
      jscript: Store more data in DispatchEx object.
      jscript: Added GetDispID implementation.
      jscript: Added InvokeEx implementation.
      jscript: Added GetNextDispID implementation.
      jscript: Added DeleteMemberByName implementation.
      jscript: Added GetMemberName implementation.
      jscript: Added expression statement implementation.
      jscript: Added identifier expression implementation.
      jscript: Added AddNamedItem implementation.
      jscript: Added global object implementation.
      jscript: Added assign expression implementation.
      jscript: Added literal expression implementation.
      jscript: Added assignment test.
      jscript: Added scope chain implementation.
      jscript: Added variable object handling.
      jscript: Added call expression implementation.
      jscript: Added infrastructure for test scripts.
      jscript: Added logical negation implementation.
      jscript: Added var statement implementation.
      jscript: Added '===' expression implementation.
      jscript: Added '!==' expression implementation.
      jscript: Added function object stub implementation.
      jscript: Added member expression implementation.
      jscript: Added Function.length implementation.
      jscript: Add static functions to variable objects.
      jscript: Added Object constructor object implementation.
      jscript: Added String constructor object.
      jscript: Added Array constructor object implementation.
      jscript: Added Boolean constructor object.
      jscript: Added Number constructor object implementation.
      jscript: Added RegExp constructor object implementation.
      jscript: Added Math object stub implementation.
      jscript: Added typeof expression implementation.
      jscript: Added this expression implementation.
      jscript: Added return statement implementation.
      jscript: Added Function.[[call]] implementation.
      jscript: Set parameters on function call.
      jscript: Set arguments object on function call.
      jscript: Added array expression implementation.
      jscript: Added 'new' expression implementation.
      jscript: Added Object constructor implementation.
      jscript: Added constructor invokation from Function object support.
      jscript: Added function expression implementation.
      jscript: Added initial prototype of functions.
      jscript: Release named items in IActiveScript::Close.
      jscript: Added IActiveScriptParseProcedure2::ParseProcedureText implementation.
      jscript: Added if statement implementation.
      jscript: Added object initialiser expression implementation.
      jscript: Added block statement implementation.
      jscript: Added conditional expression implementation.
      jscript: Added script types tests.
      jscript: Added add expression implementation.
      jscript: Added '+=' expression implementation.
      jscript: Added '||' expression implementation.
      jscript: Added '&&' expression implementation.
      jscript: Added '<' expression implementation.
      jscript: Added '<=' implementation.
      jscript: Added '>' expression implementation.
      jscript: Added '>=' expression implementation.
      jscript: Added prefix increment expression.
      jscript: Added prefix decrement expression implementation.
      jscript: Added postfix increment expression implementation.
      jscript: Added postfix decrement expression implementation.
      mshtml: Added body dispatch id test.
      jscript: Added missing RegExp properties.
      jscript: Added Array constructor implementation.
      jscript: Added Array.length implementation.
      jscript: Added ArrayInstance::on_put implementation.
      jscript: Added parser support for regular expressions.
      jscript: Reuse temporary heap.
      jscript: Added regular expression  compiler based on Mozilla regexp implementation.
      jscript: Added string to object conversion implementation.
      jscript: Added String.match implementation.
      jscript: Added RegExp tests.
      jscript: Added try statement implementation.
      jscript: Added throw statement implementation.
      jscript: Added to_object(VT_BOOL) implementation.
      jscript: Added to_object(number) implementation.
      jscript: Added '-' expression implementation.
      jscript: Added '-=' expression implementation.
      jscript: Added '*' expression implementation.
      jscript: Added '*=' expression implementation.
      jscript: Added '/' expression implementation.
      jscript: Added '/=' expression implementation.
      jscript: Added minus expression implementation.
      jscript: Fixed allocation of script buffer.
      mshtml: Fixed tests on IE7.
      jscript: Added '==' expression implementation.
      jscript: Added '!=' expression implementation.
      jscript: Added 'new' expression implementation.
      jscript: Added switch statement implementation.
      jscript: Added break statement implementation.
      jscript: Added '|' expression implementation.
      jscript: Added '|=' expression implementation.
      jscript: Added '&' expression implementation.
      jscript: Added '&=' expression implementation.
      jscript: Added '^' expression implementation.
      jscript: Added '^=' expression implementation.
      jscript: Added ',' expression implementation.
      jscript: Added '~' expression implementation.
      jscript: Added plus expression implementation.
      jscript: Added bool and null to number conversion implementation.
      jscript: Added eval implementation.
      jscript: Added array literal implementation.
      jscript: Added to_string(VT_I4) implementation.
      jscript: Added String.length implementation.
      jscript: Added while and do..while statement implementation.
      jscript: Added continue statement implementation.
      jscript: Added for statement implementation.
      jscript: Added void expression implementation.
      jscript: Added String.charAt implementation.
      jscript: Added for..in statement implementation.
      jscript: Added delete expression implementation.
      jscript: Added with statement implementation.
      jscript: Added '<<' expression implementation.
      jscript: Added '>>' expression implementation.
      jscript: Added '>>>' expression implementation.
      jscript: Added '<<=' expression implementation.
      jscript: Added '>>=' expression implementation.
      jscript: Added '>>>=' expression implementation.
      jscript: Minor fixes.
      jscript: Added more to_string implementation.
      jscript: Added function constructor object.

James Hawkins (32):
      advapi32: ERROR_IO_PENDING is returned in Vista only on success.
      crypt32: Trace the returned value on failure.
      msi: Actions should be run even if the installed state is the same as the requested state.
      msi: Make sure read-only source files are set writable after being copied.
      riched20: Fix several failing test across several platforms.
      comctl32: Fix two failing tests in win98.
      comctl32: Fix several failing tests in win98.
      comctl32: Allow a little slop in the status bar metric tests.
      comctl32: Fix a couple failing tests in win98.
      comctl32: Fix a failing test in win98.
      comctl32: Fix several test failures in win98.
      comctl32: Fix a typo.
      comctl32: Fix a failing test for some platforms.
      comctl32: Trace the first day of the week.
      comctl32: Fix two test failures in win2000.
      riched20: Fix two typos that cause a failing test.
      msi: Fix a few file access discrepancies between platforms.
      urlmon: Fix a failing test with IE7.
      urlmon: Fix several failing tests with IE7.
      ole32: Fix a few file access discrepancies between platforms.
      comctl32: Store the previous timeout value to test with.
      secur32: Fix two failing tests in win2k.
      shell32: Fix two failing tests in win2k.
      mstask: Fix a few failing tests in win2k.
      crypt32: Fix a failing test in win9x.
      crypt32: Fix a failing test in Vista.
      crypt32: Fix a failing test in Vista.
      setupapi: Fix a failing test in Vista.
      setupapi: Remove a test of an undocumented function that is inconsistent across platforms.
      shell32: Remove calls to unicode functions that aren't implemented in win9x.
      comctl32: Fix several failing tests in win95.
      comctl32: Fix the remaining broken tests in win95.

Jan de Mooij (1):
      comctl32/treeview: Fix pszText NULL pointer dereference.

Jeff Zaroyko (5):
      wined3d: Add missing HeapFree.
      ws2_32: ioctlsocket should try to check if argp is valid.
      dsound: Fix a few failing tests and a crash on 2008 (revised).
      kernel32: Modify DeleteFileW to fail on directories.
      dsound: Fix a failing test on XP.

John Klehm (4):
      wintab32: Support overlap statuses in WTOverlap.
      wintab32: Support overlap statuses in WTOpen.
      wintab32: Support overlap statuses in WTEnable.
      gdiplus: Stub implementation of GdipGetImageDecoders and GdipGetImageDecodersSize.

Juan Lang (31):
      crypt32: Check length of sequence before checking tag.
      crypt32: Don't store redundant copy of detached hash message data.
      crypt32: Add stub for CryptVerifyMessageHash.
      crypt32: Add tests for CryptVerifyMessageHash.
      crypt32: Implement CryptVerifyMessageHash.
      crypt32: Don't crash when asked to verify a signature before the content has been finalized.
      crypt32: Test verifying the signature of a detached signed message.
      crypt32: Add stub for CryptVerifyDetachedMessageSignature.
      crypt32: Add tests for CryptVerifyDetachedMessageSignature.
      crypt32: Implement CryptVerifyDetachedMessageSignature.
      crypt32: Simplify CryptVerifyMessageSignature.
      cabinet: Use helper function to remove duplicate code.
      cabinet: Use helper function to remove duplicate code.
      crypt32: Assert condition that can occur only in case of a bug.
      crypt32: Fix typo. Fixes Coverity item 605.
      crypt32: Return FALSE rather than crash if memory allocation fails. Fixes Coverity id 135.
      crypt32: Get rid of a magic number and a redundant assignment.
      winhttp: Don't reference past the attribute array. Fixes Coverity item 710.
      crypt32: Don't set salt's cbData unless allocation succeeds. Fixes Coverity id 133.
      user32: Return error if memory allocation fails. Fixes Coverity id 115.
      riched20: Use helper function rather than goto to return found position.
      devenum: Fix order of operations bug (Coverity id 709).
      user32: Don't crash if passed a non-scrollbar HWND. Fixes Coverity id 265.
      winex11: Make button_state as large as the maximum number of cursors. Fixes Coverity id 728.
      wintrust: Add a few missing defines.
      wintrust: Don't assume dwStateAction is set in WINTRUST_DATA.
      crypt32: Add support for the CERT_EXTENDED_ERROR_INFO_PROP_ID.
      wintrust: Add traces to a few more functions.
      include: Fix typo.
      include: Add missing defines.
      tools/wine.inf: Register cryptdlg.

Kai Blin (7):
      ws2_32: Fix the SO_REUSEADDR tests to work on Win2k3 and newer.
      dplayx: Fix static overrun of pDP array in test. (Coverity).
      dplayx: Fix possible NULL pointer dereference (Coverity).
      dplayx: Fix possible NULL pointer deference in error path (Coverity).
      dpnet: Fix initialisation of This pointer (Coverity).
      ws2_32: Win NT4 does not zero the sockaddr_in structure on getsockname.
      ws2_32: Win98 closesocket() does not wake up select.

Lei Zhang (4):
      sane.ds: Replace wsprintfW with sprintfW.
      comctl32: listview: Prevent DragDetect from removing WM_LBUTTONUP messages.
      comctl32: Handle listview dragging better.
      qcap: Make sure input to AMStreamConfig_SetFormat is not NULL.

Luis C. Busquets Pérez (2):
      d3dx9: Implement D3DXMatrixDecompose.
      d3dx9: Add tests for D3DXMatrixDecompose.

Marcus Meissner (10):
      include: Mark up with alloc_size attribute.
      shell32: Fixed size passed to MultiByteToWideChar.
      winecfg: Fixed buffersize to GetPrivateProfileStringW.
      include: Allocation size markup.
      dnsapi: Fixed incorrect buffer size to GetComputerNameExW.
      secur32: Fixed size passed to GetComputerNameExW.
      msi/tests: Reduce buffer to size of string written.
      kernel32/tests: Pass correct size to MultiBytetoWideChar.
      oleview: Fixed LoadString buffer sizes.
      winefile: Fixed sizes to LoadString.

Michael Karcher (2):
      ole32/compobj: Fix function name in comment.
      kernel32: Clean up PROFILE_isspaceW.

Michael Stefaniuc (6):
      user32/tests: Remove unreachable break after return (Smatch).
      shell32: Fix the Ca, Hu, Ro, Sk, Sv and Wa translations by removing an untranslated string.
      wordpad: Fix the Hungarian translation by removing an untranslated and incomplete STRINGTABLE.
      wordpad: Change the encoding of the German resource file to utf-8.
      worpad: Fix the German translation.
      regedit: Fix the Bg, Cs, Da, Es, Hu, It, Ko, Pl, Pt, Ru, Si and Tr translations.

Mikołaj Zalewski (10):
      appwiz.cpl: French should use SUBLANG_NEUTRAL.
      oleaut32: Make _argsize and _xsize receive the full TYPEDESC and parent ITypeInfo, use a different function in IDispatch code.
      oleaut32: Add some missing simple types to _argsize and _xsize.
      oleaut32: VT_USERDEFINED records are passed by value.
      include: Add IAutoCompleteDropDown declaration.
      shell32: autocomplete: Add stub IAutoCompleteDropDown interface.
      shell32: autocomplete: Fix a logical AND to a bitwise AND.
      shell32: autocomplete: Make SetOptions handle setting the ACO_AUTOSUGGEST after Init, fix ACO_AUTOSUGGEST|ACO_AUTOAPPEND case.
      shell32: autocomplete: Implement GetDropDownStatus.
      shell32: autocomplete: Remove some obsolete FIXMEs, update some comments.

Muneyuki Noguchi (9):
      notepad: Update Japanese translation.
      appwiz.cpl: Add Japanese resources.
      wininet: Update Japanese translation.
      view: Add Japanese resources.
      cmdlgtst: Add Japanese resources.
      comdlg32: Update Japanese translation.
      winex11: Fix a buffer overflow bug in X11DRV_KeyEvent() and X11DRV_ToUnicodeEx().
      winex11.drv: Make X11DRV_XIMLookupChars handle a long string properly.
      oleview: Add Japanese resources.

Nicolas Le Cam (2):
      comctl32: Fix a failing test for some platforms.
      comctl32/tests: Fix a failing test for some platforms.

Nikolay Sivov (4):
      gdiplus: Partially implemented GdipTestControl.
      gdiplus: Some defines for Image metadata API.
      gdiplus: Added missed stubs for Image metadata access.
      gdiplus: Some TRACE(..) for Image calls.

Owen Rudge (1):
      shell32: Check CPL_NEWINQUIRE message in control panel applets if we can't retrieve valid strings/icon.

Paul Chitescu (2):
      user32: Stub for LockWorkStation.
      explorer: WM_SYSCOMMAND SC_SCREENSAVE to desktop triggers screen saver.

Paul Vriens (22):
      kernel32/tests: Fix a few tests on win9x.
      kernel32/tests: Fix 2 tests on win9x.
      urlmon/tests: Fix timeouts for win9x tests.
      kernel32/tests: Fix a few failures on win98.
      user32/tests: Win9x needs a threadid for CreateThread.
      crypt32/tests: Fix a test on Vista.
      winmm/tests: Fix a test on win9x.
      quartz/tests: Fix the tests on several platforms.
      ws2_32/tests: Remove redundant NULL check before HeapFree.
      msi/tests: Create only one log file and delete it afterwards.
      rpcrt4/tests: Fix some failures on XP-SP3.
      gdi32/tests: Prevent a crash on win95.
      gdi32/tests: Skip some failing tests on NT4.
      setupapi/tests: Fix two failures on win98.
      jscript/tests: Fix crash and failures on win9x.
      setupapi/tests: Fix a failure on Windows 2000.
      kernel32/tests: Skip tests on Win95.
      oleaut32/tests: Don't crash on Win95.
      msi/tests: Prevent a crash on NT4.
      crypt32/tests: Don't crash on NT4.
      crypt32/tests: Don't crash on win9x.
      crypt32/tests: Add a missing CryptMsgUpdate.

Peter Dons Tychsen (3):
      ntoskrnl: Implement partial stub for IoGetConfigurationInformation().
      services: Fixed problem with services where DependOnServices key is REG_SZ and not REG_MULTI_SZ.
      winedevice: Fix problems with driver entries without the "ImagePath" entry in registry.

Piotr Caban (1):
      msxml3: Change SAX IStream parser implementation.

Reece Dunn (7):
      shdocvw: Fixed building on msvc.
      richedit20: Fixed building the tests on msvc.
      browseui: Fixed building the tests with the Windows SDK.
      secur32: Fixed the schannel tests on Vista.
      secur32: Fixed the logic on some of the schannel tests.
      hlink: Fix the tests for IE7.
      shlwapi: Fixed the url tests on Vista.

Rob Shearman (43):
      wine_common_ver.rc: Allow the file version number and string to be automatically constructed from major, minor, build and platform ID numbers.
      shell32: Remove defines for WINE_FILEVERSION and WINE_FILEVERSION_STR.
      rpcrt4: Only start the RpcSs process for handles to the local server.
      rpcrt4: Fix typo in unescape_string_binding_componentW.
      rpcrt4: Change type of len parameter of NdrAllocate from size_t to SIZE_T.
      include: Define sigset_t in pthread.h if HAVE_SIGSET_T isn't defined.
      include: Remove incorrect [optional] attributes from parameters in ddstream.idl.
      include: Uncomment declaration of IDirectShowStream in amstream.idl.
      include: Fix level of indirection of parameters in GetNotifyCmdLine function of IBackgroundCopyJob2 interface in bits1_5.idl.
      include: Fix signature of NearestPoint function of IInkDisp interface in msinkaut.idl.
      include: The INewShortcutHookA, INewShortcutHookW and IRunnableTask interface in shobjidl.idl should be local.
      include: Add XMLDOMDocumentEvents dispinterface to xmldom.idl.
      include: Use placeholder structures with at least one field in vmr9.idl.
      include: Fix function names in IVBSAXXMLReader interface in msxml2.idl.
      widl: Fix the writing typedefs to dispinterfaces and pointers to interfaces.
      msi: Reduce destination file name used in the MoveFiles action to the long file name.
      winhttp: Add version resource.
      widl: Remove redundant code.
      rpcrt4: Free the memory for a registered interface that is in use and when WaitForCallsToComplete is 0.
      rpcrt4: Print error messages from RPC message functions when they are called in an invalid way.
      rpcrt4: Don't crash in NdrDllGetClassObject when a NULL pclsid is passed in.
      rpcrt4: Fix memory leaks of hdr in error paths in RPCRT4_io_thread.
      rpcrt4: Fix memory leak of 0-byte buffer allocated during processing of bind packets.
      avifil32: Add explicit "!= S_OK" to expressions that use HRESULTs as booleans.
      oleaut32: Add explicit "!= S_OK" to expressions that use HRESULTs as booleans.
      urlmon: Add explicit "!= S_OK" to expressions that use HRESULTs as booleans.
      usp10: Add explicit "!= S_OK" to expressions that use HRESULTs as booleans.
      winedos: Fix the type of res in VGA_DoSetMode.
      dsound: Add explicit "!= S_OK" to expressions that use HRESULTs as booleans.
      wintrust: Add explicit "!= NO_ERROR" to expressions that use variables containing error codes as booleans.
      advpack: Add explicit "!= S_OK" to expressions that use HRESULTs as booleans.
      d3d9: Fix type used to store return value in IDirect3DDevice9Impl_GetNPatchMode.
      ole32: Update comments in compobj.c.
      kernel32: Fix character count passed to GlobalGetAtomNameW in test_get_atom_name.
      msvcrt: Fix character count passed into fgetws in test_fileops.
      cryptnet: Define CERT_REVOCATION_PARA_HAS_EXTRA_FIELDS before including any PSDK headers.
      include: Make dmusici.h compile when it is included after winspool.h.
      include: Make exdisp.h compile when included after commdlg.h.
      include: Add DUMMYUNIONNAME to the anonymous union in the uSTGMEDIUM structure in objidl.idl.
      include: Add DUMMYUNIONNAME to unions in the _wireVARIANT, TYPEDESC and VARDESC structures in oaidl.idl.
      oleaut32: Fix a typo in VarTokenizeFormatString.
      include: Add explicit DUMMYUNIONNAME and DUMMYSTRUCTNAME names to anonymous unions in IDL files.
      widl: Don't automatically add DUMMYUNIONNAME and DUMMYSTRUCTNAME names to anonymous unions and structs.

Roderick Colenbrander (1):
      wined3d: Degrade an ERR to a TRACE.

Roy Shea (2):
      shell32: Use default system icons if PrivateExtractIconsW in SHGetFileInfoW fails.
      kernel32/test: Test import entries of a core windows DLL.

Stefan Dösinger (3):
      wined3d: Don't disable arbfp if the pipeline replacement is in.
      wined3d: Some ARB code fixes.
      wined3d: Add a test for zenable=false, zwriteenable=false.

Steven Edwards (1):
      widl: Open files in binary mode to avoid corruption from text mode on Windows.

Tobias Jakobi (2):
      wined3d: Fix SHOW_FRAME_MAKEUP debug dump code.
      wined3d: Fix long int warnings.

Vincent Povirk (1):
      user32: Use the correct bitmap location for MNS_CHECKORBMP.

Vitaliy Margolen (4):
      kernel32: Use FileStandardInformation to get file size.
      dinput: Replace strdup with HeapAlloc.
      dinput: Implement DIPROP_KEYNAME property for keyboard device.
      kernel32: Use NULL attributes if name and SA are not not specified.

Vitaly Lipatov (1):
      wineboot: Do registry update with wineboot --update in any case.

--
Alexandre Julliard
julliard@winehq.org
