From 945ec28ec8a898706f71ff01801b359880699e8a Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 9 Jun 2015 06:02:07 +0200 Subject: [PATCH] Added patch to ensure console InsertMode changes take effect immediately. --- README.md | 3 +- debian/changelog | 1 + ...2-Set-console-InsertMode-immediately.patch | 27 +++++++ patches/patchinstall.sh | 80 +++++++++++-------- 4 files changed, 78 insertions(+), 33 deletions(-) create mode 100644 patches/kernel32-InsertMode/0001-kernel32-Set-console-InsertMode-immediately.patch diff --git a/README.md b/README.md index b5ac1bf7..e3fa9889 100644 --- a/README.md +++ b/README.md @@ -39,12 +39,13 @@ Wine. All those differences are also documented on the Included bug fixes and improvements ----------------------------------- -**Bug fixes and features included in the next upcoming release [17]:** +**Bug fixes and features included in the next upcoming release [18]:** * Add implementation for kernel32.GetNumaProcessorNode ([Wine Bug #38660](https://bugs.winehq.org/show_bug.cgi?id=38660)) * Add semi-stub for FileFsVolumeInformation information class ([Wine Bug #21466](https://bugs.winehq.org/show_bug.cgi?id=21466)) * Allow to enable/disable InsertMode in wineconsole settings ([Wine Bug #38697](https://bugs.winehq.org/show_bug.cgi?id=38697)) * Allow to set pixel format for desktop window +* Ensure console InsertMode changes take effect immediately * Fix endless loop in regedit when importing files with very long lines * Fix link notification conditions for riched20 ([Wine Bug #35949](https://bugs.winehq.org/show_bug.cgi?id=35949)) * Forward GIF encoder requests to windowscodecs ([Wine Bug #34356](https://bugs.winehq.org/show_bug.cgi?id=34356)) diff --git a/debian/changelog b/debian/changelog index 029979f8..4cf9b580 100644 --- a/debian/changelog +++ b/debian/changelog @@ -41,6 +41,7 @@ wine-staging (1.7.45) UNRELEASED; urgency=low * Added patch to fix handling of periodic advice timers causing high CPU usage. * Added patch to forward GIF encoder requests to windowscodecs. + * Added patch to ensure console InsertMode changes take effect immediately. * Removed patch to handle '\r' as whitespace in wbemprox queries (accepted upstream). * Removed patch to make sure OpenClipboard with current owner doesn't fail diff --git a/patches/kernel32-InsertMode/0001-kernel32-Set-console-InsertMode-immediately.patch b/patches/kernel32-InsertMode/0001-kernel32-Set-console-InsertMode-immediately.patch new file mode 100644 index 00000000..470ceddd --- /dev/null +++ b/patches/kernel32-InsertMode/0001-kernel32-Set-console-InsertMode-immediately.patch @@ -0,0 +1,27 @@ +From 1f127d55e0e6d473e6fe5069f2957f9db71fdc23 Mon Sep 17 00:00:00 2001 +From: Hugh McMaster +Date: Mon, 8 Jun 2015 22:22:21 +1000 +Subject: kernel32: Set console InsertMode immediately. + +--- + dlls/kernel32/editline.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/dlls/kernel32/editline.c b/dlls/kernel32/editline.c +index 7664b55..3c2e8de 100644 +--- a/dlls/kernel32/editline.c ++++ b/dlls/kernel32/editline.c +@@ -987,6 +987,10 @@ WCHAR* CONSOLE_Readline(HANDLE hConsoleIn, BOOL can_pos_cursor) + } + } + ++ if (GetConsoleMode(hConsoleIn, &mode)) ++ ctx.insert = (mode & (ENABLE_INSERT_MODE|ENABLE_EXTENDED_FLAGS)) == ++ (ENABLE_INSERT_MODE|ENABLE_EXTENDED_FLAGS) ? 1 : 0; ++ + if (func) + (func)(&ctx); + else if (!(ir.Event.KeyEvent.dwControlKeyState & LEFT_ALT_PRESSED)) +-- +2.4.2 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 792ee9d7..6f8b7dec 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -138,6 +138,7 @@ patch_enable_all () enable_kernel32_GetNumaProcessorNode="$1" enable_kernel32_GetSystemTimes="$1" enable_kernel32_GetVolumePathName="$1" + enable_kernel32_InsertMode="$1" enable_kernel32_Named_Pipe="$1" enable_kernel32_NeedCurrentDirectoryForExePath="$1" enable_kernel32_Profile="$1" @@ -497,6 +498,9 @@ patch_enable () kernel32-GetVolumePathName) enable_kernel32_GetVolumePathName="$2" ;; + kernel32-InsertMode) + enable_kernel32_InsertMode="$2" + ;; kernel32-Named_Pipe) enable_kernel32_Named_Pipe="$2" ;; @@ -2074,23 +2078,6 @@ if test "$enable_Staging" -eq 1; then ) >> "$patchlist" fi -# Patchset server-Misc_ACL -# | -# | This patchset fixes the following Wine bugs: -# | * [#15980] GetSecurityInfo returns NULL DACL for process object -# | -# | Modified files: -# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c -# | -if test "$enable_server_Misc_ACL" -eq 1; then - patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch - patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch - ( - echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },'; - echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },'; - ) >> "$patchlist" -fi - # Patchset server-CreateProcess_ACLs # | # | This patchset fixes the following Wine bugs: @@ -2110,6 +2097,23 @@ if test "$enable_server_CreateProcess_ACLs" -eq 1; then ) >> "$patchlist" fi +# Patchset server-Misc_ACL +# | +# | This patchset fixes the following Wine bugs: +# | * [#15980] GetSecurityInfo returns NULL DACL for process object +# | +# | Modified files: +# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c +# | +if test "$enable_server_Misc_ACL" -eq 1; then + patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch + patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch + ( + echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },'; + echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },'; + ) >> "$patchlist" +fi + # Patchset advapi32-LsaLookupSids # | # | Modified files: @@ -3182,6 +3186,18 @@ if test "$enable_kernel32_GetVolumePathName" -eq 1; then ) >> "$patchlist" fi +# Patchset kernel32-InsertMode +# | +# | Modified files: +# | * dlls/kernel32/editline.c +# | +if test "$enable_kernel32_InsertMode" -eq 1; then + patch_apply kernel32-InsertMode/0001-kernel32-Set-console-InsertMode-immediately.patch + ( + echo '+ { "Hugh McMaster", "kernel32: Set console InsertMode immediately.", 1 },'; + ) >> "$patchlist" +fi + # Patchset rpcrt4-Pipe_Transport # | # | Modified files: @@ -5169,21 +5185,6 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-Multisampling -# | -# | This patchset fixes the following Wine bugs: -# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. -# | -# | Modified files: -# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h -# | -if test "$enable_wined3d_Multisampling" -eq 1; then - patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch - ( - echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-Revert_PixelFormat # | # | This patchset fixes the following Wine bugs: @@ -5254,6 +5255,21 @@ if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then ) >> "$patchlist" fi +# Patchset wined3d-Multisampling +# | +# | This patchset fixes the following Wine bugs: +# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. +# | +# | Modified files: +# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h +# | +if test "$enable_wined3d_Multisampling" -eq 1; then + patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch + ( + echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },'; + ) >> "$patchlist" +fi + # Patchset wined3d-CSMT_Main # | # | This patchset fixes the following Wine bugs: