diff --git a/kitty/data-types.h b/kitty/data-types.h index 59af1ad01..b01dffa8f 100644 --- a/kitty/data-types.h +++ b/kitty/data-types.h @@ -396,6 +396,7 @@ void screen_erase_characters(Screen *self, unsigned int count); void screen_set_margins(Screen *self, unsigned int top, unsigned int bottom); void screen_change_charset(Screen *, uint32_t to); void screen_designate_charset(Screen *, uint32_t which, uint32_t as); +void screen_use_latin1(Screen *, bool); void set_title(Screen *self, PyObject*); void set_icon(Screen *self, PyObject*); void set_dynamic_color(Screen *self, unsigned int code, PyObject*); diff --git a/kitty/parser.c b/kitty/parser.c index 3219292d7..aba12175a 100644 --- a/kitty/parser.c +++ b/kitty/parser.c @@ -225,10 +225,12 @@ handle_esc_mode_char(Screen *screen, uint32_t ch, PyObject DUMP_UNUSED *dump_cal switch(ch) { case '@': REPORT_COMMAND(screen_use_latin1, 1); - screen->use_latin1 = true; screen->utf8_state = 0; screen->utf8_codepoint = 0; break; + screen_use_latin1(screen, true); + break; case 'G': REPORT_COMMAND(screen_use_latin1, 0); - screen->use_latin1 = false; screen->utf8_state = 0; screen->utf8_codepoint = 0; break; + screen_use_latin1(screen, false); + break; default: REPORT_ERROR("Unhandled Esc %% code: 0x%x", ch); break; } diff --git a/kitty/screen.c b/kitty/screen.c index 3fec81a76..41a61d93c 100644 --- a/kitty/screen.c +++ b/kitty/screen.c @@ -857,6 +857,11 @@ void screen_erase_characters(Screen *self, unsigned int count) { // Device control {{{ +void +screen_use_latin1(Screen *self, bool on) { + self->use_latin1 = on; self->utf8_state = 0; self->utf8_codepoint = 0; +} + void screen_bell(Screen UNUSED *self) { PyObject_CallMethod(self->callbacks, "bell", NULL);