From: Takashi Yano Date: Fri, 6 Sep 2019 13:01:27 +0000 (+0900) Subject: Cygwin: pty: Make SetConsoleCursorPosition() to be hooked. X-Git-Tag: cygwin-3_1_0-release~97 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=f39a694c463c1a1ea14e60f5d03652d94e6f76ee;p=newlib-cygwin.git Cygwin: pty: Make SetConsoleCursorPosition() to be hooked. - Win32 API SetConsoleCursorPosition() injects ANSI escape sequence to pseudo console. Therefore, it should be added to the API list to be hooked. --- diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 2533e5618..3ffd64e21 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -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);