The Wine development release 1.1.13 is now available.

What's new in this release (see below for details):
  - Freedesktop.org-compliant startup notifications.
  - Many fixes for 64-bit application support.
  - Improved graphics support in Internet Explorer.
  - Various Richedit improvements.
  - Better certificate manager dialog.
  - Various bug fixes.

The source is available from the following locations:

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

   4937  NASA WorldWind doesn't start.
   5415  Intuit QuickBooks Pro 2006/2007 does not install
   5554  Tachyon the Fringe crashes when detecting video modes
   6334  support the fd.o startup notification spec better
   6494  shdocvw fails to build on linux ppc
   8081  ABMIS Professional - Loading of typelib L"oleacc.dll" failed with error 1812
   8084  Starmoney 6 requires IE6
   8404  Dungeon Keeper 2 crashes after mouse movement
   8460  DVD Profiler: returns "Invalid floating point operation"
  10547  .NET 3.5 Framework installation problems (msi, bits, crypt32)
  10612  LookupAccountNameA returns Domain Size that is one byte too big
  10698  Windows Installer 3.1 Incorrectly verifies
  10765  The Format function of Visual Basic 6 does not work properly
  10966  explorer.exe crash every time when removing folders
  11600  Jetmen revival: mouse only moves from left to right
  11691  Truespace crashes when using file save
  11720  Intuit (Au) QuickBooks Pro 2007/2008 free trial massive memory leak
  12021  Navyfield crashes after starting (possible dsound crash)
  12099  .NET Framework 1.1 installer requires loadperf.dll in case of AeDebug -> Auto=0 (unhandled exception dialog)
  12136  Sketchup6: crashes on x86-64 right after startup
  12394  PanoramaStudio automatic Barrel/pincushion correction fails on too many pipes
  12513  Cepstral SwiftTalker changes font when modifying a different option
  12667  Sins of Solar Empire Key bindings glitches
  12750  Forte Agent crashes when using Freefont 20080323
  12766  Cursor incorectly drawn in Dungeon Siege
  12810  Blade Runner crashes after opening sequence
  12887  Regression: GTA san andreas too slow to be playable
  13160  Final Fantasy XI Official Benchmark v. 3 doesn't display properly
  13174  Launching the game through AssassinsCreed_Game.exe fails
  13237  Cannot insert pictures from file due to rapid folder switching in Office 2007
  13331  aSc TimeTables new timetable wizard can't receive focus with managed windows
  13462  Launchpad Enhanced crashes due to problem with Context_QueryInterface
  13473  Cannot load Python's sqlite module
  13540  Sound recorder in aimp2.5 beta does not work
  13755  Outcast (and sometimes Outcast Demo 1) : crashes when starting a new game because of amstream.dll
  13803  QUIK Junior, not restored child windows, regression.
  13962  wine-1.0rc5-6-g0123f5a compiler warnings - dlls/kernel32
  13964  small .NET cmd util: CoWaitForMultipleHandles Unexpected wait termination
  14015  Eclipse 3.3.x (customized) crashes on null REFCLSID passed to ole32.WriteClassStg
  14056  Anatomie des Gehirns Version 2.0: crashes during installation after asking, wether program group should be created
  14065  WordPerfect Office X3:  Application crash after change of window focus
  14068  Blade Runner not drawing overlays
  14160  Surface conversion problem with native d3dx
  14171  Igor Engraver 1.7: crashes on startup
  14191  Might and Magic 7: Crash at startup
  14196  eclipse 3.4 crashes when starting
  14341  gtasa: looking underwater turns things black
  14354  Wineasio in no longer available in the Audio selection of MyOrgan
  14362  RtlDestroyHeap forgot to notify_free on allocated blocks
  14363  valgrind #includes have changed
  14372  co-operate with valgrind to load debugging info
  14406  Goldwave loaded mp3 file is corrupted
  14874  Might and Magic 7: DirectDraw errors
  15076  MS Train Simulator crashes on start
  16102  archicad 10 demo installer crashes when launched
  16231  ArchiCAD 11 cannot install, NULL pointer dereference
  16349  Text is garbled in Teach 2000
  16403  No text visible in Ever17
  16546  Slingplayer exits with a Vis C error
  16598  winuser.rh misses some standard control ids (dialog button, ...) resulting in wrc failure with windows.h include only
  16635  Mathematica 7 Player crashes on startup with unimplemented KERNEL32.dll.GetErrorMode
  16708  Installshield regression: PureEdge Viewer, Final Fantasy XI Benchmark 2 and 3 install fail
  16714  World of Goo crashes on exit
  16732  wine crashes on breakpoints
  16735  ddraw/device: ‘oldcw’ is used uninitialized, needs FPUPRESERVE implemented
  16738  Lineage2 shows only black screen at startup
  16739  kernel32/instr.c: initialization from incompatible pointer type
  16741  msvcrt/except.c: compiler errors
  16743  ntoskrnl.exe: warning: initialization from incompatible pointer type
  16748  rpcrt4/ndr_marshall.c: value computed is not used
  16777  EnumDisplaySettingsEx does not set DM_DISPLAYFLAGS
  16780  directory listing in cmd is not formatted correctly
  16790  Lineage 2: Graphics bug with camera position
  16828  Nirvis CDJ: serial port mode not completely clean on FreeBSD (IEXTEN still on)
  16840  Children of the nile demo crashes when loading the menu
  16875  .NET 3.0: WIC installer fails due to bug(s) in setupapi.SetupGetTargetPathW
  16878  .NET 3.0: XPSEPSC installer fails due to missing ntoskrnl.exe placeholder and version resource
  16879  .NET 3.0: XPSEPSC installer fails due to unimpl kernel32.RtlCaptureStackBackTrace
  16888  .NET 3.0: WCF installer requires httpapi.dll with some stubs
  16893  .NET 3.0: Windows Workflow Foundation post-install: loadperf needs LoadPerfCounterTextStringsA/W stubs
  16906  .NET 3.0: XPSEPSC installer copies print processor files to wrong directory (setupapi unhandled dirid 55)
  16911  WriteProcessMemory() not working for memory protected by X11DRV_DIB_DoProtectDIBSection()
  16922  Build broken on NetBSD

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

Changes since 1.1.12:

Aleksey Bragin (1):
      ntdll: Fix buffer overread in RtlNumberOfSetBits.

Alexandre Julliard (169):
      server: Avoid crash on initialization of the thread creation debug event.
      server: Simplify the debug_event_t structure.
      server: Replace EXCEPTION_RECORD by an explicit definition in debug events.
      msvcrt: Fix formatting of pointers in printf.
      msvcrt: Convert all the printf functions to use MS ABI varargs.
      msvcrt: Convert all the scanf functions to use MS ABI varargs.
      msvcrt: Convert the open functions to use MS ABI varargs.
      msvcrt: Convert the spawn and exec functions to use MS ABI varargs.
      reg.exe: Fix broken usage of va_list.
      cmd.exe: Don't use wvsprintf on sysv-style varargs, use a libwine function instead.
      xcopy.exe: Don't use wvsprintf on sysv-style varargs, use a libwine function instead.
      ntdll/tests: Skip large integer tests that crash on 64-bit Vista.
      ntdll: Fix the various structures returned by NtQuerySystemInformation for 64-bit.
      msvcrt: Add missing __cdecl on some function pointers.
      advpack/tests: Add CDECL to the cabinet callback functions.
      cabinet/tests: Add CDECL to the cabinet callback functions.
      msi/tests: Add CDECL to the cabinet callback functions.
      comctl32/tests: Fix pointer casting warnings on 64-bit.
      gdi32/tests: Fix a pointer casting warning on 64-bit.
      mlang/tests: Fix a pointer casting warning on 64-bit.
      msi/tests: Fix pointer casting warnings on 64-bit.
      ntdll/tests: Fix pointer casting warnings on 64-bit.
      ole32/tests: Fix a pointer casting warning on 64-bit.
      qedit/tests: Fix a pointer casting warning on 64-bit.
      shell32/tests: Fix handle casting warnings on 64-bit.
      winhttp/tests: Use ~0u instead of ~0ul for DWORD values.
      wininet/tests: Use ~0u instead of ~0ul for DWORD values.
      wldap32/tests: Use ~0u instead of ~0ul for DWORD values.
      winmm/tests: Fix handle casting warnings on 64-bit.
      user32/tests: Fix pointer casting warnings on 64-bit.
      user32/tests: Fix some printf formats for 64-bit.
      kernel32/tests: Fix pointer casting warnings on 64-bit.
      kernel32/tests: Don't compare the result of llseek or hwrite against HFILE_ERROR.
      kernel32/tests: Fix the NT header initialization for 64-bit.
      kernel32/tests: Use the correct SIZE_T type instead of unsigned long.
      msvcrt/tests: Use unsigned int instead of size_t for the malloc tests.
      msvcrt/tests: Fix some printf formats for 64-bit.
      ntdll/tests: Avoid long long printf formats in traces.
      include: Fix data structures for processor affinity on 64-bit.
      include: Fix the PROCESSENTRY32 structure on 64-bit.
      include: Fix the msvcrt time_t definition on 64-bit.
      msvcrt/tests: Fix the printf pointer formatting tests on 64-bit.
      msvcrt/tests: Fix the scanf pointer formatting tests on 64-bit.
      kernel32/tests: Comment out a couple of heap tests that crash on 64-bit Vista.
      kernel32/tests: Use the actual name of the exe module in toolhelp tests.
      riched20/tests: Move the itextServicesStdcallVtbl definition to avoid a compiler warning.
      libwine: Fix vsnprintfW string formatting to handle alignment and padding.
      libwine: Ignore format modifiers 'h' and 'l' when formatting a string.
      cabinet: Add CDECL to the cabinet callback functions.
      setupapi: Add CDECL to the cabinet callback functions.
      dinput: Fix pointer cast warnings on 64-bit.
      wldap32: Use ~0u instead of ~0ul for DWORD values.
      winhttp: Use ~0u instead of ~0ul for DWORD values.
      wininet: Use ~0u instead of ~0ul for DWORD values.
      msvcrt: Fix the time_t definition for the msvcrt build.
      urlmon/tests: Fix an uninitialized variable check for Win64.
      mshtml/tests: Fix the platform test for Win64.
      ole32/tests: Fix a structure size check for Win64.
      crypt32/tests: Fix handle size in CERT_KEY_PROV_HANDLE_PROP_ID for Win64.
      include: Fix the PROCESS_MEMORY_COUNTERS structure definition for Win64.
      jscript/tests: Don't crash if we fail to get the IActiveScriptParse interface.
      include: Fix 64-bit sign extension in the MAKEWPARAM/LPARAM macros.
      setupapi: Implemented SetupEnumInfSectionsA/W.
      setupapi/tests: Added some tests for SetupEnumInfSectionsA/W.
      updspapi: Added an updspapi implementation that forwards to setupapi.
      ntdll: Change the DEFINE_REGS_ENTRYPOINT macro to use a number of args instead of a size.
      kernel32: Change the DEFINE_REGS_ENTRYPOINT macro to use a number of args instead of a size.
      winebuild: Improve the calling sequence for register functions.
      winedump: List exported functions sorted by ordinal.
      winedump: Implement dumping of relocations.
      include: Document offsets in the x86_64 context structure.
      winebuild: Implement register entry points for x86_64.
      ntdll: Implement relay debugging for register entry points on x86_64.
      ntdll: Print exception context on x86_64.
      ntdll: Replaced get_cpu_context by RtlCaptureContext. Implemented it for x86_64.
      kernel32: Moved _DebugOutput to kernel16.c.
      kernel32: Moved the 16-bit WOW thunk routines to thunk.c.
      kernel32: #ifdef out some code that is not needed on non-i386.
      winefile: Get rid of hack to load vswprintf from msvcrt.
      regedit: Fix integer printf formats in resource strings.
      regedit: Convert error box display to Unicode.
      include/msvcrt: Replace va_list by __ms_va_list for x86_64.
      msvcrt: Correctly walk up the list of trylevels in except_handler3.
      user32/tests: Fix most of the macro abuse in the menu test.
      opengl32: Use INT_PTR instead of ptrdiff_t in generated code to avoid printf warnings.
      opengl32: Automatically download the GL spec files in make_opengl. Add a default value for the OpenGL version.
      msvcrt/tests: Avoid printing pointer differences in traces.
      ntdll/tests: Avoid printing pointer differences in traces.
      oleaut32/tests: Avoid printing pointer differences in traces.
      rpcrt4/tests: Avoid printing pointer differences in traces.
      shlwapi/tests: Avoid printing pointer differences in traces.
      ws2_32/tests: Avoid printing pointer differences in traces.
      crypt32: Avoid printing pointer differences in traces.
      kernel32/tests: Use _lclose instead of CloseHandle to avoid handle casts.
      msi/tests: Use CreateFile instead of OpenFile to avoid handle casts.
      ntdll/tests: Fix a long long format in a trace.
      user32/tests: Fix some integer to pointer conversion warnings.
      dinput: Avoid size_t in traces.
      msvcrt: Avoid size_t in printf format.
      dsound: Avoid a pointer cast in a trace.
      imm32: Avoid pointer casts in traces.
      shell32: Avoid a pointer cast in a trace.
      user32: Avoid a pointer cast in a trace.
      version: Avoid pointer casts in a trace.
      wininet: Avoid pointer casts in traces.
      quartz: Avoid a pointer cast in a trace.
      kernel32/tests: Fix some integer to pointer conversion warnings.
      user32/tests: Fix some integer to pointer conversion warnings.
      advapi32: Fix pointer cast warnings on 64-bit.
      mshtml: Fix pointer cast warnings on 64-bit.
      msi: Fix pointer cast warnings on 64-bit.
      ntoskrnl.exe: Fix handle cast warnings on 64-bit.
      oleaut32: Fix handle cast warnings on 64-bit.
      setupapi: Fix pointer cast warnings on 64-bit.
      shell32: Fix a pointer cast warning on 64-bit.
      shdocvw: Fix a pointer cast warning on 64-bit.
      urlmon: Fix pointer cast warnings on 64-bit.
      user32: Fix pointer cast warnings on 64-bit.
      wininet: Fix handle cast warnings on 64-bit.
      ntdll: Fix pointer cast warnings on 64-bit.
      wineps.drv: Use INT_MAX instead of LONG_MAX to initialize a LONG value.
      ws2_32: Fix an error return value in bind().
      msvcrt: Fix an unused function warning on non-i386.
      rpcrt4: Fix an unused value warning on non-i386.
      ddraw: Fix an uninitialized variable warning on non-i386.
      quartz: Use SetWindowLongPtr to store a pointer value.
      wineconsole: Replace a couple of handle casts by the appropriate server function.
      winhlp32: Use LONG instead of long for data loaded from a file.
      winhlp32: Use GetWindowLongPtr to retrieve a pointer, and make sure there is enough space for it.
      winedbg: Fix pointer cast warnings on 64-bit.
      oleaut32/tests: Only compare the initialized part of DECIMAL variants.
      include: Fix packing of the setupapi structures.
      include: Fix packing of the STRRET structure.
      include: Fix packing of the msacm structures.
      include: Fix a number of mmsystem.h structure for Win64.
      gdi32/tests: Fix an uninitialized pointer check for Win64.
      rpcrt4/tests: Fix an uninitialized pointer check for Win64.
      shell32/tests: Fix some uninitialized handle checks for Win64.
      setupapi/tests: Pass the correct size to SetupDiGetDeviceInterfaceDetailA.
      comctl32: Fix the COMBOBOXEXITEM structure and the treeview handles for Win64.
      comctl32/tests: Fix lparam checks in the treeview test for Win64.
      gdi32/tests: Fix an uninitialized value check and a structure size for Win64.
      ole32/tests: Fix marshalling data layout for Win64.
      user32: Winproc handles do not get sign-extended on 64-bit.
      user32: The PackDDElParam return value is sign-extended on 64-bit.
      makedep: Copy the makefile to append dependencies instead of truncating in place.
      configure: Improve error reporting for missing 32-bit development environment.
      configure: Don't force a 32-bit build when cross-compiling.
      user32/tests: Centralize the tracing of the received messages in the msg.c test.
      user32/tests: Only display failing message sequences instead of every single message.
      user32/tests: Comment out the menu size tests, there's no consistent behavior to test for.
      user32/tests: Fix the layered window tests for some Vista versions.
      winebuild: Add -b as a short option for --target for gcc compatibility.
      configure: Specify the target flags directly from configure to avoid trouble on BSD make.
      cabinet: Don't try to copy data from the file if we don't even have a data buffer.
      ntdll: Check buffer for access in NtWriteFile before performing I/O.
      ntdll: Check buffer for access in NtReadFile before performing I/O.
      kernel32/tests: Add test cases for reading/writing from an invalid buffer address.
      gdi32/tests: Add a test case for calling WriteFile with the DIB section bits as buffer.
      kernel32: Remove the DIB section hack in WriteFile now that NtWriteFile takes care of it.
      ntdll: Check buffer for access in NtRead/WriteVirtualMemory.
      kernel32/tests: Add test cases for reading/writing process memory from an invalid buffer address.
      user32: Use the message_data_t union when receiving a message.
      user32/tests: Print the failure position in the message sequence.
      user32/tests: Add support for testing only some bits of wparam or lparam. Make some more messages optional.
      winebuild: Add -m32/-m64 options to allow 32/64-bit cross-compiles.
      server: Set stderr in line-buffered mode before doing anything else.
      user32/tests: Fix some more failures in the message test.
      gdiplus: Fix a typo that breaks the Mingw build.

Alistair Leslie-Hughes (8):
      mshtml: Add missing IHTMLStyle interfaces.
      mshtml: Implement IHTMLStyle get/set Attribute.
      msxml3: Add fixme for unsupported parameter.
      mshtml: Add missing IHTMLCurrentStyle interfaces.
      mshtml: Implement IHTMLStyle get/put borderLeftStyle.
      mshtml: Implement IHTMLStyle get/put borderBottomStyle.
      mshtml: Implement IHTMLStyle get/put borderRightStyle.
      mshtml: Implement IHTMLStyle get/put borderTopStyle.

Allan Tong (1):
      wined3d: Add code to cleanup device multistate_funcs.

Anders Jonsson (1):
      winebrowser: Fix typo.

Andrew Fenn (6):
      xinput1_3: Added stub code for XInputGetKeystroke.
      xinput1_3: Added tests for XInputGetKeystroke.
      xinput1_3: Added stub for XInputGetDSoundAudioDeviceGuids.
      xinput1_3: Added test for XInputGetDSoundAudioDeviceGuids.
      xinput1_3: Added stub code for XInputGetBatteryInformation.
      xinput1_3: Added test for XInputGetBatteryInformation.

Andrew Talbot (16):
      dbghelp: Declare some functions static.
      dpnet: Declare a function static.
      dsound: Declare some variables static.
      inkobj: Declare a variable static.
      jscript: Declare a function static.
      msacm32: Declare a function static.
      msacm32: Declare a variable static.
      d3dxof: Declare a function static.
      mshtml: Declare a function static.
      iphlpapi: Remove unused function.
      ddraw: Fix double unlock of critical section.
      msi: Declare some functions static.
      ole32: Declare a function static.
      qcap: Declare a function static.
      riched20: Declare some functions static.
      riched20: Declare some functions static.

Andrey Turkin (20):
      user32: GetUserObjectSecurity should return a valid security descriptor.
      shell32: Add explorer toolbar bitmaps.
      ntdll: Always set output values in RtlGetDaclSecurityDescriptor.
      shell32: Fix typo.
      include: Add more definitions to winuser.rh.
      loadperf: Add stub loadperf.dll.
      loadperf: Add UnloadPerfCounterTextStrings stubs.
      loadperf: Add LoadPerfCounterTextStrings stubs.
      ntoskrnl: Add version resource.
      ntdll: Add RtlCaptureStackBackTrace stub.
      programs: Add cacls stub.
      httpapi: Add HttpInitialize and HttpTerminate stubs.
      httpapi: Add HttpDeleteServiceConfiguration, HttpQueryServiceConfiguration and HttpSetServiceConfiguration stubs.
      setupapi: Add support for DIRID_PRINTPROCESSOR.
      include: Add ctxtcall.idl file with IContextCallback interface definition.
      ole32/tests: Add test for IContextCallback.
      ole32: Add IContextCallback interface to context object.
      ole32: Do not crash in WriteClassStg if passed NULL pointer.
      gdiplus: GdipLoadImageFromStream should use well-known pixel format constants when possible.
      qmgr: Make credentials stubs return success code.

André Hentschel (1):
      comctl32/tests: Fix wrong comment-headline in toolbar.c.

Austin English (7):
      kernel32: Add heap support for OpenBSD.
      ntdll: Add file support for OpenBSD.
      mpr: Fix a compiler warning on PowerPC.
      kernel32: Fix a compiler warning on non-i386.
      httpapi: Add stub dll.
      ole32: Add tests for CoInitializeEx.
      iphlpapi: Define RTF_MULTICAST if not available.

Austin Lund (1):
      riched20/tests: Added ITextServices::TxSetText test.

Chris Wulff (2):
      gdiplus: Partial implementation of GdipCreateHatchBrush.
      gdiplus: Implement hatch brush accessor functions.

Christian Costa (2):
      d3dxof: Avoid accessing template/object buffer directly.
      mciavi: In MCI, RECT structure is used differently: rc.right = width & rc.bottom = height so do the conversion when needed.

Damjan Jovanovic (1):
      winex11: Support the startup notification fd.o spec.

David Adam (2):
      d3dx9_36/test: Remove an unconsistent test.
      d3dx9: Fix falling tests in native windows.

Detlef Riekenberg (1):
      localspl: Call DrvDriverEvent in AddPrinterDriverEx.

Dmitry Timoshkov (10):
      winex11: Indicate that dmDisplayFlags is also initialized.
      credui: Use "-1" as a "don't care value", fix dialog id duplicates.
      cryptui: Use "-1" as a "don't care value", fix dialog id duplicates.
      mshtml: Use "-1" as a "don't care value", fix dialog id duplicates.
      serialui: Use "-1" as a "don't care value", fix dialog id duplicates.
      oleview: Use "-1" as a "don't care value", fix dialog id duplicates.
      progman: Use "-1" as a "don't care value", fix dialog id duplicates.
      winemine: Use "-1" as a "don't care value", fix dialog id duplicates.
      wordpad: Use "-1" as a "don't care value", fix dialog id duplicates.
      wrc: Warn for duplicate dialog ids.

Dylan Smith (28):
      richedit: Fix unicode truncation on EM_GETLINE message.
      richedit: Mask window id on WM_COMMAND notifications.
      richedit: Use 32-bit rather than 16-bit trackbar value for scrolling.
      richedit: Scroll up with less than page of text with ES_DISABLENOSCROLL.
      richedit: Prevent redundant rewraps when scrollbar is shown.
      richedit: Avoid rewrapping all text for isolated format changes.
      richedit: Added tests for WM_GETDLGCODE message.
      richedit: Fixed implementation of WM_GETDLGCODE message.
      richedit: Missing condition for inserting newline before table.
      wordpad: Use winelib's sprintfW for floating point formatting.
      wordpad: Use unicode version of CBEM_GETITEM message.
      richedit: Added tests to show that options are stored internally.
      richedit: Added tests for autoscrolling options based on WS_V/HSCROLL.
      richedit: Tested EM_CHARFROMPOS with position outside of control.
      richedit: Pressing enter adds newline on WM_KEYDOWN rather than WM_CHAR.
      richedit: Set bEmulateVersion10 initially to avoid retroactive  changes.
      richedit: Prevent an unsigned integer underflow.
      richedit: Store mouse captured state rather than calling GetCapture.
      richedit: Added tests for zooming.
      richedit: Zoom in and out with mouse wheel with control held.
      richedit: Correct limitations on values for setting zoom ratio.
      richedit: Clip painting to formatting rectangle.
      richedit: Implemented the horizontal scrollbar.
      richedit: Fix implementation of handling Page Up/Down keys.
      richedit: Added tests for initial options.
      richedit: Store an internal copy of the window style flags.
      richedit: Prevent copying PARAFORMAT2 fields from PARAFORMAT struct.
      richedit: Respect the cbSize field on EM_GETPARAFORMAT.

Erich Hoover (2):
      wcmd: Handle batch scripts containing quotes within quotes.
      wcmd: Fix redirecting a pipe to another pipe.

Francois Gouget (37):
      winemine: Make some functions static.
      cmd: Make WCMD_ask_confirm() static.
      cmd: WCMD_strtrim_trailing_spaces() is unused so remove it.
      cmd: Make some functions static.
      oleview: Make some functions static.
      gdi32: Remove some dead code.
      winedos: Remove unused functions from devices.c.
      winedos: VGA_SetTextAttribute() is unused so remove it.
      winedos: VGA_SetQuadPalette() is unused so remove it.
      d3dxof: Reorder some functions to avoid forward declarations.
      view: Make FileIsPlaceable() and GetPlaceableMetaFile() static.
      quartz: Reorder some functions to avoid forward declarations.
      w32skrnl: _GetThunkBuff() is unused so remove it.
      dnsapi: dns_ns_name_pton() is unused so remove it.
      dnsapi: Reorder a couple of functions to avoid forward declarations.
      Assorted spelling fixes.
      quartz: OutputPin_DeliverNewSegment() is unused so remove it.
      winapi_test: Updated so the generated tests work.
      winapi_test: FIELD_ALIGNMENT() is redundant so remove it.
      winapi_test: Fix TEST_FIELD() so it correctly tests the field size.
      winapi_test: The real tests are done at compile time so use C_ASSERT() instead of ok(). Do only one test per line so one can know exactly what went wrong.
      winapi_test: The tests don't support WIN64 yet so disable them there.
      winhlp32: Reorder some functions to avoid forward declarations in winhelp.c.
      winhlp32: Make some functions static in winhelp.c.
      ole32: Don't use the default debug channel before it has been defined.
      winhlp32: Reorder some functions to avoid forward declarations in macro.c.
      winhlp32: Make some functions static in macro.c.
      setupapi: Fix the StringTableLookUpStringEx() prototype.
      xinput1_3/tests: Add a trailing '\n' to an ok() call.
      kernel32: Fix the sysctl() usage and the CPU detection on NetBSD.
      configure: Check for HAL and GnuTLS even if pkg-config is not present.
      rpcrt4/tests: Add a trailing '\n' to ok() calls.
      widl: Add a trailing '\n' to an error() message.
      ddrawex: Add a trailing '\n' to a Wine trace.
      configure: Check for ESound, FreeType, GPhoto2 and SANE even if their 'xxx-config' tool is missing.
      winhlp32: Reorder some functions to avoid forward declarations in hlpfile.c.
      winhlp32: Make some functions static in hlpfile.c and remove HLPFILE_PointsToTwips().

G. Paul Ziemba (1):
      ntdll: Clear IEXTEN when clearing ICANON.

Ge van Geldorp (11):
      ole32/tests: Work around broken Windows urlmon.dll.
      ole32/tests: Add declarations which are not present in SDK headers.
      comctl32/tests: Fix title bar tests for non-English locales.
      wininet/tests: INTERNET_STATUS_CLOSING_CONNECTION and  ..._CONNECTION_CLOSED callbacks can appear after ..._REQUEST_COMPLETE.
      mscms/tests: Pass correct device name to AssociateColorProfileWithDevice().
      mshtml/tests: Skip a couple of tests when IE is running in Enhanced Security Configuration.
      urlmon/tests: Skip a couple of tests when IE is running in Enhanced Security Configuration.
      msi/tests: Opening package with relative filename sometimes succeeds on Windows.
      rpcrt4/tests: Remove NdrVaryingArrayUnmarshall() test, it is broken on Windows.
      user32/tests: keybd_event can send HCBT_KEYSKIPPED notifications.
      shell32/tests: Prevent crash on XP/W2K3.

Gerald Pfeifer (2):
      README: Make FreeBSD requirements less conservative, only requiring FreeBSD 6.3.
      Sync documentation/README.de.

Hans Leidekker (19):
      winhttp: Set last error for invalid URLs passed to WinHttpCrackUrl.
      setupapi: Add stubs for pSetupInstallCatalog and pSetupVerifyCatalogFile.
      sfc: Add missing exports.
      sfc: Add a stub implementation for ordinal 3.
      setupapi: Implement StringTableLookUpStringEx.
      setupapi: Have each test create and destroy its own string table.
      setupapi: Add tests for StringTableAddStringEx and StringTableLookupStringEx.
      usp10: Improve handling of whitespace in ScriptBreak.
      usp10: Handle CR/LF in ScriptItemize.
      usp10: Set better visual attribute values in ScriptShape.
      usp10: Improve some traces.
      qmgr: Improve a couple of stubs.
      setupapi: Add some tests for StringTableLookUpStringEx. Make them pass.
      setupapi: Enable reuse of create_inf_file in tests.
      setupapi: Fix resolving target path when given a section. Default to the system directory.
      wininet: Send a content length header for all verbs other than GET.
      shell32: Implement GUIDFromStringW.
      wininet: Implement InternetReadFileExW.
      wininet: Calculate the header size if needed in HttpSendRequestW.

Henri Verbeet (60):
      wined3d: Fix the line number for some fglrx spam.
      wined3d: Don't bother with the GLSL info log if nobody's looking.
      d3d: Fix the value of D3DFVF_POSITION_MASK.
      wined3d: Handle WINED3DFVF_XYZW in get_flexible_vertex_size().
      wined3d: Convert textures to a bitmap in struct SAVEDSTATES.
      ntdll: Fix ExceptionAddress for FPU exceptions.
      ntdll: Don't throw masked FPU exceptions.
      ntdll: Add a small test for FPU exceptions.
      wined3d: Convert transform to a bitmap in struct SAVEDSTATES.
      wined3d: Convert renderState to a bitmap in struct SAVEDSTATES.
      wined3d: Convert samplerState to a bitmap in struct SAVEDSTATES.
      d3d9: Remove d3d8 enum elements from D3DTEXTURESTAGESTATETYPE.
      wined3d: Remove unused enum elements from WINED3DTEXTURESTAGESTATETYPE.
      d3d9: Don't test invalid texture stages.
      ddraw: Properly handle sampler states.
      d3d: Explicitly translate texture stage states.
      wined3d: Renumber WINED3DTEXTURESTAGESTATETYPE enum elements.
      wined3d: Convert textureState to a bitmap in struct SAVEDSTATES.
      wined3d: Also apply the last sampler state.
      wined3d: Make calling a query from the wrong context a FIXME.
      wined3d: Simplify IWineD3DOcclusionQueryImpl_GetData().
      wined3d: Don't delete queries from the wrong context.
      wined3d: Remove a redundant parameter to drawPrimitive().
      wined3d: Cleanup drawStridedFast().
      wined3d: Move position_transformed out of u.s in struct WineDirect3DVertexStridedData.
      wined3d: Simplify handling of swizzled attributes.
      wined3d: Add support for EXT_vertex_array_bgra.
      wined3d: Enable GL_HALF_FLOAT_NV when NV_HALF_FLOAT is supported.
      wined3d: Use GL_ALIASED_POINT_SIZE_RANGE to retrieve the max point size.
      wined3d: Failing HeapAlloc() should be an ERR.
      wined3d: Simplify checking if an attribute is used in loadNumberedArrays().
      wined3d: Remove a silly check in drawStridedInstanced().
      wined3d: Rewrite BeginStateBlock() to use CreateStateBlock() instead of duplicating the code.
      wined3d: Remove stray tabs.
      wined3d: Update the pixelshader when the texture type changes.
      wined3d: Get rid of D3DINITIALIZEBASETEXTURE.
      wined3d: Get rid of D3DCREATESHADEROBJECTINSTANCE.
      wined3d: Fix and unify shader creation error handling.
      dsound: Const correctness fixes.
      wined3d: Get rid of D3DCREATERESOURCEOBJECTINSTANCE.
      wined3d: Fix texture creation error handling.
      wined3d: Fix surface creation error handling.
      wined3d: Fix volume texture creation error handling.
      wined3d: Fix cube texture creation error handling.
      wined3d: Remove CleanDirtyBox().
      wined3d: Remove AddDirtyBox() from the public interface.
      wined3d: Remove AddDirtyRect() from the public interface.
      wined3d: Get rid of D3DCREATEOBJECTINSTANCE.
      wined3d: Fix a memory leak in CreateSwapChain() error handling.
      dxgi: Add a stub IDXGISurface implementation.
      d3d10core: Add a stub ID3D10Texture2D implementation.
      wined3d: Implement a R5G6B5 to X8R8G8B8 surface format converter.
      wined3d: Remove some comments.
      dsound: Don't convert single samples at a time.
      wined3d: Add an IWineD3DDeviceParent interface.
      dxgi: Add a small test for CreateSurface().
      d3d10core: Add a small test for CreateTexture2D().
      d3d8: Properly test for dynamic usage in device_parent_CreateSurface().
      d3d9: Properly test for dynamic usage in device_parent_CreateSurface().
      ddraw: Add extern to some global variable declarations.

Hervé Chanal (1):
      shell32: A nicer icon for desktop.

Huw Davies (12):
      comdlg32: Update the original dialog structure rather than a temporary copy.
      comdlg32: Use the DEVMODE and DEVNAMES directly from the PAGESETUPDLG structure.
      comdlg32: Keep the DEVMODE's orientation member up to date.
      comdlg32: Keep the DEVMODE's papersize member up to date.
      comdlg32: Use a unicode dialog.
      comdlg32: We no longer need to update the dialog struct on exit as all of the information is up to date.
      comdlg32: If a measurement system isn't specified use the default one and update the Flags field to reflect this.
      comdlg32: Simplify the margin initialization.
      comdlg32: Set the margin edit controls using unicode functions.
      comdlg32: Remove a couple of obsolete WARN()s.
      comdlg32: Correctly rotate the margins when the paper orientation is changed.
      comdlg32: Add an is_metric() helper function.

Hwang YunSong(황윤성) (1):
      cryptui: New Korean resource.

Jacek Caban (13):
      mshtml: Added IHTMLWindow2::get_location implementation.
      mshtml: Added IDispatchEx support to HTMLLocation object.
      mshtml: Fixed IOmNavigator::get_platform for win64 platform.
      urlmon: Skip more tests on old IE and ignore BINDSTATUS_PROXYDETECTING notification.
      wininet: Improve NETCON_recv over SSL implementation.
      wininet: Use SSL_pending in NETCON_query_data_available.
      urlmon: Added https pluggable protocol handler.
      wininet: Make sure that we have data buffered before sending INTERNET_STATUS_REQUEST_COMPLETE notification.
      urlmon: Call ReportProgress(BINDSTATUS_ACCEPTRANGES) in https handler.
      urlmon: Added HttpSProtocol object tests.
      urlmon: Ignore ReportProgress(BINDSTATUS_ACCEPTRANGES) calls.
      urlmon: Use pluggable protocol handler for https binding.
      urlmon: Added https binding tests.

Jeff Latimer (3):
      user32: Check for NULL pData in DdeClientTransAction expecting to be passed a handle.
      user32/tests: Add tests for DdeGetData Ascii interface.
      user32/tests: Clarify the msgs to differentiate Unicode and ASCII in tests.

Juan Lang (29):
      crypt32: Add stub for CryptMsgEncodeAndSignCTL.
      crypt32: Add stub for CryptMsgSignCTL.
      crypt32: Implement CryptMsgEncodeAndSignCTL on top of CryptMsgSignCTL.
      crypt32: Implement CryptMsgSignCTL.
      crypt32: Use specified inner content type for signed messages when it's given.
      cryptui: Add a (empty) certificate manager dialog.
      cryptui: Add purpose selection and column headings to certificate manager dialog.
      cryptui: Show names of stores certificate manager dialog.
      cryptui: Display contents of certificate store in certificate manager dialog.
      cryptui: Refresh store display when a tab is switched or the purpose selection is changed in the certificate manager dialog.
      cryptui: Add a (empty) advanced dialog to the certificate manager dialog.
      cryptui: Add known usages to certificate manager dialog's advanced dialog.
      cryptui: Allow toggling a usage in the certificate manager dialog's advanced dialog.
      cryptui: Recall usage state from registry in certificate manager dialog's advanced dialog.
      cryptui: Save purposes in certificate manager dialog's advanced dialog.
      cryptui: Add saved purposes to the purpose selection in the certificate manager dialog.
      cryptui: Refresh cert view when purpose selection is changed in the certificate manager dialog.
      cryptui: Filter shown certs according to purpose selection in certificate manager dialog.
      cryptui: Enable/disable controls based on selection in certificate manager dialog.
      cryptui: Show selected certificate when requested in the certificate manager dialog.
      cryptui: Show usages for selected cert in certificate manager dialog.
      cryptui: Implement removing certificates from certificate manager dialog.
      cryptui: Set appropriate radio button in CryptUIWizImport if the destination store is specified.
      cryptui: Call CryptUIWizImport from the certificate manager dialog.
      cryptui: Fix crash with native riched20.
      cryptui: Improve control spacing.
      cryptui: Don't make certificate status control disabled.
      riched20: Add stub IOleClientSite interface.
      shell32: Document SHFlushSFCache, and remove an unneeded fixme.

Lei Zhang (1):
      quartz: Add a filtergraph test for mpeg files.

Markus Weiland (1):
      dxdiaxgn: Implemented retrieval of szDeviceIdentifier property.

Michael Karcher (7):
      ole32: Add HICON user marshalling stubs.
      oleaut32: Implement IPropertyBag::Read proxying.
      widl: Make write_base_type take a format char instead of a type desc ptr.
      widl: Write struct fields as signed fields.
      widl: Fix handling of [local] functions without [call_as].
      widl: Don't forget conformance info on [iid_is] void pointers.
      widl: Dereference operator in expr works on any declared pointer.

Michael Stefaniuc (82):
      dpnet: Remove superfluous casts.
      browseui: Remove superfluous casts from/to void pointers.
      ddraw/tests: Simplify a pointer increment.
      ddraw/tests: Remove superfluous casts.
      mshtml: Add the Romanian translation.
      mshtml: Fix a dialog size for the Pt and Si translations.
      appwiz.cpl: Add Romanian translation.
      include: Change RPC_STATUS from long to LONG for Win64 compatibility.
      include: Change unsigned long to ULONG in rpcdce.h for Win64 compatibility.
      include: Use LONG instead of long in richedit.h.
      include: Change long to LONG in d3dtypes.h for Win64 compatibility.
      include: Change RPC_LENGTH to ULONG for Win64 compatibility.
      msi: Change MSIHANDLE to ULONG for Win64 compatibility.
      include: Change long to LONG in olectl.h for Win64 compatibility.
      comctl32/tests: Do not cast the IDC_* defines to a LPSTR.
      include: Use ULONG instead of unsigned long in ipexport.h.
      include: sspi.h: Use the Win types as per MSDN.
      include: Change the rest of sspi.h to use LONG/ULONG for Win64 compatibility.
      include: Change mapix.h to use ULONG for Win64 compatibility.
      include: Change  twain.h to use LONG/ULONG for Win64 compatibility.
      include: Change mapi.h to use ULONG for Win64 compatibility.
      imm32: Remove superfluous casts.
      fusion: Remove superfluous casts.
      qcap: Remove superfluous casts.
      cmdlgtst: Remove superfluous casts.
      amstream: Remove superfluous casts.
      dmband: Remove superfluous casts.
      dmcompos: Remove superfluous casts.
      winecfg: Remove superfluous casts.
      mapi32: Remove superfluous casts.
      ddrawex: Remove redundant NULL check before HeapFree (Smatch).
      include: Change MUSIC_TIME from long to LONG for Win64 compatibility.
      include: Use LONG instead of long in dmusici.h for Win64 compatibility.
      include: Use LONG instead of long in msacmdrv.h.
      include: Change to ULONG in dmerror.h for Win64 compatibility.
      include: Change to LONG/ULONG in xcmc.h for Win64 compatibility.
      include: Use LONG instead of long in dmusics.h for Win64 compatibility.
      include: Change from long to LONG in the remaining DirectMusic headers.
      widl: Move "inline" right after the storage class specifier.
      crypt32/tests: Remove some superfluous pointer casts.
      dsound: Remove superfluous pointer casts.
      mpr: Remove superfluous pointer casts.
      msvfw32: Remove superfluous pointer casts.
      include: Use ULONG in rpcdcep.h for Win64 compatibility.
      include: Use LONG in vfw.h for Win64 compatibility.
      dxgi: Remove superfluous pointer casts.
      include: Replace unsigned long with unsigned int in winerror.h.
      wsock32: Remove superfluous pointer casts.
      devenum: Remove superfluous pointer casts.
      wldap32: Remove superfluous pointer casts.
      dmloader: Remove superfluous pointer casts.
      rsaenh: Remove superfluous pointer casts.
      dmscript: Remove superfluous pointer casts.
      dmstyle: Remove superfluous pointer casts.
      uxtheme: Remove superfluous pointer casts.
      advapi32/tests: Remove superfluous pointer casts.
      wintrust/tests: Remove superfluous pointer casts.
      user32/tests: Do not cast the (IDC|IDI|RT)_* defines to LPSTR.
      version: Remove superfluous pointer casts.
      dmusic: Remove superfluous pointer casts.
      dmime: Remove superfluous pointer casts.
      comdlg32: Fix typo in #pragma line in cdlg_Ro.rc.
      wineps.drv: Add the Romanian translation.
      setupapi: Add the Romanian translation.
      comdlg32: Remove superfluous pointer casts.
      ddraw: Remove superfluous pointer casts.
      ddrawex: Remove superfluous pointer casts.
      include: Change to LONG/ULONG in fci.h for Win64 compatibility.
      include: Change to LONG/ULONG in fdi.h for Win64 compatibility.
      gdiplus: Remove superfluous pointer casts.
      dswave: Remove superfluous pointer casts.
      d3d8: Remove superfluous pointer casts.
      cryptnet: Remove superfluous pointer casts.
      mciseq: Remove superfluous pointer casts.
      msi/tests: Remove superfluous pointer casts.
      msrle32: Remove superfluous pointer casts.
      msi: Remove superfluous pointer casts.
      regedit: Remove superfluous pointer casts.
      dxdiagn: Remove superfluous pointer casts.
      winejack.drv: Remove superflouous pointer casts.
      dplayx: Remove superfluous pointer casts.
      riched20: Fix a typo (stray address of operator).

Nikolay Sivov (13):
      oleaut32: Add PICTYPE_NONE and PICTYPE_UNINITIALIZED to IPicture_get_Attributes.
      oleaut32: Check pointer in IPicture_get_Attributes.
      ole32: Fix return value for DefaultHandler_GetMiscStatus.
      oleaut32: Check pointer in IPicture::get_Handle.
      oleaut32: Check pointer in IPicture::get_Type.
      oleaut32/tests: Fix copy/paste typo in test output.
      ole32: Fix some comment typos.
      ole32: Some tests for IMoniker::IsRunning with NULL args.
      kernel32: Implemented GetErrorMode().
      ntdll: Check pointers in NtAccessCheck to prevent access violation.
      kernel32/tests: Some todo tests for CompareStringA and lstrcmpi.
      advapi32/tests: Test for enumeration order preservation of reg keys.
      advapi32: Added SaferCreateLevel stub.

Paul Bryan Roberts (1):
      libwine: Avoid writing to repository during install.

Paul Vriens (24):
      d3d8/tests: Fix a test failure on VMware and VirtualBox.
      shdocvw/tests: Fix test failures on XP SP2 and higher.
      shell32/tests: Fix some test failures on Vista and W2K8.
      advapi32/tests: Fix two test failures on Vista and W2K8.
      shell32/tests: Fix some test failures on Win9x and NT4.
      shell32/tests: Change some tests with respect to Vista.
      shell32/tests: Fix some test failures on Vista.
      shell32/tests: Use a different name for the return value.
      shell32/tests: Fix some test failures on NT4 (FO_MOVE).
      shell32/tests: Fix some test failures on NT4 (FO_COPY).
      setupapi/tests: Skip some tests if we don't have enough rights.
      msi/tests: Skip some tests if we don't have enough rights.
      shell32/tests: Fix test failures on Win9x, NT4 and Vista (FO_RENAME).
      wintrust/tests: Add a few tests.
      wintrust: Fix removing a catalog file.
      shell32/tests: Fix the last test failure on Win9x.
      shell32/tests: Fix some errors on NT4 (FO_DELETE).
      shell32/tests: Fix some test failures on Vista.
      shell32/tests: Fix remaining test failures on NT4.
      shell32/tests: Fix test failures on Vista.
      shell32/tests: Skip a test on Vista.
      crypt32/tests: Make tests run on some Win9x boxes again.
      setupapi/tests: Fix some test failures on win9x.
      ddrawex/tests: Don't crash on win9x.

Pavel Troller (1):
      ntdll: Fix serial.c for linux-2.6.28.

Peter Urbanec (1):
      wintab32: Check for NULL before using context.

Rich Ercolani (1):
      winefile: Fix NULL pointer deref in read_tree.

Rico Schüller (2):
      wined3d: Add a checkGLcall() after glReadBuffer.
      setupapi: Fix if condition in SetupEnumInfSectionsA/W.

Rob Shearman (22):
      widl: Add aliased types to the typelib for statements in the library block if the typedef itself doesn't need to be added.
      widl: Do the consistency checks on interfaces after parsing is complete.
      widl: Move funcs and stmts fields from type_t structure to module_details and function_details.
      widl: Access array type properties through accessors instead of getting them directly.
      widl: Add new type_is_alias and type_get_real_type helper functions.
      widl: Move duptype and alias to parser.y.
      widl: Move creation of module type into a separate function, type_new_module and give it a special FC type.
      widl: Don't store typelib kind information in the type structure.
      widl: Add function for getting the interfaces defined by a coclass type.
      widl: Move the ifaces field of the type_t structure to coclass details.
      widl: Add a new function, type_array_get_element.
      widl: Add a new function, type_pointer_get_ref.
      widl: Add a new function, type_iface_get_inherit.
      widl: Add new function, type_iface_get_stmts.
      widl: Replace uses of get_func_return_type with type_function_get_rettype.
      widl: Determine the type of an array entirely at code generation time instead of at parse time.
      widl: Make the case of messages output by warning and error functions consistent.
      oleaut32: Dump MSFT format typeinfos upon loading.
      ntoskrnl: Free allocated buffers on exit from wine_ntoskrnl_main_loop.
      user32: Free allocated memory in USER_unload_driver.
      oleaut32: Test the return value of the remote IWidget_StructArgs call.
      rpcrt4: Unmarshalling functions should always set fMustAlloc when allocating memory.

Stefan Dösinger (21):
      ddraw: Add a test for IDirectDrawSurface::GetDC.
      ddraw: Reject IDirectDraw3 QI in ddraw.dll.
      include: Fix a typo in ddraw.h.
      include: Fix a IDirectDrawSurface4 method prototype.
      include: Fix the EnumOverlayZOrders prototype.
      ddrawex: Implement a wrapper around IDirectDraw.
      ddrawex: Start some tests.
      ddraw[ex]: Show a caps handling difference.
      ddrawex: Add a refcount test.
      ddrawex: Create a surface wrapper.
      ddrawex: Implement a GetDC special behavior Internet Explorer depends on.
      ddrawex: Make the GetDC test more generic.
      ddrawex: Add a test for the permanent DC function.
      wined3d: Remove the pixelshader fogstart/fogend optimization.
      wined3d: Use the ARB fog option in ARB_fragment_program shaders.
      wined3d: Move fogdensity and fogcolor to the fragment pipeline.
      wined3d: Remove the apply_pshader_fog state handler.
      wined3d: Split the remains of state_fog.
      wined3d: Avoid hooking non-fog glEnable/glDisable calls.
      d3d9: Properly set AutoRestoreDisplayMode.
      d3d9: Use D3DFOG_* constants instead of plain integers.

Stefan Leichter (2):
      shell32: Add stub for ordinal 526.
      shell32: Rename ordinal 525 to SHFlushSFCache.

Stefan Reimer (1):
      loader: Fix build with gcc-4.3 and ssp.

Vincent Pelletier (1):
      wined3d: Make WARN about oversized texture output surface and texture sizes.

Vincent Povirk (3):
      start.exe: Don't use the NO_UI flag when invoked with /unix.
      explorer: Quiet a few fixmes.
      winex11: Select StructureNotifyMask input on all windows.

Vitaliy Margolen (2):
      dinput: Allow for holes in device status structure.
      dinput: Copy device data up to maximum available bytes.

--
Alexandre Julliard
julliard@winehq.org
