Fix designate_charset without change_charset not taking effect
This commit is contained in:
parent
a568f73e77
commit
3c9d4dfb90
@ -176,12 +176,17 @@ screen_change_charset(Screen *self, uint32_t which) {
|
||||
|
||||
void
|
||||
screen_designate_charset(Screen *self, uint32_t which, uint32_t as) {
|
||||
bool change_g = false;
|
||||
switch(which) {
|
||||
case 0:
|
||||
change_g = self->g_charset == self->g0_charset;
|
||||
self->g0_charset = translation_table(as);
|
||||
if (change_g) self->g_charset = self->g0_charset;
|
||||
break;
|
||||
case 1:
|
||||
change_g = self->g_charset == self->g1_charset;
|
||||
self->g1_charset = translation_table(as);
|
||||
if (change_g) self->g_charset = self->g1_charset;
|
||||
break;
|
||||
// We dont care about default as this is guaranteed to only be called with correct which by the parser
|
||||
}
|
||||
|
||||
@ -75,6 +75,10 @@ class TestParser(BaseTest):
|
||||
pb('\033)0\x0e/_', ('screen_designate_charset', 1, ord('0')), ('screen_change_charset', 1), '/_')
|
||||
self.ae(str(s.line(0)), '/\xa0 ')
|
||||
pb('\033%G_', ('screen_use_latin1', 0), '_')
|
||||
s = self.create_screen()
|
||||
pb = partial(self.parse_bytes_dump, s)
|
||||
pb('\033(0/_', ('screen_designate_charset', 0, ord('0')), '/_')
|
||||
self.ae(str(s.line(0)), '/\xa0 ')
|
||||
|
||||
def test_csi_codes(self):
|
||||
s = self.create_screen()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user