]> sourceware.org Git - newlib-cygwin.git/commitdiff
Cygwin: pty: Make SetConsoleCursorPosition() to be hooked.
authorTakashi Yano <takashi.yano@nifty.ne.jp>
Fri, 6 Sep 2019 13:01:27 +0000 (22:01 +0900)
committerKen Brown <kbrown@cornell.edu>
Fri, 6 Sep 2019 16:31:17 +0000 (12:31 -0400)
- Win32 API SetConsoleCursorPosition() injects ANSI escape sequence
  to pseudo console. Therefore, it should be added to the API list
  to be hooked.

winsup/cygwin/fhandler_tty.cc

index 2533e5618e605d163948eea61b734b5d357f0d83..3ffd64e21d9a7e181f9dd6e1d2e82642bae495b0 100644 (file)
@@ -156,6 +156,7 @@ DEF_HOOK (WriteConsoleOutputW);
 DEF_HOOK (WriteConsoleOutputCharacterA);
 DEF_HOOK (WriteConsoleOutputCharacterW);
 DEF_HOOK (WriteConsoleOutputAttribute);
+DEF_HOOK (SetConsoleCursorPosition);
 DEF_HOOK (SetConsoleTextAttribute);
 DEF_HOOK (WriteConsoleInputA);
 DEF_HOOK (WriteConsoleInputW);
@@ -242,6 +243,13 @@ WriteConsoleOutputAttribute_Hooked
   return WriteConsoleOutputAttribute_Orig (h, a, l, c, n);
 }
 static BOOL WINAPI
+SetConsoleCursorPosition_Hooked
+     (HANDLE h, COORD c)
+{
+  set_ishybrid_and_switch_to_pcon (h);
+  return SetConsoleCursorPosition_Orig (h, c);
+}
+static BOOL WINAPI
 SetConsoleTextAttribute_Hooked
      (HANDLE h, WORD a)
 {
@@ -2952,6 +2960,7 @@ fhandler_pty_slave::fixup_after_exec ()
       DO_HOOK (NULL, WriteConsoleOutputCharacterA);
       DO_HOOK (NULL, WriteConsoleOutputCharacterW);
       DO_HOOK (NULL, WriteConsoleOutputAttribute);
+      DO_HOOK (NULL, SetConsoleCursorPosition);
       DO_HOOK (NULL, SetConsoleTextAttribute);
       DO_HOOK (NULL, WriteConsoleInputA);
       DO_HOOK (NULL, WriteConsoleInputW);
This page took 0.032425 seconds and 5 git commands to generate.