https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=2a1f407b0919c809bace9522abcfee8059d5c840
commit 2a1f407b0919c809bace9522abcfee8059d5c840 Author: Takashi Yano <takashi.y...@nifty.ne.jp> Date: Sun Dec 8 22:27:03 2024 +0900 Cygwin: console: Ignore intermediate byte in CSI sequence Recent vim throughs the sequence CSI '0%m' that cannot be handled appropriately by psuedo console for a test purpose. This patch removes the intermediate byte ('%') from the sequence. Signed-off-by: Takashi Yano <takashi.y...@nifty.ne.jp> Diff: --- winsup/cygwin/fhandler/console.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/winsup/cygwin/fhandler/console.cc b/winsup/cygwin/fhandler/console.cc index 0660ee305..c6c261420 100644 --- a/winsup/cygwin/fhandler/console.cc +++ b/winsup/cygwin/fhandler/console.cc @@ -4024,6 +4024,11 @@ fhandler_console::write (const void *vsrc, size_t len) case gotcommand: if (con.nargs < MAXARGS) con.nargs++; + if (*src == '%' && con.nargs == 1 && con.args[0] == 0) + { /* Ignore intermediate byte in CSI sequence used by vim. */ + src++; + break; + } char_command (*src++); con.state = normal; wpbuf.empty();