changeset 779:057ffe7c43dc

Initialize locale charset earlier This patch fixes a segfault when scr_LogPrint() is called before scr_InitCurses().
author Mikael Berthe <mikael@lilotux.net>
date Mon, 27 Mar 2006 22:09:30 +0200
parents a22665116104
children 1dd19363c73e
files mcabber/src/main.c mcabber/src/screen.c mcabber/src/screen.h
diffstat 3 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/main.c	Sun Mar 26 23:41:25 2006 +0200
+++ b/mcabber/src/main.c	Mon Mar 27 22:09:30 2006 +0200
@@ -229,6 +229,8 @@
 
   /* Initialize commands system */
   cmd_init();
+  /* Initialize charset */
+  scr_InitLocaleCharSet();
 
   /* Parsing config file... */
   ret = cfg_read_file(configFile);
--- a/mcabber/src/screen.c	Sun Mar 26 23:41:25 2006 +0200
+++ b/mcabber/src/screen.c	Mon Mar 27 22:09:30 2006 +0200
@@ -270,6 +270,13 @@
   add_keyseq("[6$", MKEY_SHIFT_PGDOWN, 0); // Shift-PageDown
 }
 
+void scr_InitLocaleCharSet(void)
+{
+  setlocale(LC_CTYPE, "");
+  LocaleCharSet = nl_langinfo(CODESET);
+  utf8_mode = (strcmp(LocaleCharSet, "UTF-8") == 0);
+}
+
 void scr_InitCurses(void)
 {
   /* Key sequences initialization */
@@ -294,10 +301,6 @@
   inputLine[0] = 0;
   ptr_inputline = inputLine;
 
-  setlocale(LC_CTYPE, "");
-  LocaleCharSet = nl_langinfo(CODESET);
-  utf8_mode = (strcmp(LocaleCharSet, "UTF-8") == 0);
-
   return;
 }
 
--- a/mcabber/src/screen.h	Sun Mar 26 23:41:25 2006 +0200
+++ b/mcabber/src/screen.h	Mon Mar 27 22:09:30 2006 +0200
@@ -48,6 +48,7 @@
 void scr_Getch(keycode *kcode);
 int process_key(keycode kcode);
 
+void scr_InitLocaleCharSet(void);
 void scr_InitCurses(void);
 void scr_TerminateCurses(void);
 void scr_DrawMainWindow(unsigned int fullinit);