mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-08-04 06:36:24 +00:00
Fix incorrect termcap query responses
Did not realize that the responses had to be processed via tparm() i.e. they should be the actual bytes not the textual representation of them. This broke the backspace key in vim.
This commit is contained in:
parent
70f71e8ada
commit
52ecdfe3a9
2 changed files with 6 additions and 3 deletions
|
|
@ -436,7 +436,7 @@ def get_capabilities(query_string):
|
|||
ans = []
|
||||
try:
|
||||
for q in query_string.split(';'):
|
||||
name = unhexlify(q).decode('utf-8')
|
||||
name = qname = unhexlify(q).decode('utf-8')
|
||||
if name == 'TN':
|
||||
val = names[0]
|
||||
else:
|
||||
|
|
@ -444,10 +444,13 @@ def get_capabilities(query_string):
|
|||
val = queryable_capabilities[name]
|
||||
except KeyError:
|
||||
try:
|
||||
val = queryable_capabilities[termcap_aliases[name]]
|
||||
qname = termcap_aliases[name]
|
||||
val = queryable_capabilities[qname]
|
||||
except Exception as e:
|
||||
safe_print(ERROR_PREFIX, 'Unknown terminfo property:', name)
|
||||
raise
|
||||
if qname in string_capabilities and '%' not in val:
|
||||
val = key_as_bytes(qname).decode('ascii')
|
||||
ans.append(q + '=' + hexlify(str(val).encode('utf-8')).decode('ascii'))
|
||||
return b'\033P1+r' + ';'.join(ans).encode('utf-8') + b'\033\\'
|
||||
except Exception:
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ class TestParser(BaseTest):
|
|||
q = hexlify(b'kind').decode('ascii')
|
||||
pb('a\033P+q{}\x9cbcde'.format(q), 'a', ('screen_request_capabilities', 43, q), 'bcde')
|
||||
self.ae(str(s.line(0)), 'abcde')
|
||||
self.ae(c.wtcbuf, '\033P1+r{}={}\033\\'.format(q, '5c455b313b3242').encode('ascii'))
|
||||
self.ae(c.wtcbuf, '\033P1+r{}={}\033\\'.format(q, '1b5b313b3242').encode('ascii'))
|
||||
c.clear()
|
||||
pb('\033P$q q\033\\', ('screen_request_capabilities', ord('$'), ' q'))
|
||||
self.ae(c.wtcbuf, b'\033P1$r1 q\033\\')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue