[automaton] handle XTGETTCAP, decoding MLterm and old Kitty #2225

pull/2236/head
nick black 3 years ago
parent f3c18b3279
commit f3377fd818
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC

@ -765,21 +765,28 @@ xtversion_cb(inputctx* ictx){
static int
tcap_cb(inputctx* ictx){
char* str = amata_next_string(&ictx->amata, "\x1bP1+r");
if(str){
loginfo("TCAP: %s\n", str);
if(str == NULL){
return 2;
}
loginfo("xtgettcap [%s]\n", str);
if(ictx->initdata == NULL){
free(str);
return 2;
}
/* FIXME
if(cap == 0x544e){ // 'TN' terminal name
loginfo("got TN capability %d\n", val);
if(strcmp(ictx->runstring, "xterm-kitty") == 0){
inits->qterm = TERMINAL_KITTY;
}else if(strcmp(ictx->runstring, "mlterm") == 0){
// MLterm prior to late 3.9.1 only reports via XTGETTCAP
inits->qterm = TERMINAL_MLTERM;
}
break;
*/
// 'TN' (Terminal Name)
if(strncasecmp(str, "544e=", 5) == 0){
const char* tn = str + 5;
if(strcasecmp(tn, "6D6C7465726D") == 0){
ictx->initdata->qterm = TERMINAL_MLTERM;
}else if(strcasecmp(tn, "787465726d2d6b69747479") == 0){
ictx->initdata->qterm = TERMINAL_KITTY;
}else{
logdebug("unknown terminal name %s\n", tn);
}
}else{
logdebug("unknown capability=val %s\n", str);
}
free(str);
return 2;
}

Loading…
Cancel
Save