1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00

Send smkx/rmkx sequence at terminal init

Enter the "application" mode when setting up the terminal, this improves the
compatiblity with the standards; as a side effect now DEL key works ootb when
irssi is run in the suckless's st terminal.
This commit is contained in:
LemonBoy 2015-09-06 15:47:08 +02:00
parent e948aaa4ba
commit b5b73cb471
2 changed files with 63 additions and 48 deletions

View File

@ -106,6 +106,10 @@ static TERMINFO_REC tcaps[] = {
/* Beep */ /* Beep */
{ "bel", "bl", CAP_TYPE_STR, G_STRUCT_OFFSET(TERM_REC, TI_bel) }, { "bel", "bl", CAP_TYPE_STR, G_STRUCT_OFFSET(TERM_REC, TI_bel) },
/* Keyboard-transmit mode */
{ "smkx", "ks", CAP_TYPE_STR, G_STRUCT_OFFSET(TERM_REC, TI_smkx) },
{ "rmkx", "ke", CAP_TYPE_STR, G_STRUCT_OFFSET(TERM_REC, TI_rmkx) },
}; };
/* Move cursor (cursor_address / cup) */ /* Move cursor (cursor_address / cup) */
@ -524,6 +528,10 @@ void terminfo_cont(TERM_REC *term)
{ {
if (term->TI_smcup) if (term->TI_smcup)
tput(tparm(term->TI_smcup)); tput(tparm(term->TI_smcup));
if (term->TI_smkx)
tput(tparm(term->TI_smkx));
terminfo_input_init(term); terminfo_input_init(term);
} }
@ -538,6 +546,9 @@ void terminfo_stop(TERM_REC *term)
if (term->TI_rmcup) if (term->TI_rmcup)
tput(tparm(term->TI_rmcup)); tput(tparm(term->TI_rmcup));
if (term->TI_rmkx)
tput(tparm(term->TI_rmkx));
/* reset input settings */ /* reset input settings */
terminfo_input_deinit(term); terminfo_input_deinit(term);
fflush(term->out); fflush(term->out);

View File

@ -88,6 +88,10 @@ struct _TERM_REC {
/* Beep */ /* Beep */
char *TI_bel; char *TI_bel;
/* Keyboard-transmit mode */
const char *TI_smkx;
const char *TI_rmkx;
}; };
extern TERM_REC *current_term; extern TERM_REC *current_term;