void term_common_init(void) { #ifdef SIGWINCH struct sigaction act; #endif settings_add_bool("lookandfeel", "colors", TRUE); settings_add_bool("lookandfeel", "term_force_colors", FALSE); settings_add_bool("lookandfeel", "term_auto_detach", FALSE); settings_add_bool("lookandfeel", "mirc_blink_fix", FALSE); force_colors = FALSE; term_use_colors = term_has_colors() && settings_get_bool("colors"); read_settings(); #if defined (HAVE_NL_LANGINFO) && defined(CODESET) if (strcmp(nl_langinfo(CODESET), "UTF-8") == 0) { term_type = TERM_TYPE_UTF8; term_set_input_type(TERM_TYPE_UTF8); } #endif signal_add("beep", (SIGNAL_FUNC) term_beep); signal_add("setup changed", (SIGNAL_FUNC) read_settings); command_bind("resize", NULL, (SIGNAL_FUNC) cmd_resize); command_bind("redraw", NULL, (SIGNAL_FUNC) cmd_redraw); #ifdef SIGWINCH sigemptyset (&act.sa_mask); act.sa_flags = 0; act.sa_handler = sig_winch; sigaction(SIGWINCH, &act, NULL); #endif }
static void read_settings(void) { const char *str; int old_colors = term_use_colors; int old_type = term_type; term_auto_detach(settings_get_bool("term_auto_detach")); /* set terminal type */ str = settings_get_str("term_charset"); if (g_strcasecmp(str, "utf-8") == 0) term_type = TERM_TYPE_UTF8; else if (g_strcasecmp(str, "big5") == 0) term_type = TERM_TYPE_BIG5; else term_type = TERM_TYPE_8BIT; if (old_type != term_type) term_set_input_type(term_type); /* change color stuff */ if (force_colors != settings_get_bool("term_force_colors")) { force_colors = settings_get_bool("term_force_colors"); term_force_colors(force_colors); } term_use_colors = settings_get_bool("colors") && (force_colors || term_has_colors()); if (term_use_colors != old_colors) irssi_redraw(); }
static void read_settings(void) { const char *str; int old_colors = term_use_colors; int old_colors24 = term_use_colors24; int old_type = term_type; /* set terminal type */ str = settings_get_str("term_charset"); if (g_ascii_strcasecmp(str, "utf-8") == 0) term_type = TERM_TYPE_UTF8; else if (g_ascii_strcasecmp(str, "big5") == 0) term_type = TERM_TYPE_BIG5; else term_type = TERM_TYPE_8BIT; if (old_type != term_type) term_set_input_type(term_type); /* change color stuff */ if (force_colors != settings_get_bool("term_force_colors")) { force_colors = settings_get_bool("term_force_colors"); term_force_colors(force_colors); } term_use_colors = settings_get_bool("colors") && (force_colors || term_has_colors()); #ifdef TERM_TRUECOLOR term_use_colors24 = settings_get_bool("colors_ansi_24bit") && (force_colors || term_has_colors()); #else term_use_colors24 = FALSE; #endif if (term_use_colors != old_colors || term_use_colors24 != old_colors24) irssi_redraw(); }
void term_common_init(void) { const char *dummy; #ifdef SIGWINCH struct sigaction act; #endif settings_add_bool("lookandfeel", "colors", TRUE); settings_add_bool("lookandfeel", "term_force_colors", FALSE); settings_add_bool("lookandfeel", "mirc_blink_fix", FALSE); force_colors = FALSE; term_use_colors = term_has_colors() && settings_get_bool("colors"); #ifdef TERM_TRUECOLOR settings_add_bool("lookandfeel", "colors_ansi_24bit", FALSE); term_use_colors24 = term_has_colors() && settings_get_bool("colors_ansi_24bit"); #else term_use_colors24 = FALSE; #endif read_settings(); if (g_get_charset(&dummy)) { term_type = TERM_TYPE_UTF8; term_set_input_type(TERM_TYPE_UTF8); } signal_add("beep", (SIGNAL_FUNC) term_beep); signal_add("setup changed", (SIGNAL_FUNC) read_settings); command_bind("resize", NULL, (SIGNAL_FUNC) cmd_resize); command_bind("redraw", NULL, (SIGNAL_FUNC) cmd_redraw); #ifdef SIGWINCH sigemptyset (&act.sa_mask); act.sa_flags = 0; act.sa_handler = sig_winch; sigaction(SIGWINCH, &act, NULL); #endif }