From 381b74f6b45a68c323a70f96ad61039f97a5ba13 Mon Sep 17 00:00:00 2001 From: Takashi Yano Date: Fri, 6 Sep 2019 22:01:27 +0900 Subject: [PATCH] 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. --- winsup/cygwin/fhandler_tty.cc | 9 +++++++++ 1 file changed, 9 insertions(+) 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);