Added SILC Thread Queue API
[crypto.git] / apps / irssi / src / fe-text / term.c
index 94d81cfd61b214542373cc0a5015ee0cfc85cb2a..59c3fe4d49406f0025f91f8ee5192946d12ad436 100644 (file)
@@ -27,7 +27,6 @@
 #include "mainwindows.h"
 
 #ifdef HAVE_NL_LANGINFO
-#  include <locale.h>
 #  include <langinfo.h>
 #endif
 
@@ -56,6 +55,9 @@ int term_get_size(int *width, int *height)
        if (ioctl(0, TIOCGWINSZ, &ws) < 0)
                return FALSE;
 
+       if (ws.ws_row == 0 && ws.ws_col == 0)
+               return FALSE;
+
        *width = ws.ws_col;
         *height = ws.ws_row;
 
@@ -103,6 +105,11 @@ static void cmd_resize(void)
         term_resize_dirty();
 }
 
+static void cmd_redraw(void)
+{
+       irssi_redraw();
+}
+
 static void read_settings(void)
 {
         const char *str;
@@ -112,7 +119,7 @@ static void read_settings(void)
         term_auto_detach(settings_get_bool("term_auto_detach"));
 
         /* set terminal type */
-       str = settings_get_str("term_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)
@@ -145,14 +152,12 @@ void term_common_init(void)
        settings_add_bool("lookandfeel", "term_force_colors", FALSE);
         settings_add_bool("lookandfeel", "term_auto_detach", FALSE);
         settings_add_bool("lookandfeel", "mirc_blink_fix", FALSE);
-        settings_add_str("lookandfeel", "term_type", "8bit");
 
        force_colors = FALSE;
        term_use_colors = term_has_colors() && settings_get_bool("colors");
         read_settings();
 
 #if defined (HAVE_NL_LANGINFO) && defined(CODESET)
-        setlocale(LC_CTYPE, "");
        if (strcmp(nl_langinfo(CODESET), "UTF-8") == 0) {
                term_type = TERM_TYPE_UTF8;
                term_set_input_type(TERM_TYPE_UTF8);
@@ -162,6 +167,7 @@ void term_common_init(void)
        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);
@@ -174,6 +180,7 @@ void term_common_init(void)
 void term_common_deinit(void)
 {
        command_unbind("resize", (SIGNAL_FUNC) cmd_resize);
+       command_unbind("redraw", (SIGNAL_FUNC) cmd_redraw);
        signal_remove("beep", (SIGNAL_FUNC) term_beep);
        signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
 }