The Wine development release 1.1.26 is now available.

What's new in this release (see below for details):
  - Still more translation updates.
  - Faster bitmap stretching using XRender.
  - Proxy support in WinHTTP.
  - Many more JScript functions.
  - Various bug fixes.

The source is available from the following locations:

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

    758  Menu/combo-box-functionality in managed mode.
   4277  GetPixel() returns wrong value for monochrome bitmaps
   5034  Wrong size of commdlg OpenFile dialog in radvideo.exe
   8290  Lotus Notes 6.5 demo fails to install
   9036  Adobe Photoshop Elements 1.0 fails to install, says IE4 is required
   9599  Caesar3 hackled sound
   9614  scroll wheel causes farcry crash.
  10394  No$gba Open file dialog non-resizable (OFN_ENABLESIZING not implemented)
  11015  Save games not ordered properly.
  11520  resident evil 4: the black,the white and the glitch
  12080  Portal 1.0: Graphics go haywire when first portal opens
  12101  SpellForce: The Order Of Dawn - Graphical bug
  12259  CoWaitForMultipleHandles Unexpected wait termination
  12600  Adobe Acrobat Pro 6 -- File Open should default to a more logical location
  12807  Team Fortress 2 crashes after running for several minutes at 1680x1050
  12906  MyScript Notes 2.2 : Crashes on program startup after clicking "continue trial"
  13525  Word 2003: Copy/Paste Textbox converts to picture
  13575  iTunes does not start on x64 computers
  13689  Word 2003: Last opened files appear incorrectly in File menu
  13926  Dune 2000 crashes after starting a mission
  13958  Services: handle null display names properly when populating SCM db entries
  14259  Wordview hang when open Doc file with picture
  14300  winhelp: Wrong initial view position in pages
  14404  Diablo LOD/Starcraft, no sound with ALSA
  14500  Supreme Commander: Input field too narrow to enter the CD key
  14878  Some places of Far Cry game world covered by one color
  15461  Security zones are not displayed in inetcpl.cpl (ZoneMgr_CreateZoneEnumerator, _GetZoneAt, _GetZoneAttributes)
  15631  Dragon NaturallySpeaking 10 crashes after opening Accuracy Center
  15789  Icewind Dale 2 : very low framerate
  15844  Weird Dutch translation for Program files folder
  15958  "make test" hangs in winmm/wave.c in wave_out_test_device
  16454  emule crashs after an undefined time
  16682  Messed up fonts in Civilization 4
  16767  Azgard Defence: game too slow
  16770  MSN Messenger 7.0: Chat window get the focus incorrectly
  17240  Full Tilt poker crashing
  17283  Steam crashes by logging in into the Steam Community with Gecko
  17604  The PlayOnline viewer fails to start after the initial update.
  17802  RegiStax 5 crashes at the end of stacking process
  18021  When starting The Lord of the Ring Online in additional X session, there is no sound.
  18419  Condemned: Criminal Origins: Camera images sometimes appear upside down
  18649  The Sims 3 crashes for no specific reason after a while
  18709  Breakout crashes:System.OverflowException: Value was either too large or too small for a Decimal
  18901  WoW crashes on exit when running in D3D
  19005  SimCity 4 crashes on start
  19047  Assertion failure at listview.c:2741
  19049  Motocross Madness 2 on MacOSX: crash with fbo
  19072  Reg.exe doesn't respect help commands (appinstall)
  19143  Anarchy Online corrupted graphics
  19157  CoGetContextToken and CoGetObjectContext need to take existing MTA into account
  19169  Albumplayer closes with an abnormal program termination
  19211  netconn_set_timeout() is unused in winhttp
  19216  winecfg - Wine version lost
  19220  Firefox 3.5 crashes because of stub in t2embed
  19225  notepad: launching with a non-existent file does not have 'cancel' option (appinstall)
  19246  winemenubuilder.exe error
  19327  LiveZilla 3.1.8.1 installer fails to complete
  19338  ResHacker - only small part of treeview is visible

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

Changes since 1.1.25:

Alexander Nicolaysen Sørnes (4):
      reg: Update Norwegian Bokmål translation.
      notepad: Update Norwegian Bokmål translation.
      crypt32: Update Norwegian Bokmål translation.
      taskmgr: Update Norwegian Bokmål translation.

Alexander Scott-Johns (3):
      notepad: Refactor DoOpenFile to simplify next patch.
      notepad: When opening a file, replace \0 characters with spaces, instead of truncating the file at the first \0.
      notepad: Add Cancel button to message box displayed when opening a non-existent file with the command line.

Alexandre Julliard (38):
      winetest: Build exe resources as separate .res files.
      loader: Get rid of the pthread support routines.
      include: Get rid of the no longer used wine/pthread.h.
      ntdll: Add management of the Wow64 filesystem redirection flag.
      kernel32: Forward the Wow64 redirection functions to ntdll.
      winetest: Load resources by name instead of id.
      server: Return the process CPU in the get_process_info request.
      ntdll: Support querying the Wow64 state of other processes.
      kernel32: Add implementation of GetSystemWow64DirectoryA/W.
      shell32: Add support for the CSIDL_SYSTEMX86 folder.
      shell32/tests: Revive the test for CSIDL_SYSTEMX86.
      kernel32/tests: Avoid using non-ASCII characters in strings.
      configure: Apply makedep flags when doing automatic dependencies.
      winebuild: Dump resource data as dwords to reduce the output file size.
      winetest: Create a separate resource file with the SHA1 build id.
      ws2_32: Check buffers before recvmsg() to trigger write watches.
      ntdll: Display write watch status in virtual traces.
      taskmgr: Convert the language-neutral resource file to UTF-8.
      avifil32: Convert the language-neutral resource file to UTF-8.
      msdmo: Convert the language-neutral resource file to UTF-8.
      mswsock: Convert the language-neutral resource file to UTF-8.
      Remove some obsolete README files.
      ntdll: Add support for the MEM_RESET flag in VirtualAlloc, with tests.
      kernel32: Explicitly specify the codepage in message files.
      wmc: Add support for utf-8 codepage.
      dbghelp: Grow all arrays by doubling the size.
      oleaut32/tests: Fix the usrmarshal tests on 64-bit.
      oleaut32: Fix safe array marshalling on 64-bit.
      ddraw/tests: Fix a few tests that fail on Win64.
      widl: Take into account the alignment of conformant arrays to pad a structure.
      ddraw/tests: Fix a failing test on 64-bit.
      ddraw/tests: Properly release surfaces even if we can't get the texture object.
      msvcrt: Add an errno mapping for ERROR_SHARING_VIOLATION.
      msi: Build a proper tab chain by walking through the controls list.
      wrc: Avoid a crash if a file didn't contain any resources.
      wrc: Report an error when encountering non-ASCII characters.
      uuid: Include some more headers.
      Updated the authors list.

Anders Jonsson (4):
      notepad: Update Swedish translation.
      winedbg: Add Swedish translation.
      winemine: Add ellipses for menu entries that open new dialog windows.
      winemine: Add Swedish translation.

Andrew Eikum (4):
      gdiplus: Implement GdipBeginContainer2 and GdipEndContainer.
      gdiplus/tests: Test cases for GdipBeginContainer2.
      gdiplus: Don't modify container list if container restoration fails.
      gdiplus: Implement GdipSaveGraphics and GdipRestoreGraphics.

Andrew Nguyen (3):
      server: Remap the EROFS errno value to STATUS_ACCESS_DENIED.
      kernel32: Implement WTSGetActiveConsoleSessionId as a stub.
      t2embed: Implement TTLoadEmbeddedFont as a stub.

Andrew Talbot (3):
      dbghelp: Constify some variables.
      dbghelp: Constify some variables.
      dbghelp: Constify some variables.

André Hentschel (8):
      crypt32: Update German translation.
      winecfg: Improve German About dialog.
      cmd: Fix German translation.
      cmd: Update German translation.
      appwiz.cpl: Correct German language.
      shell32: Correct German language.
      appwiz.cpl: Fix German translation.
      winecfg: Add the codepage pragma for German translation.

Aric Stewart (13):
      shlwapi: Forward UrlCrackW to wininet.InternetCrackUrlW.
      msctf: Correct return value from GetValue.
      msctf: Add definition for IEnumTfDocumentMgrs.
      msctf: Add code to track created ITfDocumentMgrs.
      msctf: Implement ITfThreadMgr::EnumDocumentMgrs.
      msctf/tests: Test EnumDocumentMgrs.
      taskmgr: Update Japanese resource.
      sane: Add Japanese resource.
      msvidc32: Add Japanese resource.
      iccvid: Add Japanese resource.
      devenum: Add Japanese resource.
      sane: Remove BOM from Japanese resource.
      gdi32: In init_system_links, reinitialize val_len and data_len before continuing.

Aurimas Fišeras (7):
      crypt32: Add "Disallowed" to CryptFindLocalizedName.
      Various spelling fixes for Lithuanian translation.
      cryptui: Add Lithuanian translation.
      crypt32: Add Lithuanian translation.
      cryptdlg: Translate "CPS" (Certification Practice Statement) to Lithuanian and add a comment to English resource.
      kernel32/nls: Add Lithuanian winerr translation.
      appwiz.cpl: Update Lithuanian translation.

Austin English (4):
      notepad: Fix English resource line breaks.
      hal: Add stub for KeGetCurrentIrql.
      shell32: Fix folder names for Dutch locale.
      shell32: More Dutch translations fixes.

Damjan Jovanovic (3):
      ws2_32: Add some AcceptEx tests.
      ws2_32: Test AcceptEx short reads.
      ws2_32: Test AcceptEx early disconnects and invalid parameters.

Dan Kegel (1):
      winmm: Don't convert return string in mciSendStringA on error.

Daniel Nylander (1):
      appwiz.cpl: Add Swedish translation.

David Adam (18):
      d3dx9_36: Fix tests to make them pass in Windows.
      d3dx9_36: Fix the sprite tests to make them pass in Windows.
      d3dx9: Fix the prototype of some functions.
      d3dx9: Add d3dx9.h in dxguid.
      d3dx9: Merge d3dx8 core into d3dx9.
      d3dx9: Merge d3dx8 mesh into d3dx9.
      d3dx9: Merge d3dx8 mesh tests into d3dx9.
      d3dx9: Merge d3dx8 math into d3dx9.
      d3dx9: Clean-up the spec file.
      d3dx9: Merge d3dx8 math tests into d3dx9.
      d3dx9: Remove the useless d3dx8 import.
      dxguid: Remove the useless d3dx8 include.
      d3dx8: Remove the d3dx8 dll.
      include: Remove useless headers.
      d3dx9: Fix D3DXQuaternionToAxisAngle to make tests pass in Windows.
      d3dx9: Remove a failing test in Windows.
      d3dx9: Fix D3DXQuaternionInverse to make tests pass in Windows.
      d3dx9: Fix D3DXQuaternionNormalize to make tests pass in Windows.

Detlef Riekenberg (5):
      include: Add IInternetZoneManagerEx2 interface for IE7.
      urlmon: Partial InternetZoneManagerEx2 implementation.
      urlmon/tests: Add tests for CoInternetCreateZoneManager.
      urlmon/tests: Windows headers need _WIN32_IE for IInternetZoneManagerEx2.
      winemine: Add ellipses for IDM_CUSTOM.

Dmitry Timoshkov (3):
      user32: Fix some BM_SETSTYLE test failres under Win9x.
      comctl32: Do not redraw treeview in TVM_INSERTITEM handler if bRedraw is not set, trigger the redraw on WM_SETREDRAW/TRUE.
      comctl32: Explicitly initialize visible order of a newly added item, force visible order recalculation on redraw.

Dylan Smith (6):
      richedit: Support ascii RTF in WM_SETTEXT even for unicode messages.
      richedit: Add more tests for WM_SETTEXT RTF support.
      richedit: Prevent autoscrolling without ES_AUTO[VH]SCROLL style.
      richedit: Initially disable scrollbars for ES_DISABLENOSCROLL.
      richedit: Keep scrollbars hidden without WS_HSCROLL & WS_VSCROLL.
      richedit: Handle missing colours in rtf colour table.

Eric Pouech (2):
      winedbg: 'Int XX' is not a function call, so don't try to handle it as such on i386.
      dbghelp: Fixed regressions introduced by growing arrays exponentially instead of linearly.

Erik Inge Bolsø (1):
      wined3d: Fix Nvidia GTX series misdetection.

Francois Gouget (10):
      winapi: Simplify and improve the readability of the C parsers.
      ole32: Reorder some compobj functions to avoid forward declarations.
      ole32: Make apartment_addref() static.
      notepad: Remove spaces before '\n's.
      winefile: Remove space before ellipsis.
      urlmon/tests: Fix two ok() trailing '\n's.
      winapi: Introduce a pseudo-loop in parse_c_variable() to get rid of the $finished variable.
      winapi: Modify parse_c_typedef() to get rid of the $finished variable.
      winapi/c_parser: Badly indenting a closing brace should be a warning, not an error.
      winapi/c_parser: Remove special cases for DEFINE_SHLGUID() and ICOM_DEFINE().

Frédéric Delanoy (54):
      oleacc: Update French translation.
      user32: Update French translation.
      winmm: Fix French translation.
      cmd: Fix French translation.
      notepad: Update French translation.
      oleview: Fix French translation.
      regedit: Fix French translation & UI display.
      taskmgr: Update French translation; display fixes.
      uninstaller: Fix French translation.
      winecfg: Fix French translation & UI display.
      wineconsole: Fix French translation & UI display.
      winhlp32: Fix French translation.
      notepad: Update French translation.
      winefile: Fix French translation & UI display.
      wordpad: Fix French translation & UI display.
      xcopy: Fix French translation.
      wininet: Fix French translation & UI display.
      crypt32: Update French translation.
      serialui: Fix French translation & UI display.
      avifil32: Fix French translation.
      iccvid: Fix French translation.
      oledlg: Fix French translation & UI display.
      wineps.drv: Fix French translation & UI display.
      setupapi: Fix French translation & UI display.
      shlwapi: Fix French translation.
      msrle32: Fix French translation.
      appwiz.cpl: Fix French translation & UI display.
      msacm32: Fix French translation & UI display.
      wldap32: Fix French translation.
      comdlg32: Fix French translation & UI display.
      comctl32: Fix French translation & UI display.
      mpr: Fix French translation.
      winspool.drv: Convert French resources to UTF-8.
      mshtml: Convert French resources to UTF-8.
      taskmgr: Fix typo in French translation.
      shdoclc: Fix French translation & UI display.
      msvfw32: Fix French UI display.
      msvidc32: Convert French resources to UTF-8.
      progman: Fix French translation & UI display.
      winemine: Fix French translation & UI display.
      view: Convert French resources to UTF-8.
      comdlg32: Fix left-right margins inversion in French page setup UI.
      comdlgtst: Fix French translation & UI display.
      reg: Fix French translation.
      clock: Convert French resources to UTF-8.
      shell32: Fix French translation & UI display.
      cryptdlg: Update French translation.
      cryptui: Fix UI display.
      cryptui: Fix French translation & UI display.
      kernel32: Convert French resources to UTF-8.
      kernel32: Convert German error msgs resources to UTF-8.
      kernel32: Fix typos in English errors messages.
      appwiz.cpl: Fix French UI display and wording.
      kernel32: Update French translation of error messages.

Hans Leidekker (10):
      iphlpapi: Use a separate index to count addresses in GetAdaptersAddresses.
      winhttp: Implement WinHttpSetTimeouts.
      include: Add IWbemStatusCodeText and IWbemLocator interfaces.
      wbemprox: Add a stub implementation of IWbemLocator.
      wbemprox: Add class factory.
      wbemprox: Register interfaces.
      wmiutils: New dll.
      wmiutils: Add a stub implementation of IWbemStatusCodeText.
      wmiutils: Add class factory.
      wmiutils: Register interfaces.

Henri Verbeet (45):
      wined3d: Get rid of the redundant "return_value" variable.
      winedd3d: Get rid of a useless trace.
      wined3d: Get rid of the unused gl_version and glx_version fields.
      wined3d: Remove the gl_renderer field from WineD3D_GL_Info.
      wined3d: Avoid a forward declaration.
      wined3d: Avoid an unnecessary strcpy().
      wined3d: Add some missing float suffixes.
      wined3d: checkGLcall() doesn't need a \n.
      wined3d: Get rid of some pointers in WINED3DADAPTER_IDENTIFIER.
      wined3d: Replace some shader_is_pshader_version() calls with plain type checks.
      wined3d: Implement a A8R8G8B8 to X8R8G8B8 surface format converter.
      wined3d: Avoid destroying the currently active context for non-implicit swapchains.
      wined3d: Trace the D3D shader in find_glsl_vshader() / find_glsl_pshader().
      wined3d: Fix a sign compare warning in glsl_shader.c.
      wined3d: Fix a sign compare warning in shader_vaddline().
      wined3d: Reuse the shader buffer between shaders.
      wined3d: Rename "SHADER_BUFFER" to something sane.
      wined3d: Allow shader_buffer_init() to fail.
      wined3d: Get rid of the useless "fragcolor" variable in shader_glsl_generate_pshader().
      wined3d: Fix some cast-qual warnings.
      wined3d: Simplify the GLSL sRGB write code.
      wined3d: Remove GetGlDesc() from the public IWineD3DSurface interface.
      wined3d: Get rid of struct glDescriptor.
      wined3d: Take geometry shaders into account in shader_glsl_load_constantsB().
      d3d9/tests: Use color_match() in a few more places.
      d3d10: Add the ID3D10EffectMatrixVariable interface.
      d3d10: Parse local buffers.
      d3d10: Parse local buffer names.
      d3d10: Merge parse_fx10_technique() and parse_fx10_technique_index().
      d3d10: Marge parse_fx10_pass() and parse_fx10_pass_index().
      wined3d: Remove the remains of an ATI_fragment_shader hack.
      wined3d: Check the return values for some wgl calls.
      d3d10: Do all effect object parsing in parse_fx10_object().
      d3d10: Parse effect variables.
      d3d10: Implement ID3D10Effect::GetVariableByName().
      wined3d: Recognize SM4 arrays.
      wined3d: Recognize the SM4 constant buffer register type.
      wined3d: Recognize the SM4 rsq opcode.
      wined3d: Recognize the SM4 dp3 opcode.
      wined3d: Recognize the SM4 dp4 opcode.
      wined3d: Rename _WineD3D_GL_Info to struct wined3d_gl_info.
      wined3d: Store a pointer to wined3d_gl_info in struct WineD3DContext.
      wined3d: Pass the context instead of the device to the various context functions.
      wined3d: Always use context_bind_fbo() to change the framebuffer binding.
      wined3d: Avoid redundant FBO binds.

Hib Eris (4):
      msi/tests: Add tests for MsiViewModify ASSIGN mode.
      msi: Implement ASSIGN mode in MsiViewModify.
      oleaut32/tests: Add tests for VarDecCmp.
      oleaut32: Prevent overflow in VarDecCmp.

Huw Davies (11):
      gdi32: Use a modified version of MulDiv to match native behaviour.
      winhlp32: Add English neutral translations.
      wineconsole: Add English neutral translations.
      winecfg: Add English neutral translations.
      hhctrl.ocx: Add English neutral translations.
      regedit: Update English neutral translations.
      shdoclc: Add English neutral translations and fix US English.
      gdi32/tests: Don't continue with the tests if GetWinMetaFileBits fails.
      wordpad: Add English neutral translations.
      gdi32/tests: Allow a small tolerance when comparing scaling values.
      gdi32/tests: Add a broken case for some versions of winxp.

Hwang YunSong (4):
      crypt32: Updated Korean resource.
      cryptdlg: Updated Korean resource.
      cryptui: Updated Korean resource.
      notepad: Updated Korean resource.

Jacek Caban (17):
      mshtml: Don't call AutoRegister on GRE directory - it's no longer needed.
      urlmon: Ignore QueryInterface call for an undocumented interface.
      urlmon: Moved more initialization code to init_test.
      mshtml: Added support for VT_UINT name in IHTMLElementCollection::item.
      wininet: Rename WININETHANDLEHEADER to object_header_t.
      wininet: Rename WININETHTTPSESSIONW to http_session_t.
      wininet: Rename WININETHTTPREQW to http_request_t.
      wininet: Rename WININETAPPINFOW to appinfo_t.
      wininet: Rename WININETFTPSESSIONW to ftp_session_t.
      wininet: Rename WININETFTPFILEW to ftp_file_t.
      include: Added netcon.idl.
      wininet: Rename WININET_strdupW to standard heap_strdupW.
      wininet: Rename WININET_strdup_AtoW to heap_strdupAtoW and handle NULL argument in its implementation.
      wininet: Rename WININET_strdup_WtoA to heap_strdupWtoA.
      wininet: Code clean up by using heap_strdup* functions.
      wininet: Code clean up by using heap_strdup* functions.
      include: Added ntddndis.h.

Jeff Latimer (2):
      ws2_32/tests: IPv6 tests for WSAAddressToStringW.
      ws2_32: IPv6 functionality for WSAAddressToStringW.

Joel Holdsworth (1):
      gdi32/tests: Added tests for BitBlt.

Juan Lang (34):
      cryptui: Increase control width to support larger fonts.
      winhttp: Change type of netconn_resolve from struct sockaddr_in * to struct sockaddr *.
      winhttp: Simplify netconn_resolve when using getaddrinfo.
      winhttp: Convert connect_t's address type from a struct sockaddr_in to a struct sockaddr_storage.
      winhttp: Support IPv6 addresses in open_connection.
      winhttp: Support IPv6 in netconn_resolve.
      wininet: Fix tests when running behind a proxy server.
      wininet: Change type of GetAddress from struct sockaddr_in * to struct sockaddr *.
      wininet: Simplify GetAddress when using getaddrinfo.
      wininet: Use struct sockaddr_storage in InternetCheckConnectionW.
      wininet: Use length reported by GetAddress in FTP_Connect.
      wininet: Use sizeof(member) rather than sizeof(type) for address lengths.
      wininet: Use address length returned by GetAddress in NETCON_connect.
      wininet: Convert WININETSESSIONW's socketAddress to a struct sockaddr_storage.
      wininet: Support IPv6 addresses in HTTP_ResolveName and HTTP_OpenConnection.
      wininet: Fail in FTP if the resolved name is not an IPv4 address.
      wininet: Support IPv6 in GetAddress.
      winhttp: Add tests for WinHttpSetDefaultProxyConfiguration.
      winhttp: Implement WinHttpSetDefaultProxyConfiguration.
      winhttp: Implement WinHttpGetDefaultProxyConfiguration.
      winhttp: Support getting the default proxy settings from the http_proxy environment variable.
      winhttp: Honor WINHTTP_ACCESS_TYPE_DEFAULT_PROXY in WinHttpOpen.
      winhttp: Set connect_t's servername and port based on proxy settings.
      winhttp: When connecting via a proxy include full hostname and scheme in path.
      winhttp: Connect to the proxy port rather than the host port.
      winhttp: Use a helper function to set connect_t's servername and port.
      winhttp: Use proxy server when redirecting.
      winhttp: Allow full path in addition to relative path in headers to accomodate proxy servers.
      winhttp: Don't set port number to a default before scheme is known.
      winhttp: Issue CONNECT command to connect to a secure server through a proxy server.
      winhttp: Fix a comment typo.
      winhttp: Use the correct address length when connecting.
      ws2_32: Remove an unnecessary cast.
      ws2_32: Make sure sockaddr is big enough when formatting an IPv6 address.

Maarten Lankhorst (1):
      winealsa.drv: Add support for indirect read/write in directsound support.

Michael Stefaniuc (42):
      winecfg: Fix regression introduced by 807d75a94e378d05.
      oleacc: Add missing encoding info to the German resource file.
      cryptdlg: Add missing encoding info to the German resource file.
      shdoclc: Convert the German resources to UTF-8.
      cmd: Convert the German resources to UTF-8.
      view: Convert the German resources to UTF-8.
      wineps.drv: Convert the German resources to UTF-8.
      winspool.drv: Convert the German resources to UTF-8.
      uninstaller: Convert the German resources to UTF-8.
      msrle32: Convert the German resources to UTF-8.
      wineboot: Convert the German resources to UTF-8.
      serialui: Convert the German resources to UTF-8.
      avifil32: Convert the German resources to UTF-8.
      msvfw32: Convert the German resources to UTF-8.
      hhctrl.ocx: Convert the German resources to UTF-8.
      credui: Convert the German resources to UTF-8.
      gphoto2.ds: Convert the German resources to UTF-8.
      winhlp32: Convert the German resources to UTF-8.
      winemine: Convert the German resources to UTF-8.
      localui: Convert the German resources to UTF-8.
      start: Convert the German resources to UTF-8.
      clock: Convert the German resources to UTF-8.
      comctl32: Convert the German resources to UTF-8.
      xcopy: Convert the German resources to UTF-8.
      wldap32: Convert the German resources to UTF-8.
      cmdlgtst: Convert the German resources to UTF-8.
      notepad: Convert the German resources to UTF-8.
      oleview: Convert the German resources to UTF-8.
      progman: Convert the German resources to UTF-8.
      wineconsole: Convert the German resources to UTF-8.
      oledlg: Convert the German resources to UTF-8.
      winefile: Convert the German resources to UTF-8.
      comdlg32: Convert the German resources to UTF-8.
      winmm: Convert the German resources to UTF-8.
      wrc: Reset the language before processing multiple rc files.
      winecfg: Convert the German resources to UTF-8.
      user32: Update the German resources and switch them to UTF-8.
      shell32: Convert the German resources to UTF-8.
      taskmgr: Convert the German resources to UTF-8.
      Set the encoding of the remaining German resources to UTF-8.
      Set the encoding of the Romanian resources to UTF-8.
      wordpad: Change some string resource ids to logically group the strings in separate STRINGTABLEs.

Mike Kaplinskiy (1):
      ws2/tests: Test AcceptEx with a deferred socket.

Nikolay Sivov (15):
      comctl32/listview: Basic LVM_GETITEMSPACING tests.
      user32/spy: Update ListView message table.
      comctl32/listview: Fix some test failures on 4.7x.
      comctl32/listview: More LVM_*HITTEST tests.
      comctl32/listview: Fix hittesting for "small" positive Y coordinates.
      comctl32/listview: Fix hittest flag calculation for negative Y values on report mode.
      comctl32/listview: A basic test for column width default value.
      comctl32/listview: Basic LVN_(BEGIN|END)SCROLL tests.
      comctl32/listview: Fix selection and focus rectangles on reordered list (report mode).
      comctl32/header: Test item rectangles updating after reordering.
      comctl32/header: Always update rectangles after HDM_SETORDERARRAY.
      comctl32/header: Use macro to define LPARAM value.
      comctl32/header: Update item bounds on WM_SIZE.
      comctl32/header: Fix hittesting flags, extend tests a bit.
      comctl32/dpa: Don't use start index on searching sorted array.

Owen Rudge (4):
      appwiz.cpl: Replace Add/Remove button with separate Modify and Remove buttons.
      appwiz.cpl: Read modification path from registry.
      appwiz.cpl: Enable/disable Modify button, and modify title on Remove button, as appropriate.
      appwiz.cpl: Execute installer when Modify clicked.

Paul Chitescu (1):
      crypt32: Updated Romanian translation.

Paul Vriens (16):
      gdi32/tests: Mark an intermittent failure as broken() on Win9x/ME.
      d3d9/tests: Skip a test on failure.
      ole32/tests: Reset a variable before testing.
      comdlg32: Fixed size of Dutch control.
      cryptui: Fix Dutch translations.
      crypt32: Make sure we show Unicode characters (Dutch translation).
      cryptui: Show the select store text when browsing stores.
      crypt32: Improve an English resource.
      crypt32: Fix Dutch translations.
      shell32: Add missing encoding for Dutch resources.
      winhlp32: Improve Dutch translations and convert to UTF8.
      ws2_32/tests: Fix a test failure on NT4.
      comctl32/tests: Fix test failures with comctl32 <= 5.80.
      appwiz.cpl: Fix Dutch translations.
      winedbg: Remove an unneeded pragma from the Swedish translation.
      winhttp: Fix a crash on Vista and higher.

Peter Oberndorfer (1):
      winemenubuilder: Use heap_printf to allocate the right amount of memory and not cause heap corruption.

Piotr Caban (46):
      jscript: Added DateConstr_parse implementation.
      jscript: Added string argument handling to Date constructor.
      jscript: Added calling Date as function implementation.
      jscript: Fix do while loop parsing.
      jscript: Added Date_valueOf implementation.
      jscript: Added Boolean constructor implementation.
      jscript: Added Bool_toString implementation.
      jscript: Added Bool_valueOf implementation.
      jscript: Added Bool_toLocaleString implementation.
      jscript: Fixed to_boolean implementation.
      jscript: Fix DateConstr_parse implementation.
      jscript: Inherit Array valueOf from Object.
      jscript: Added Object_valueOf implementation.
      jscript: Added Object_toString and Object_toLocaleString implementation.
      jscript: Added Function_valueOf implementation.
      jscript: Changed to_primitive implementation.
      jscript: Added String_fontcolor implementation.
      jscript: Added String_fontsize implementation.
      jscript: Added String_anchor implementation.
      jscript: Added String_link implementation.
      jscript: Change do_attributeless_tag_format so it works on non string objects.
      jscript: Make do_attribute_tag_format generic.
      jscript: Make String_charAt generic.
      jscript: Make String_charCodeAt generic.
      jscript: Make String_indexOf generic.
      jscript: Make String_match generic.
      jscript: Make String_replace generic.
      jscript: Make String_slice generic.
      jscript: Make String_split generic.
      jscript: Make String_substring generic.
      jscript: Make String_toLowerCase generic.
      jscript: Make String_toUpperCase generic.
      jscript: Fix String_match implementation.
      jscript: Inherit Function_valueOf from Object.
      jscript: Added Array length setting implementation.
      jscript: Added implementation of Array constructor called as a function.
      jscript: Added call_expression_eval implementation for EXPRVAL_VARIANT values.
      jscript: Added Array_slice implementation.
      jscript: Added String_fromCharCode implementation.
      jscript: Added Date_getYear implementation.
      jscript: Improve to_string implementation.
      jscript: Improve Number_toString implementation.
      jscript: Added RegExp_test stub.
      jscript: Improve Object_toString implementation.
      jscript: Remove broken tests.
      jscript: Fix create_exec_ctx implementation.

Rein Klazes (5):
      comdlg32: Rearrange some more controls when resizing a file dialog.
      comdlg32: Fix a problem with resizing a customized file dialog.
      comdlg32: Memorize and restore the size of the file dialog between calls.
      comdlg32/tests: Remove file dialog resize tests that rely on CDN_SELCHANGE notifications.
      user32/tests: Show that Windows avoids creating loops in a menu tree, probably by limiting the depth of such tree.

Ricardo Filipe (27):
      comdlg32: Update Portuguese translation and convert to UTF8.
      oledlg: Update Portuguese translation and convert to UTF8.
      notepad: Update Portuguese translation and convert to UTF8.
      cmdlgtst: Update Portuguese translation and convert to UTF8.
      setupapi: Update Portuguese translation and convert to UTF8.
      shell32: Update Portuguese translation and convert to UTF8.
      user32: Update Portuguese translation and convert to UTF8.
      clock: Update Portuguese translation and convert to UTF8.
      mpr: Update Portuguese translation and convert to UTF8.
      comctl32: Update Portuguese translation and convert to UTF8.
      oledlg: Fix Portuguese translation.
      progman: Update Portuguese translation and convert to UTF8.
      regedit: Update Portuguese translation and convert to UTF8.
      winecfg: Update Portuguese translation and convert to UTF8.
      wineconsole: Update Portuguese translation and convert to UTF8.
      winefile: Update Portuguese translation and convert to UTF8.
      crypt32: Update Portuguese translation and convert to UTF8.
      reg: Update Portuguese translation and convert to UTF8.
      taskmgr: Update Portuguese translation and convert to UTF8.
      gphoto2.ds: Fix Portuguese translation and convert to UTF8.
      mshtml: Update Portuguese translation and convert to UTF8.
      shdoclc: Fix Portuguese translation and convert to UTF8.
      appwiz.cpl: Update Portuguese translation and convert to UTF8.
      winefile: Fix Portuguese translation.
      wordpad: Update Portuguese translation and convert to UTF8.
      cryptdlg: Add Portuguese translation.
      devenum: Update Portuguese translation.

Rico Schüller (1):
      d3d10: Rename struct d3d10_effect_variable to struct d3d10_effect_object.

Roderick Colenbrander (8):
      winex11: Get rid of the static Xrender picture format table.
      winex11: Move AlphaBlend over to get_xrender_format.
      winex11: Move glyph code over to get_xrender_format.
      winex11: Get rid of depth conversion fixme.
      winex11: Add a helper function for converting a random color to a XRenderColor.
      winex11: Add an XRender based GetSrcAreaStretch.
      winex11: Use set_xrender_transformation in AlphaBlend.
      winex11: Add a function for retrieving the bitmap GC.

Stefan Dösinger (10):
      wined3d: An indirect address op can adjust min and max at the same time.
      wined3d: Add Intel GMA X3100 to our card DB.
      wined3d: Update Nvidia driver versions.
      wined3d: Only use 4 component specular colors if GL allows it.
      wined3d: Drop the color0 mov optimization if the src is overwritten.
      wined3d: Check the correct constant limit.
      wined3d: EXP and EXPP are scalar operations.
      wined3d: Set the depth blit helper texture address mode to clamp.
      wined3d: Don't call glGetError if nobody is listening.
      wined3d: Use the unmodified source in MOVA.

Vincent Povirk (15):
      windowscodecs: Implement CopyPalette for BMP decoder.
      windowscodecs: Add test for 1-bit indexed color BMP.
      windowscodecs: Add test for 4-bit indexed color BMP.
      windowscodecs: Return proper error codes in unneeded BMP decoder methods.
      windowscodecs: Add support for decoding RLE8-encoded BMP files.
      windowscodecs: Add support for decoding RLE4-encoded BMP files.
      gdiplus: Use brush_fill_path in GdipFillEllipse.
      gdiplus: Use brush_fill_path in GdipFillPie.
      gdiplus: Use brush_fill_path in GdipFillPolygon.
      gdiplus: Use brush_fill_path in GdipFillPolygonI.
      gdiplus: Use brush_fill_path in GdipFillRegion.
      gdiplus: Use brush_fill_path in GdipFillRectangleI.
      gdiplus: Implement GdipSetLineLinearBlend.
      windowscodecs: Don't leak memory when BmpFrameDecode_CopyPalette fails.
      windowscodecs: Register BMP decoder as a bitmap decoder.

Vitaliy Margolen (1):
      shell32: Export IsUserAnAdmin by name as well.

Vladimir Pankratov (3):
      regedit: Implement open last key at startup.
      comctl32: Fix division by zero.
      cmd: Convert the Russian resources to UTF-8.

Yuri Khan (1):
      winex11.drv: Handle clipboard on an auxiliary thread for windowless apps.

--
Alexandre Julliard
julliard@winehq.org
