What's new in this release (see below for details): - BiDi text support in the multi-line edit control. - Support for pattern brushes in the DIB engine. - A number of MSXML fixes. - Improvements to the PostScript driver. - Various bug fixes.

Aric Stewart (11): usp10: Correct itemizing multiple spaces at the beginning of a run. msctf: Increase buffer to have room for full key. user32: Use Uniscribe in the multiline edit control. user32: When building linedefs prev can be less than 0 if the format width is less than the width of a single character. user32: Handle PosFromChar if the string is empty and so we have no ssa. user32: Improvement for performance in soft linebreaking. usp10: All glyphs in a single indic syllable are part of the same cluster. usp10: Sinhala does glyph props like Indic languages. user32: Respect rev for painting selections. user32: Early versions of usp10 are not well behaved with ScriptString_pSize when SCRIPT_STRING_ANALYSIS is NULL. user32: Only attempt autoscroll line breaking on an edit control when we have a reasonable width to break to.

Austin English (5): winex11: Only declare the winediag debug channel if OpenGL is enabled. winex11: Only declare X11DRV_DIB_QueryXShm if XShm is supported. wininet: Add a stub for RunOnceUrlCache. wininet: Add a stub for ShowClientAuthCerts. urlmon: Add some more tests for FindMimeFromData().

Eric Pouech (2): icinfo: Compile the IcInfo program as a command-line app. icinfo: No longer use stdio functions, but direct kernel32 ones.

Francois Gouget (5): d3dx9_36/tests: Add a trailing '\n' to an ok() call. msvcp90: Add a space before an implementation function name in the spec file. winealsa.drv: Give a name to the mmdevapi critical sections. services: Give a name to the scmdatabase critical section. wineconsole: Give a name to the curses backend critical section.

Hans Leidekker (10): msi: Wait up to 30 seconds for services to start up. msi/tests: Fix some test failures on win2k. msi/tests: Fix a skip message. msi: Fix the log mode for progress messages. msi: Handle some more message types in MSI_ProcessMessage. msi: Set the ComputerName property. vbscript: Add a version resource. jscript: Add a version resource. msiexec: Preserve the first argument in process_args_from_reg. msi: GetComputerName returns ERROR_BUFFER_OVERFLOW when the buffer is too small.

Henri Verbeet (50): wined3d: Only try to load surfaces from the drawable if the drawable is current in surface_load_sysmem(). wined3d: Reject multisampled readbacks in wined3d_surface_get_render_target_data(). wined3d: Get rid of surface_gdi_cleanup(). wined3d: Make the context parameter to bind_dummy_textures() const. wined3d: Make the device parameter to SetupForBlit() const. wined3d: Upload directly from the source surface in wined3d_surface_blt(), if possible. ddraw: Keep track of the affected rectangle for ddraw_surface_update_frontbuffer(). ddraw: Read/draw from/to the actual screen when there is no swapchain window. wined3d: Make the device parameter to context_apply_blit_state() const. wined3d: Make the device parameter to context_apply_clear_state() const. wined3d: Mark a format as sRGB attachable if the internal format is the same for RGB and sRGB. wined3d: Only check for sRGB attachability when needed in surface_load_texture(). gdi32: Update the DC in ExtEscape(). wined3d: Get rid of the device parameter to context_setup_target(). wined3d: Move the ARB shader program constant handling to the backend where it belongs. wined3d: Recognize Sumo/Llano in select_card_amd_mesa(). secur32: Print the ntlm_auth diagnostic message to the winediag channel. wined3d: Get rid of the unused palette9 wined3d_surface field. wined3d: Make the device parameter to wined3d_surface_depth_blt_fbo() const. wined3d: Make the device parameter to surface_blt_fbo() const. wined3d: Use the correct pitch in surface_upload_data(). ddraw: Only update primary_lock when we're actually locking the frontbuffer. wined3d: Rename nCfgs to cfg_count. wined3d: Make the device parameter to surface_blt_to_drawable() const. wined3d: Make the device parameter to wined3d_event_query_test() const. d3d8: Implement CopyRects() on top of wined3d_surface_blt(). ddraw: Implement copy_mipmap_chain() on top of wined3d_surface_blt(). ddraw: Implement ddraw_surface7_BltFast() on top of wined3d_surface_blt(). wined3d: Make the device parameter to wined3d_event_query_finish() const. wined3d: Make the device parameter to wined3d_event_query_issue() const. wined3d: Get rid of the wined3d_surface_bltfast() export. wined3d: Create the DIB section for DDSCAPS_OWNDC surfaces on initialization. wined3d: Get rid of the local_constant typedef. wined3d: Make the buffer parameter to buffer_is_dirty() const. wined3d: Make the buffer parameter to buffer_is_fully_dirty() const. wined3d: Construct the projection matrix directly in set_blit_dimension(). wined3d: Construct the rhw projection matrix directly in transform_projection(). wined3d: Construct the non-rhw projection matrix directly in transform_projection(). wined3d: Make the buffer parameter to buffer_sanitize_flags() const. wined3d: Make the shader parameter to shader_arb_load_constantsF() const. wined3d: Use wined3d_surface_blt() in surface_upload_from_surface(). wined3d: Use wined3d_surface_blt() in wined3d_swapchain_get_front_buffer_data(). wined3d: Use wined3d_surface_blt() in swapchain_gl_present(). wined3d: Avoid a drawable -> texture transfer through sysmem in arbfp_blit_surface() with backbuffer ORM. wined3d: Add fallbacks for d3d9 and d3d10 cards in select_card_amd_mesa(). wined3d: Merge surface_getdc() and gdi_surface_getdc(). wined3d: Make some parameters to shader_generate_arb_declarations() const. wined3d: Make the shader parameter to init_output_registers() const. wined3d: Make the shader parameter to shader_arb_generate_vshader() const. wined3d: Make the shader parameter to shader_arb_generate_pshader() const.

Vitaliy Margolen (4): dinput: Restore checks for DirectX 3 buffer size. dinput: Report mouse and keyboard as being emulated. This works better for some games. dinput8: Register CLSID_DirectInputDevice8. dinput: Window supplied to SetCooperativeLevel have to be top level window.