#include "term.h"
#include "mainwindows.h"
+#ifdef HAVE_NL_LANGINFO
+# include <locale.h>
+# include <langinfo.h>
+#endif
+
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif
#define MIN_SCREEN_WIDTH 20
+int term_width, term_height, term_detached;
+
int term_use_colors;
+int term_type;
static int force_colors;
static int resize_dirty;
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_type");
+ 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);
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", "term_utf8", 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);
+ }
+#endif
+
signal_add("beep", (SIGNAL_FUNC) term_beep);
signal_add("setup changed", (SIGNAL_FUNC) read_settings);
command_bind("resize", NULL, (SIGNAL_FUNC) cmd_resize);