]> sourceware.org Git - newlib-cygwin.git/commitdiff
Cygwin: console: Fix IL/DL escape sequence on the last line.
authorTakashi Yano <takashi.yano@nifty.ne.jp>
Thu, 3 Feb 2022 12:09:44 +0000 (21:09 +0900)
committerTakashi Yano <takashi.yano@nifty.ne.jp>
Thu, 3 Feb 2022 12:09:44 +0000 (21:09 +0900)
- Currently, escape sequence IL/DL (CSI Ps L, CSI Ps M) does not
  work correctly at the last (bottom end) line. This patch fixes
  the issue.

Addresses:
  https://cygwin.com/pipermail/cygwin/2022-February/250736.html

winsup/cygwin/fhandler_console.cc

index 0e4b415591af40d5f957813ece95784e6683395b..fa5d7ce9c350766fad7c01c8218d754e5c7bba9d 100644 (file)
@@ -2174,6 +2174,12 @@ fhandler_console::char_command (char c)
              cursor_get (&x, &y);
              if (y < srTop || y > srBottom)
                break;
+             if (y == con.b.srWindow.Bottom)
+               {
+                 WriteConsoleW (get_output_handle (), L"\033[2K", 4, 0, 0);
+                 wpbuf.empty ();
+                 break;
+               }
              if (y == con.b.srWindow.Top
                  && srBottom == con.b.srWindow.Bottom)
                {
@@ -2213,6 +2219,12 @@ fhandler_console::char_command (char c)
              cursor_get (&x, &y);
              if (y < srTop || y > srBottom)
                break;
+             if (y == con.b.srWindow.Bottom)
+               {
+                 WriteConsoleW (get_output_handle (), L"\033[2K", 4, 0, 0);
+                 wpbuf.empty ();
+                 break;
+               }
              __small_swprintf (bufw, L"\033[%d;%dr",
                                y + 1 - con.b.srWindow.Top,
                                srBottom + 1 - con.b.srWindow.Top);
This page took 0.036809 seconds and 5 git commands to generate.