1
0
mirror of https://github.com/irssi/irssi.git synced 2024-09-29 04:45:57 -04:00

Merge pull request #726 from dequis/term-environment-check

Add a startup warning if the TERM var is wrong inside tmux/screen
This commit is contained in:
ailin-nemui 2018-01-08 12:19:30 +01:00 committed by GitHub
commit 2e0815bfd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 0 deletions

View File

@ -207,6 +207,8 @@ static void textui_finish_init(void)
fe_settings_set_print("nick");
if (user_settings_changed & USER_SETTINGS_HOSTNAME)
fe_settings_set_print("hostname");
term_environment_check();
}
static void textui_deinit(void)

View File

@ -733,3 +733,31 @@ void term_gets(GArray *buffer, int *line_count)
}
}
}
static const char* term_env_warning =
"You seem to be running Irssi inside %2$s, but the TERM environment variable "
"is set to '%1$s', which can cause display glitches.\n"
"Consider changing TERM to '%2$s' or '%2$s-256color' instead.";
void term_environment_check(void)
{
const char *term, *sty, *tmux, *multiplexer;
term = g_getenv("TERM");
sty = g_getenv("STY");
tmux = g_getenv("TMUX");
multiplexer = (sty && *sty) ? "screen" :
(tmux && *tmux) ? "tmux" : NULL;
if (!multiplexer) {
return;
}
if (term && (g_str_has_prefix(term, "screen") ||
g_str_has_prefix(term, "tmux"))) {
return;
}
g_warning(term_env_warning, term, multiplexer);
}

View File

@ -105,4 +105,6 @@ void term_gets(GArray *buffer, int *line_count);
void term_common_init(void);
void term_common_deinit(void);
void term_environment_check(void);
#endif