Handle boolean capabilities in XTGETTCAP response parser

This commit is contained in:
Johannes Altmanninger
2025-04-17 13:16:48 +02:00
parent f8699d2b7e
commit 4a5e8a8f48

View File

@@ -1414,17 +1414,23 @@ fn parse_dcs(&mut self, buffer: &mut Vec<u8>) -> Option<KeyEvent> {
}
let mut buffer = buffer.splitn(2, |&c| c == b'=');
let key = buffer.next().unwrap();
let value = buffer.next()?;
let key = parse_hex(key)?;
let value = parse_hex(value)?;
FLOG!(
reader,
format!(
"Received XTGETTCAP response: {}={:?}",
str2wcstring(&key),
str2wcstring(&value)
)
);
if let Some(value) = buffer.next() {
let value = parse_hex(value)?;
FLOG!(
reader,
format!(
"Received XTGETTCAP response: {}={:?}",
str2wcstring(&key),
str2wcstring(&value)
)
);
} else {
FLOG!(
reader,
format!("Received XTGETTCAP response: {}", str2wcstring(&key))
);
}
if key == SCROLL_FORWARD_TERMINFO_CODE.as_bytes() {
SCROLL_FORWARD_SUPPORTED.store(true);
FLOG!(reader, "Scroll forward is supported");