# HG changeset patch # User Mikael Berthe # Date 1143490170 -7200 # Node ID 057ffe7c43dcbde769bdc8d6379e1c6b7340558f # Parent a22665116104fb5c7b010eaf7cd48fc70a6284dc Initialize locale charset earlier This patch fixes a segfault when scr_LogPrint() is called before scr_InitCurses(). diff -r a22665116104 -r 057ffe7c43dc mcabber/src/main.c --- 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); diff -r a22665116104 -r 057ffe7c43dc mcabber/src/screen.c --- 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; } diff -r a22665116104 -r 057ffe7c43dc mcabber/src/screen.h --- 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);