The Wine development release 1.3.28 is now available.

What's new in this release (see below for details):
  - Initial version of the VBScript parser.
  - Automagic audio driver selection.
  - Support for volume information on UDF file systems.
  - The OpenGL renderer is now the default for DirectDraw.
  - Device configuration dialog in DirectInput.
  - SetDIBitsToDevice support in the DIB engine.
  - Several improvements in the cmd parser.
  - Various bug fixes.

The source is available from the following locations:

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

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

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

You can also get the current source directly from the git
repository. Check http://www.winehq.org/git for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

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

Bugs fixed in 1.3.28:

   2700  Screen corruption in Afterlife
   3254  Google Talk unable to connect
   7143  Simant music and sound does not play
   8924  Problem passing environment variables into php.exe
  12520  Yoda Stories main window is too small
  12689  Input messages lingering in server slowing down wine
  13752  Kega Fusion: Direct 3D output does not fill window in windowed mode
  14212  Winuae freeze as soon as you hit a key after starting the emulation.
  14932  Spore Prototype CityMaze: Rendering issue
  15553  Interstate 76: scrambled screen when running in d3d
  15874  Dead Space doesn't start
  16977  Enable Multisampling again
  17030  uTorrent 1.8.1 final crashes when deleting files
  17565  Half-Life 2 pauses after first key pressed
  18586  Cannot build wine-1.1.22 on OpenSolaris snv_112 with GNU ld
  19518  packet tracer 5.2 error on solaris
  19833  the program hotkeynet.exe has encountered a serious problem and needs to close
  20239  15mb VB6 applications desaparear after 2 minutes
  20570  In vb6 drop down combo width cannot be altered
  21077  AOEIII: Antialiasing crops display area
  21301  Terragen 0.9.43: Right clicking on any field causes crash
  21387  NetTerm locks up
  21663  ElsterFormular fails to install update due to missing administrator rights
  22434  Hype - The Time Quest crashes when the game should come up (looks like null pointer dereference to me)
  22528  King's bounty  armored princess really slow
  22627  Emperor fails to switch from Windowed Mode to Full Screen
  22955  Broken icon rendering in PeaZip
  23671  Adobe Acrobat 9.0.0 Pro Extended Crashes On Startup from Fresh Install
  24581  timeSetEvent(), a function of multimedia timer doesn't work after about 500 calls.
  24746  Missing graphics in FBO OffscreenRenderingMode
  24855  Kindle for PC 1.2.1 does not run
  25022  GetImageListForDrawing error with MT5
  25188  Femap: Cannot open help window
  25722  Anti-aliasing option disabled in Mirror's Edge (with 'multisampling=enabled')
  26151  Warnings in dlls/urlmon
  26244  Commander: Conquest of the Americas demo slow d3d performance
  26273  Sims 3 can't detect disc
  26423  Wine should use MS-DOS (8.3) file names when interacting with Dosbox
  26589  A Farewell to Dragons: game becomes slow during fights
  26963  sysocmgr.exe required  SETUPAPI.dll.pSetupMalloc
  27089  Space Empires: Star Fury shows mostly black screen (unless orm=backbuffer)
  27199  MS .Net Framework 1.x Service Pack installers crash in InstallFiles action (cabinet stream handling)
  27298  The Witcher 2 Slow Performance on any setting.
  27519  Silent Hill V: Homecoming: game freezes when in paused mode (Esc) for some minutes
  27573  Firefox 5 crashes at http://www.mozilla.com/en-US/firefox/all.html
  27728  Multimine crashes when closing the Join Server dialog after server closes
  27743  Post Mortem hangs after starting
  27761  different behaviour for "if" conditions check
  27788  cmd misparses > redirection operators when directly preceded by a token ending in 1 or 2
  27877  Portal 2: "5-minute crash"
  27967  Sacred Underworld 2.28 with graphical issues
  27989  Word and Powerpoint 2007: window background is striped
  28010  No sound in Raptor: Call of the shadows
  28025  CAJViewer 7.1 crash
  28034  Powerpoint 2007/2010: color & resizing issues
  28060  Lemmix: mouse pointer problem during gameplay
  28065  Garshasp: The Monster Slayer installer bailing out: OS is very old and not supported
  28076  altap salamander 2.54 does not start
  28101  wininet ftp tests slow
  28103  gdi32 font.ok fails if sun-java6-fonts installed, does nothing otherwise?
  28122  unable to start Intl.cpl (Regional Settings properties) -- unimplemented function SETUPAPI.dll.pSetupMalloc
  28157  Jedi Knight demo crashes after the opening sequence
  28199  Installation of vcrun6 causes undefined function _set_printf_count_output
  28207  Caesar III crashes in dsound
  28214  Eurofighter Typhoon crashes after starting
  28230  F.E.A.R. 3 crashes with unimplemented msvcp90.dll.?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@PBV42@@Z
  28233  NeverWinter Nights 2 hangs on starting
  28246  Dragon Age Origins fails to launch
  28247  d3dx9_36/mesh.c compile broken on uclibc
  28259  Jedi Knight demo crashes in ddraw
  28287  Tropico 4: at startup, it crashes when calling function CertGetNameStringW from crypt32.dll
  28303  Game Schnapsen crashes
  28306  Bloxx It's launcher is displayed incorrectly
  28313  Steam client installer (MSI) crashes at the end of installation

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

Changes since 1.3.27:

Akihiro Sagawa (1):
      winmm: Add support for MEVT_LONGMSG.

Alasdair Sinclair (1):
      setupapi: Fix magic comparison on x64.

Alexander Morozov (1):
      query: Add stub for LoadIFilter.

Alexandre Goujon (2):
      include: Add more GetVolumeInformation system flags.
      kernel32: Add UDF support.

Alexandre Julliard (64):
      setupapi: Use the specified language for SxS manifest file names.
      ntdll: Try to match the language name when looking for a manifest file.
      ntdll: Use the manifest with the highest matching version number.
      ntdll: Prefer loading native manifests over Wine ones.
      user32: Pass valid dimensions to GetDIBits.
      gdi32: Add parameter validation in GetDIBits.
      gdi32/tests: Simplify the DIB byte width computation.
      user32: Simplify the DIB byte width computation.
      wineps: Simplify the DIB byte width computation.
      winex11: Simplify the DIB byte width computation.
      comctl32: Simplify the DIB byte width computation.
      gdi32: Remove an unused variable.
      msi: Avoid dynamic stack allocation.
      gdi32: Store the initial bitmap bits with DIB alignment.
      gdi32: Add a helper function to initialize DIB info from a bitmap object.
      gdi32: Forward the null driver GetImage to the DIB driver since the bits are in DIB format.
      gdi32: Forward the null driver PutImage to the DIB driver since the bits are in DIB format.
      gdi32: Allow SetDIBits to use the null driver.
      gdi32: Only use the hdc parameter in SetDIBits when needed.
      gdi32: Use SetDIBits to set the initial bits of a DDB.
      gdi32/tests: Add some SetDIBitsToDevice tests, based on the similar SetDIBits tests.
      winex11: Fix SetDIBitsToDevice coordinate mapping in RTL mode.
      winex11: Fix SetDIBitsToDevice coordinate mapping for negative values.
      wininet/tests: Remove an invalid FTP test.
      gdi32: Make the BITMAPINFO parameters non-const in driver entry points since we are always passing a copy.
      gdi32: Fix coordinate mapping in Get/SetBoundsRect, with tests.
      user32: Compute the size of the message spy arrays at compile time.
      ntdll: Add support for asmv1 namespace prefix in xml elements.
      libwine: Disable debug output when stderr goes to /dev/null.
      advapi32: Include system headers before Windows headers.
      crypt32: Include system headers before Windows headers.
      gphoto2.ds: Include system headers before Windows headers.
      sane.ds: Include system headers before Windows headers.
      wldap32: Include system headers before Windows headers.
      secur32: Avoid size_t and fix some printf formats.
      mountmgr.sys: Include system headers before Windows headers.
      kernel32: Include system headers before Windows headers.
      openal32: Include system headers before Windows headers.
      qcap: Include system headers before Windows headers.
      gdi32: Add a SetDIBitsToDevice implementation in the null driver using PutImage.
      winex11: Get rid of the SetDIBitsToDevice implementation.
      gdi32: Add RLE support in SetDIBitsToDevice.
      winex11: Get rid of the no longer used RLE support.
      widl: Don't output stubs for interfaces included in a typelib.
      gdi32: Always set biClrUsed in internal BITMAPINFO structures.
      gdi32: Don't free a driver when it's popped from the stack.
      gdi32: Make the push/pop_dc_driver functions available to the drivers.
      gdi32: Add a driver entry point for CreateCompatibleDC.
      gdi32: Don't allow CreateCompatibleDC on a metafile DC.
      gdi32: Leave it up to the driver to push the new device on the DC stack in CreateDC.
      winex11: Make sure the bitmap of the brush pattern is owned by x11drv before getting its pixmap.
      winex11: Make sure the bitmap created from a packed DIB is owned by x11drv before getting its pixmap.
      gdi32: Allocate the DIB driver on first use, and free it only upon DC destruction.
      gdi32: Move DIB driver definitions to dibdrv.h.
      libwine: Avoid converting the final null in strlwrW and struprW.
      d3dx9_36: Avoid using fminf/fmaxf.
      wineconsole: Make the traces in WINECON_GrabChanges more readable.
      wineconsole: Avoid reentering WINECON_GrabChanges.
      user32/tests: Allow an approximate color match for the cursor contents.
      ntdll: Fix protection flags for uninitialized sections.
      wine.inf: Create a fake dll for the 32-bit iexplore on Wow64.
      version: Check the Windows directory first in VerFindFileA/W.
      secur32/tests: Avoid crash on test failure.
      wininet/tests: Avoid crash on test failure.

Alistair Leslie-Hughes (9):
      advapi32: Cleanup event log only if create was successful.
      uxtheme: Set last error on NULL pointer.
      ntdsapi: Add stubs DsServerRegisterSpnA, DsServerRegisterSpnW.
      msxml3: Correct MSXML object safety tests.
      rasapi32: Return error on invalid parameters.
      msxml3: Correct Objsafe tests for older msxml3.
      msxml3: Only compare strings if the transform was successful.
      advapi32: Correct test for NT4 prior to sp4.
      include: Add xmlparser interfaces.

Andrew Eikum (3):
      winmm: Determine the driver from MMDevAPI.
      mmdevapi: Automatically select the correct driver.
      winecfg: Remove driver selection from Audio tab.

Andrew Talbot (14):
      comctl32: Fix a logical operator typo.
      winspool.drv: Fix a logical operator typo.
      d3dx9_36: Fix a logical operator typo.
      mscoree: Remove extern from function definitions.
      windowscodecs: Remove extern from function definition.
      dnsapi: Void functions should not return a value.
      include: Fix a typo.
      comctl32: Remove unneeded address-of operator from function name.
      shell32: Remove unneeded address-of operators from function name.
      wined3d: Remove unneeded address-of operators from function names.
      winex11.drv: Remove unneeded address-of operator from function name.
      mscoree: Fix a zero-sized array.
      msvcp90: Avoid a forward declaration.
      winealsa.drv: Remove unneeded address-of operators from function name.

André Hentschel (23):
      rpcrt4/tests: Fix NULL string handling in an ok() check.
      comctl32/tests: Fix printing a NULL string.
      d3dx9_36/tests: Fix printing a NULL string.
      winspool.drv/tests: Fix tracing a NULL string.
      d3dcompiler_43/tests: Fix printing a NULL string.
      version: Return VIF_CANNOTREADSRC if no source path could be generated.
      winevdm: Use mangled short path names for DOSBox.
      shell32/tests: Fix checking the child strings.
      localspl: Fix printing a NULL string.
      po: Update German translation.
      urlmon/tests: Print out the wrong mime.
      configure: Install view.
      cryptnet: Use the constants from the wininet header.
      dbghelp: Add some new dwarf enumerations.
      po: Update German translation.
      dnsapi: Use internal name_skip function.
      ntdll: Allow reading from a writable section.
      ntdll/tests: Run the execution test only on x86 platforms.
      ntdll/tests: Tests for _wcslwr and _wcsupr.
      ntdll: Fix a comment.
      po: Update German translation.
      ntdll: Remove dead increments (clang).
      crypt32/tests: Remove dead assignment (clang).

Aric Stewart (7):
      usp10: Display and handle bidi runs in the correct order in ScriptString functions.
      usp10: Modify ScriptStringOut to paint the string item by item.
      usp10: Draw selected glyphs in ScriptStringOut.
      usp10: When calling ShapeIndicSyllables we need to use cChars which is the actual number of original characters.
      usp10: Disable glyph indexes for Symbol, non-TrueType, and device fonts.
      usp10: Respect the presence or absence of the SSA_BREAK flag.
      usp10: Respect the presence or absence of the SSA_GLYPHS flag.

Aurimas Fišeras (2):
      po: Update Lithuanian translation.
      po: Update Lithuanian translation.

Austin English (1):
      wined3d: Remove an unused variable.

Bernhard Loos (4):
      ntdll: Provide a timestamp debug channel, which prints a millisecond resolution timestamp in front of debug output.
      widl: Also create proxies/stubs for interfaces marked with oleautomation.
      wuapi: Add the SystemInformation coclass and interface.
      winealsa.drv: If there are no devices, there is also no default device.

Bruno Jesus (7):
      user32: Fix support for CB_SETDROPPEDWIDTH in combobox.
      ws2_32: Fix a leak in WS2_AcceptEx.
      ws2_32: Avoid an unhandled exception in WSAIoctl.
      ws2_32: Fix support for SIO_KEEPALIVE_VALS.
      user32/tests: Add SetCaretPos/GetCaretPos tests.
      ws2_32: Remove an unnecessary test.
      winecfg: Write the ProductName registry key based on selected OS.

Christian Costa (4):
      attrib: Move implementation from cmd.exe to the standalone command.
      cmd: Remove attrib from builtins list.
      cmd: Launch the command with the /? option for external commands shipped with cmd.exe.
      cmd: Add help info for xcopy.

Damjan Jovanovic (1):
      winemenubuilder: Do case-insensitive glob comparisons.

Dan Kegel (3):
      configure: AC_C_CONST is obsolete.
      configure: Fix configure failures under -Werror -Wall.
      dinput: Fix compilation on systems that don't support nameless unions.

Dmitry Timoshkov (1):
      gdi32: Add a buch of CreateScalableFontResource() tests.

Francois Gouget (53):
      advapi32/tests: Tweak the service start/stop tests so they work on NT4.
      net: Fix the parameter checking, /help handling and usage.
      net: Add support for enumerating the running services with 'net start'.
      services: Cleanup when a service fails to start so it is still fully considered to be stopped.
      services: Refuse to start disabled services.
      services: If a service is not started, then say so when ControlService() is called on it.
      net: Remove an untranslatable string from the resources.
      po: Mark a number of obviously incomplete cmd help messages as fuzzy in the Czech translation.
      po: Fix some typography issues in the Bulgarian translation.
      hhctrl.ocx: Don't show unimplemented buttons.
      hhctrl.ocx: Issue a fixme if asked for unsupported toolbar buttons.
      ddraw/tests: Make enum_z_fmt_cb() static.
      dinput: Make semantic_to_obj_id() static.
      msi: Make find_table() static.
      po: Fix some typography issues in the Czech translation.
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      taskmgr: Fix the name of a couple of process priority levels.
      wordpad: Specify a message context for 'cm', 'in' and 'pt'.
      crypt32 & cryptdlg: Specify a message context for 'CA', 'OCSP' and 'CPS'.
      shlwapi: Add a message context for 'hr', 'min' and 'sec'.
      po: Mark a couple of broken German translation as fuzzy.
      po: Mark a couple of broken Korean translations as fuzzy.
      comctl32: Property sheets must be able to redraw themselves even if no page is selected.
      po: Remove English strings from the Czech translation.
      po: Remove English strings from the Greek translation.
      po: Remove English strings from the Spanish translation.
      po: Remove English strings from the Danish translation.
      po: Remove English strings from the Romansh translation.
      po: Remove English strings from the Esperanto translation.
      cmd: Add a trailing full stops to a couple of usage messages.
      winecfg: Specify a context for the drive letter setting.
      cmd: Fix the indentation of the IF usage message.
      net: Add a full stop at the end of a sentence in the usage message.
      wineconsole: Add full stops at the end of sentences in the usage message.
      xcopy: Add full stops at the end of sentences in the usage message.
      po: Remove English strings from the Ukrainian translation.
      po: Remove English strings from the Chinese (PRC) translation.
      po: Remove English strings from the Walloon translation.
      po: Remove English strings from the Norwegian Bokmål translation.
      comctl32/tests: Check the styles of the wizard and property sheet dialogs.
      comctl32: Fix the wizard and property sheet dialog styles.
      comctl32: Update the PROPSHEET{HEADER,PAGE} structures and add some PSH_XXX macros.
      services: Issue a fixme when a service fails to start.
      ddraw: Remove WINAPI on static functions where not needed.
      attrib: Make ATTRIB_wprintf() static.
      user32/tests: Add a trailing '\n' to an ok() call.
      po: Remove English strings from the Chinese (Taiwan) translation.
      po: Remove English strings from the Turkish translation.
      po: Remove English strings from the Thai translation.
      po: Remove English strings from the Swedish translation.
      po: Add a linefeed to fix the Lithuanian translation.
      kernel32: Add parentheses to clarify the precedence between '&' and '||'.
      comctl32/tests: Use the PROPSHEETHEADERA_V1_SIZE macros for compatibility with old comctl32 versions.

Frédéric Delanoy (27):
      cmd: Ignore trailing whitespace when using cd.
      cmd/tests: Add tests for redirections using non stdout/stderr handles.
      cmd: Fix redirection handle parsing.
      cmd: Avoid reading garbage when looking for redirection handle.
      cmd/tests: Add tests for redirections within IF statements.
      cmd/tests: Add tests for mixed echo modes.
      cmd: Add help for ASSOC command.
      cmd: Add WCMD_output_asis_stderr function.
      cmd: Ensure WCMD_assoc error messages are sent to stderr instead of stdout.
      cmd/tests: Add assoc tests.
      cmd: Fix invalid RegSetValueExW call in WCMD_assoc.
      cmd: Add help for FTYPE command.
      cmd/tests: Add ftype tests.
      po: Update French translation.
      cmd/tests: Add pushd/popd tests.
      cmd: Fix echo's special ';' handling.
      cmd/tests: Add tests for IF '==' operator.
      cmd: Associate comments with their respective descripted structures in header file.
      cmd: Get rid of obsolete autoexec.bat handling code.
      po: Update French translation.
      cmd: Fix misleading WCMD_parameter documentation.
      cmd: Simplify WCMD_parameter function.
      cmd: Clarify WCMD_if function.
      cmd: Add an output parameter to WCMD_parameter to point to the end of the extracted param, if requested.
      cmd: Fix IF operands parsing for '==' operator.
      cmd: Use correct type instead of void* for prev_context field of BATCH_CONTEXT struct.
      cmd: Backup echo mode before running external batch file.

Gerald Pfeifer (3):
      comctl32: Remove dead code from MONTHCAL_HitTest.
      wined3d: Remove dead code (and variable) from wined3d_surface_flip. wined3d_surface_flip.
      mshtml: Add failure detection to set_downloading_proc.

Hans Leidekker (17):
      programs: Add a stub implementation of regasm.exe.
      xolehlp: New dll.
      winhttp: Properly test a boolean variant.
      winhttp/tests: Initialize a variant with a known value.
      winhttp: Fix some memory leaks.
      msi: Avoid a leak when a query is executed more than once.
      msi/tests: Fix a number of test messages.
      msi: Use a higher value for the initial transform disk id.
      msi: Initialize a variable.
      msi: Respect the indirect attribute in the SelectionPath event handler.
      msi/test: Mark some test results as broken.
      msi/tests: Fix some test messages.
      msi: Move the preview code to dialog.c.
      msi: SelfUnregModules' counterpart is SelfRegModules.
      msi: Return the right error from ResolveSource when the user cancels.
      msi: Remove some dead assignments (clang).
      msi: Ignore unknown components in the FeatureComponents table.

Henri Verbeet (50):
      wined3d: Rename WineD3DAdapterChangeGLRam() to adapter_adjust_memory().
      wined3d: Make the target parameter to is_full_clear() const.
      wined3d: Make the device parameter to wined3d_device_get_swapchain_count() const.
      wined3d: Make the device parameter to wined3d_device_get_swapchain() const.
      wined3d: Make the device parameter to wined3d_device_get_wined3d() const.
      wined3d: Make the device parameter to wined3d_device_get_available_texture_mem() const.
      wined3d: Replace "DirectDraw stuff" with per-adapter screen information.
      ddraw: Trace which surfaces we enumerate in ddraw7_EnumSurfaces().
      ddraw: Remove a redundant check from ddraw7_SetCooperativeLevel().
      ddraw: Introduce a separate function for setting the focus window.
      wined3d: Use the resource size for copying between a surface's DIB and PBO.
      ddraw: Make the OpenGL renderer the default one.
      ddraw: Get rid of the surface implementation switching code.
      ddraw: Get rid of the ImplType fields in IDirectDrawImpl and IDirectDrawSurfaceImpl.
      wined3d: Make the device parameter to wined3d_device_get_stream_source() const.
      wined3d: Make the device parameter to wined3d_device_get_stream_source_freq() const.
      wined3d: Merge the wined3d_surface_set_mem() implementations.
      wined3d: Merge the wined3d_surface_flip() implementations.
      wined3d: Make the device parameter to wined3d_device_get_transform() const.
      wined3d: Make the device parameter to wined3d_device_get_light() const.
      wined3d: Print a FIXME for any flags passed to wined3d_surface_flip().
      wined3d: Remove a redundant compare in IWineD3DSurfaceImpl_BltOverride().
      wined3d: Get rid of some redundant else statements in IWineD3DSurfaceImpl_BltOverride().
      wined3d: Make the device parameter to wined3d_device_get_light_enable() const.
      wined3d: Make the device parameter to wined3d_device_get_clip_plane() const.
      mmdevapi: Include space for the terminating zero in info_device_ps_GetValue().
      mmdevapi: Add a TRACE to info_device_ps_GetValue().
      wined3d: Don't print the GLSL info log by default on fglrx.
      wined3d: Get rid of the rect checks for present in IWineD3DSurfaceImpl_BltOverride().
      wined3d: Make the device parameter to wined3d_device_get_clip_status() const.
      wined3d: Make the device parameter to wined3d_device_get_material() const.
      wined3d: Don't override the swapchain present interval in IWineD3DSurfaceImpl_BltOverride().
      wined3d: Try doing a present in wined3d_surface_blt() instead of IWineD3DSurfaceImpl_BltOverride().
      wined3d: Make the device parameter to wined3d_device_get_index_buffer() const.
      wined3d: Make the device parameter to wined3d_device_get_base_vertex_index() const.
      wined3d: Implement wined3d_surface_flip() as a blit.
      ddraw: Only explicitly initialize non-zero fields in ddraw_create_gdi_swapchain().
      ddraw: Set the swap effect to WINED3DSWAPEFFECT_COPY in ddraw_create_gdi_swapchain().
      wined3d: Make the device parameter to wined3d_device_get_viewport() const.
      wined3d: Make the device parameter to wined3d_device_get_render_state() const.
      wined3d: Use draw_binding for the surface_modify_location() call in surface_unmap() as well.
      ddraw: Also check errors returned by ddraw_create_gdi_swapchain() in CreateSurface().
      ddraw: Introduce a function for creating the swapchain.
      wined3d: Make the device parameter to wined3d_device_get_sampler_state() const.
      wined3d: Make the device parameter to wined3d_device_get_scissor_rect() const.
      wined3d: Disable sRGB decoding in draw_textured_quad().
      wined3d: Use the CPU blitter for blitting to converted surfaces.
      wined3d: Add support for flipping compressed surfaces to surface_cpu_blt().
      wined3d: Make the device parameter to wined3d_device_get_vertex_declaration() const.
      wined3d: Make the device parameter to wined3d_device_get_vertex_shader() const.

Huw Davies (2):
      gdi32: When creating a dib_info from a ddb, always make a copy of the colour map.
      gdi32: The offsets should be signed.

Hwang YunSong (6):
      po: Updated Korean translation.
      po: Updated Korean translation.
      po: Updated Korean translation.
      winecfg: Updated Korean translation.
      po: Updated Korean translation.
      dinput: New Korean resource.

Jacek Caban (59):
      vbscript: Added IActiveScript::SetScriptSite implementation.
      vbscript: Moved VBScript declaration to vbscript.c.
      vbscript: Added IActiveScript::InitNew implementation.
      vbscipt: Added IActiveScript::Close implementation.
      vbscript: Added more IActiveScript tests.
      vbscipt: Added IActiveScript::GetScriptState implementation.
      msi: Use struct instead of interface in object declarations.
      msi: Ude default calling convention for internal functions.
      jscript: Added more SetInterfaceSafetyOptions tests and fixes.
      mshtml: Added support for text/vbscript script type.
      vbscript: Added IObjectSafety stub implementation.
      vbscript: Added SetInterfaceSafetyOptions implementation.
      vbscript: Added GetInterfaceSafetyOptions implementation.
      vbscript: Added IObjectSafety tests.
      vbscript: Moved includes required by vbscript.h to the header.
      vbscript: Added SetScriptState implementation.
      vbscript: Added GetScriptDispatch implementation.
      vbscript: Added more uninitialization tests and fixes.
      vbscript: Added AddNamedItem implementation.
      vbscript: Added beginning parser implementation.
      vbscript: Added beginning lexer implementation.
      vbscript: Added beginning bytecode compiler implementation.
      vbscript: Added beginning interpreter implementation.
      vbscript: Added beginning script running tests.
      vbscript: Added lexer support for newlines and comments.
      vbscript: Added identifiers support to lexer.
      vbscript: Added function call statement parsing beginning implementation.
      vbscript: Added call statement compilation implementation.
      vbscript: Store call identifier as BSTR.
      vbscript: Added interp_icallv implementation.
      vbscript: Added simple call test.
      vbscript: Added support for a few more characters in lexer.
      vbscript: Better function call parsing.
      vbscript: Added support for call keyword in lexer.
      vbscript: Added Call statement implementation.
      vbscript: Added more keywords to lexer.
      vbscript: Added bool literals parsing support.
      vbscript: Added lexer support for string literals.
      vbscript: Added parser support for string literals.
      vbscript: Added compiler support for boolean literals.
      vbscript: Added compiler support for string literals.
      vbscript: Added interp_bool implementation.
      vbscript: Added interp_string implementation.
      vbscript: Added support for arguments in interp_icallv.
      vbscript: Added more tests.
      vbscript: Added support for |f a, b, c| call statement.
      vbscript: Added parser/compiler support for |option explicit|.
      vbscript: Added support for parentheses in expressions.
      vbscript: Added parser support for |not| expression.
      vbscript: Added compiler support for |not| expression.
      vbscript: Added interp_not implementation.
      vbscript: Added parser support for equality expression.
      vbscript: Added compiler support for equality expression.
      vbscript: Added interp_equal implementation.
      vbscript: Added compiler/parser support for call expressions.
      vbscript: Added interp_icall implementation.
      vbscript: Added more tests.
      vbscript: Added empty literal support.
      vbscript: Added null literal support.

Jay Yang (1):
      explorer: Try ShellExecute if the parameter isn't a directory.

José Manuel Ferrer Ortiz (2):
      appwiz.cpl: Spanish translation update.
      winecfg: Spanish translation update.

Juan Lang (1):
      crypt32: Test/correct CertGetNameString with NULL pvTypePara.

Jérôme Gardou (1):
      rpcrt4: Properly unmarshall EMUM16 discriminant.

Jörg Höhle (7):
      mmdevapi: Do not mix frames and bytes.
      include: Define KSAUDIO_SPEAKER_5|7POINT1_SURROUND.
      mmdevapi: Accept up to 8 channels.
      winecoreaudio: Fix AudioRenderClient Get/ReleaseBuffer protocol.
      mmdevapi: Use UINT32 for a number of frames and UINT64 to sum them.
      winealsa: Recommend Pulse users to upgrade to handle_underrun.
      mmdevapi: IsFormatSupported fills closest match iff it returns S_FALSE.

Louis Lenders (5):
      dpnet: Add missing IDirectPlay8Peer methods.
      ieframe: Add stub for IEGetWriteableHKCU.
      dpnet/tests: Add tests for IDirectPlay8Peer_EnumServiceProviders.
      wine.inf: Add registry key HKLM,%CurrentVersionNT%,"ProductName".
      dpnet: Return success in IDirectPlay8PeerImpl_Initialize.

Lucas Fialho Zawacki (6):
      dinput: Added ConfigureDevices dialog.
      dinput: Added enumerated devices to ConfigureDevices dialog.
      dinput: Added object/action enumeration to ConfigureDevices dialog.
      dinput: Added display of available actions to ConfigureDevices dialog.
      dinput: Added possibility to change the action mapping in the ConfigureDevices dialog.
      dinput: Working CANCEL and RESET buttons in ConfigureDevices dialog.

Marcus Meissner (7):
      gameux: Initialize a variable (Coverity).
      wined3d: Remove a useless NULL check (Coverity).
      msi: Check return value of msi_string2idW (Coverity).
      ntdll: Handle errno also for non ENOENT errors on lseek (Coverity).
      netapi32: Check for GetUserNameW return (Coverity).
      msi: Check for return value of GetUserName (Coverity).
      Revert "msi: Check for return value of GetUserName (Coverity).".

Matteo Bruni (6):
      wined3d: Keep track of the current texture type for each texture unit.
      wined3d: Use dummy textures for all the texture targets.
      d3d9/tests: Add unbound cube/volume texture tests.
      wined3d: Rename dummyTextureName variable.
      wined3d: Store maximum vertex attributes count.
      wined3d: Report more vertex texture formats.

Maxime Lombard (1):
      wined3d: Add support for Nvidia GTX 460M.

Michael Mc Donnell (6):
      d3dx9: Use 0 instead of D3DLOCK_DISCARD in OptimizeInPlace.
      d3dx9: Use 0 instead of D3DLOCK_DISCARD in load_skin_mesh_from_xof.
      d3dx9: Use 0 instead of D3DLOCK_DISCARD in D3DXLoadMeshFromXInMemory.
      d3dx9: Use 0 instead of D3DLOCK_DISCARD in D3DXCreateSphere.
      d3dx9: Use 0 instead of D3DLOCK_DISCARD in D3DXCreateCylinder.
      d3dx9: Use 0 instead of D3DLOCK_DISCARD in D3DXCreateTextW.

Michael Stefaniuc (15):
      dsound/tests: Primary and secondary buffers use the same IDirectSoundBuffer vtbl.
      ole32: COM cleanup in filemoniker.c.
      ole32: COM cleanup in compositemoniker.c.
      dsound: Use the same struct for the primary buffer object as for the secondary.
      dsound: Don't delete the primary buffer if a sub iface is still in use.
      dsound: Move the primary buffer description into the buffer object.
      dsound: Handle primary buffers in IDirectSoundBufferImpl_SetFormat.
      dsound: Handle primary buffers in two more IDirectSoundBuffer methods.
      shell32: Pass objects instead of ifaces to helpers.
      shell32: COM cleanup in shv_bg_cmenu.c.
      shell32: Move ISvBgCm_Constructor() to avoid a forward declaration.
      msi: COM cleanup for the IEnumVARIANT iface.
      oleaut32: COM cleanup in typelib2.c.
      ntdll: Don't use HIWORD to check if an atom is a small int.
      quartz: Use an IDL file to define the IAMFilterData iface.

Nikolay Sivov (4):
      msxml3: Fix empty elements output.
      msxml3: Respect string length returned from ISAXAttributes.
      msxml3: Use element name length passed to content handler.
      comctl32/monthcal: Make day drawing helpers aware of multiple calendars.

Octavian Voicu (11):
      cmd: Don't parse colons as stream separators when splitting paths.
      winefile: Don't parse colons as stream separators when splitting paths.
      cmd/tests: Test del /s recursion in subdirectories with colons.
      msxml3/tests: Fix a warning in saxreader tests when compiling on x64.
      ieframe: Fix a few incorrect pointer/integer casts on 64-bit.
      ole32: Fix a few incorrect pointer/integer casts on 64-bit.
      vbscript: Fix possible memory leak/crash caused by race condition in VBScriptParse_InitNew.
      opencl: Remove reference to clSetCommandQueueProperty and print fixme, saying function is deprecated.
      shell32/tests: Add a todo for two recycle bin tests in case no item was added.
      shell32: Fix an incorrect pointer/integer cast on 64-bit and fix check for resource id.
      ntdll: Fix two buffer overflow conditions in RtlDosPathNameToNtPathName_U.

Piotr Caban (17):
      jscript: Added Object.hasOwnProperty implementation.
      jscript: Use hash table when accessing object properties by name.
      jscript: Limit name hash computations number.
      jscript: Throw exception on error in JSGlobal_encodeURIComponent.
      jscript: Added decodeURI implementation.
      jscript/tests: Added decodeURI tests.
      mshtml: Don't cache HTMLAttributesCollection results.
      mshtml: Added HTMLAttributeCollection2_getNamedItem implementation.
      mshtml: Store attributes list in HTMLAttributeCollection.
      mshtml/tests: Added attributes tests on comment node.
      mshtml/tests: Added IHTMLAttributeCollection tests.
      mshtml: Added HTMLAttributeCollection_get_dispid implementation.
      mshtml: Added HTMLAttributeCollection_invoke implementation.
      mshtml/tests: Added IHTMLAttributeCollection IDispatchEx tests.
      mshtml: Removed typo from HTMLDOMChildrenCollection_invoke function.
      mshtml: Added more IHTMLElement_{put, get}_onclick tests.
      msvcrt: Fix _vswprintf* arguments.

Ričardas Barkauskas (2):
      wined3d: Add support for Nvidia GT 555M.
      ddraw: Don't allow SetPalette on mipmap sublevels instead of root surfaces.

Stefan Dösinger (20):
      ddraw: Don't re-write the surface's pixelformat.
      ddraw: Trust wined3d to give us what we asked for.
      ddraw: Emulate a 24 bit depth format without stencil or padding.
      ddraw: Show that ddraw reads ddsCaps without DDSD_CAPS set.
      ddraw: Introduce a function to convert a DDSURFACEDESC to a DDSURFACEDESC2.
      ddraw: Introduce a function to convert a DDSURFACEDESC2 to a DDSURFACEDESC.
      ddraw: Convert dwZBufferBitDepth into a DDPIXELFORMAT.
      ddraw: Set dwZBufferBitDepth in old z buffers.
      ddraw: Add a test for DDSD_ZBUFFERBITDEPTH and DDSD_PIXELFORMAT.
      ddraw: Simplify Z format parsing a bit, remove ERRs.
      ddraw: Mark DepthFill blit failures between beginScene and EndScene broken.
      ddraw: Set the viewport after changing the render target.
      ddraw: Make the overlay tests pass on Windows 7.
      ddraw: Fix a test message.
      ddraw: Remove crashing tests.
      ddraw: Add some NULL pointer tests.
      ddraw: Check the alignment, not the size.
      ddraw: Convert DDSURFACEDESC2 in lock.
      ddraw: Add tests for DDSD_PIXELFORMAT and DDSD_ZBUFFERBITDEPTH in Lock.
      ddraw: Add tests for dwZBufferBitDepth and dwMipMapCount values.

Thomas Mullaly (4):
      urlmon: Use CoTaskMemFree instead of HeapFree for memory allocated with CoTaskMemAlloc.
      urlmon: Improved GetSecurityId's support for file url's.
      urlmon: Added basic MapUrlToZoneEx2 implementation.
      urlmon: Made domain mapping support IUri based and added wildcard scheme domain mapping tests.

--
Alexandre Julliard
julliard@winehq.org
