|
|
|
@ -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;
|
|
|
|
|
// '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);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
*/
|
|
|
|
|
}else{
|
|
|
|
|
logdebug("unknown capability=val %s\n", str);
|
|
|
|
|
}
|
|
|
|
|
free(str);
|
|
|
|
|
return 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|