parent
c504b96b60
commit
db2d14d9ed
@ -519,16 +519,16 @@ accumulate_osc(Screen *screen, uint32_t ch, PyObject DUMP_UNUSED *dump_callback)
|
|||||||
switch(ch) {
|
switch(ch) {
|
||||||
case ST:
|
case ST:
|
||||||
return true;
|
return true;
|
||||||
case ESC_ST:
|
|
||||||
if (screen->parser_buf_pos > 0 && screen->parser_buf[screen->parser_buf_pos - 1] == ESC) {
|
|
||||||
screen->parser_buf_pos--;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
case BEL:
|
case BEL:
|
||||||
return true;
|
return true;
|
||||||
case NUL:
|
case NUL:
|
||||||
case DEL:
|
case DEL:
|
||||||
break;
|
break;
|
||||||
|
case ESC_ST:
|
||||||
|
if (screen->parser_buf_pos > 0 && screen->parser_buf[screen->parser_buf_pos - 1] == ESC) {
|
||||||
|
screen->parser_buf_pos--;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
if (screen->parser_buf_pos >= PARSER_BUF_SZ - 1) {
|
if (screen->parser_buf_pos >= PARSER_BUF_SZ - 1) {
|
||||||
REPORT_ERROR("OSC sequence too long, truncating.");
|
REPORT_ERROR("OSC sequence too long, truncating.");
|
||||||
|
|||||||
@ -156,9 +156,9 @@ class TestParser(BaseTest):
|
|||||||
s = self.create_screen()
|
s = self.create_screen()
|
||||||
pb = partial(self.parse_bytes_dump, s)
|
pb = partial(self.parse_bytes_dump, s)
|
||||||
c = s.callbacks
|
c = s.callbacks
|
||||||
pb('a\033]2;xyz\x9cbcde', 'a', ('set_title', 'xyz'), 'bcde')
|
pb('a\033]2;x\\ryz\x9cbcde', 'a', ('set_title', 'x\\ryz'), 'bcde')
|
||||||
self.ae(str(s.line(0)), 'abcde')
|
self.ae(str(s.line(0)), 'abcde')
|
||||||
self.ae(c.titlebuf, 'xyz')
|
self.ae(c.titlebuf, 'x\\ryz')
|
||||||
c.clear()
|
c.clear()
|
||||||
pb('\033]\x07', ('set_title', ''), ('set_icon', ''))
|
pb('\033]\x07', ('set_title', ''), ('set_icon', ''))
|
||||||
self.ae(c.titlebuf, ''), self.ae(c.iconbuf, '')
|
self.ae(c.titlebuf, ''), self.ae(c.iconbuf, '')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user