Mercurial > hg
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);