To: vim_dev@googlegroups.com Subject: Patch 8.1.1013 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1013 Problem: MS-Windows: Scrolling fails when dividing the screen. Solution: Position the cursor before calling ScrollConsoleScreenBuffer(). (Nobuhiro Takasaki, closes #4115) Files: src/os_win32.c *** ../vim-8.1.1012/src/os_win32.c 2019-03-07 06:40:23.950955576 +0100 --- src/os_win32.c 2019-03-17 14:54:32.693363582 +0100 *************** *** 6024,6029 **** --- 6024,6031 ---- COORD dest; CHAR_INFO fill; + gotoxy(g_srScrollRegion.Left + 1, g_srScrollRegion.Top + 1); + dest.X = g_srScrollRegion.Left; dest.Y = g_coord.Y + cLines; *************** *** 6037,6053 **** clip.Right = g_srScrollRegion.Right; clip.Bottom = g_srScrollRegion.Bottom; ! { ! fill.Char.AsciiChar = ' '; ! if (!USE_VTP) ! fill.Attributes = g_attrCurrent; ! else ! fill.Attributes = g_attrDefault; ! set_console_color_rgb(); - ScrollConsoleScreenBuffer(g_hConOut, &source, &clip, dest, &fill); - } // Here we have to deal with a win32 console flake: If the scroll // region looks like abc and we scroll c to a and fill with d we get // cbd... if we scroll block c one line at a time to a, we get cdd... --- 6039,6054 ---- clip.Right = g_srScrollRegion.Right; clip.Bottom = g_srScrollRegion.Bottom; ! fill.Char.AsciiChar = ' '; ! if (!USE_VTP) ! fill.Attributes = g_attrCurrent; ! else ! fill.Attributes = g_attrDefault; ! set_console_color_rgb(); ! ! ScrollConsoleScreenBuffer(g_hConOut, &source, &clip, dest, &fill); // Here we have to deal with a win32 console flake: If the scroll // region looks like abc and we scroll c to a and fill with d we get // cbd... if we scroll block c one line at a time to a, we get cdd... *************** *** 6081,6086 **** --- 6082,6089 ---- CHAR_INFO fill; int nb; + gotoxy(g_srScrollRegion.Left + 1, g_srScrollRegion.Top + 1); + dest.X = g_srScrollRegion.Left; dest.Y = g_coord.Y; *************** *** 6094,6110 **** clip.Right = g_srScrollRegion.Right; clip.Bottom = g_srScrollRegion.Bottom; ! { ! fill.Char.AsciiChar = ' '; ! if (!USE_VTP) ! fill.Attributes = g_attrCurrent; ! else ! fill.Attributes = g_attrDefault; ! set_console_color_rgb(); - ScrollConsoleScreenBuffer(g_hConOut, &source, &clip, dest, &fill); - } // Here we have to deal with a win32 console flake; See insert_lines() // above. --- 6097,6112 ---- clip.Right = g_srScrollRegion.Right; clip.Bottom = g_srScrollRegion.Bottom; ! fill.Char.AsciiChar = ' '; ! if (!USE_VTP) ! fill.Attributes = g_attrCurrent; ! else ! fill.Attributes = g_attrDefault; ! set_console_color_rgb(); ! ! ScrollConsoleScreenBuffer(g_hConOut, &source, &clip, dest, &fill); // Here we have to deal with a win32 console flake; See insert_lines() // above. *** ../vim-8.1.1012/src/version.c 2019-03-17 14:43:28.477344179 +0100 --- src/version.c 2019-03-17 14:53:15.733826579 +0100 *************** *** 781,782 **** --- 781,784 ---- { /* Add new patch number below this line */ + /**/ + 1013, /**/ -- hundred-and-one symptoms of being an internet addict: 76. Your ISP regards you as a business partner rather than as a customer. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///