From 38ae37020276739114d930222b5089367349c107 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 3 Jul 2021 10:12:44 +0530 Subject: [PATCH] Fix #3789 --- kitty/parser.c | 2 +- kitty_tests/parser.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/kitty/parser.c b/kitty/parser.c index ff2ac875c..14cfab091 100644 --- a/kitty/parser.c +++ b/kitty/parser.c @@ -1327,7 +1327,7 @@ static void pending_esc_mode_char(Screen *screen, uint32_t ch, PyObject *dump_callback UNUSED) { if (screen->parser_buf_pos > 0) { write_pending_char(screen, ESC); - write_pending_char(screen, screen->parser_buf[screen->parser_buf_pos]); + write_pending_char(screen, screen->parser_buf[screen->parser_buf_pos - 1]); write_pending_char(screen, ch); SET_STATE(0); return; diff --git a/kitty_tests/parser.py b/kitty_tests/parser.py index dbefa0544..ffe4efc3a 100644 --- a/kitty_tests/parser.py +++ b/kitty_tests/parser.py @@ -369,6 +369,7 @@ class TestParser(BaseTest): pb('\033[?2026h\033[32ma\033[?2026l', ('screen_set_mode', 2026, 1), ('screen_reset_mode', 2026, 1), ('select_graphic_rendition', '32 '), ('draw', 'a')) pb('\033[?2026h\033P+q544e\033\\ama\033P=2s\033\\', ('screen_set_mode', 2026, 1), ('screen_stop_pending_mode',), ('screen_request_capabilities', 43, '544e'), ('draw', 'ama')) + pb('\033P=1s\033\\\033(B\033P=2s\033\\', ('screen_start_pending_mode',), ('screen_stop_pending_mode',), ('screen_designate_charset', 0, 66)) s.reset() s.set_pending_timeout(timeout)