Mercurial > hg
changeset 592:67a332121aea
Try UTF8 -> locale conversion with fallback
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 11 Dec 2005 11:11:34 +0100 |
parents | 5a685e9012b4 |
children | 29d9a54ac69f |
files | mcabber/src/screen.c mcabber/src/utils.h |
diffstat | 2 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/screen.c Sat Dec 10 23:52:04 2005 +0100 +++ b/mcabber/src/screen.c Sun Dec 11 11:11:34 2005 +0100 @@ -45,6 +45,8 @@ #define DEFAULT_LOG_WIN_HEIGHT (5+2) #define CHAT_WIN_HEIGHT (maxY-1-Log_Win_Height) +char *LocaleCharSet = "C"; + static unsigned short int Log_Win_Height; static inline void check_offset(int); @@ -224,7 +226,8 @@ ptr_inputline = inputLine; setlocale(LC_CTYPE, ""); - utf8_mode = (strcmp(nl_langinfo(CODESET), "UTF-8") == 0); + LocaleCharSet = nl_langinfo(CODESET); + utf8_mode = (strcmp(LocaleCharSet, "UTF-8") == 0); return; }
--- a/mcabber/src/utils.h Sat Dec 10 23:52:04 2005 +0100 +++ b/mcabber/src/utils.h Sun Dec 11 11:11:34 2005 +0100 @@ -1,8 +1,11 @@ #ifndef __UTILS_H__ #define __UTILS_H__ 1 +extern char *LocaleCharSet; + #define to_utf8(s) ((s) ? g_locale_to_utf8((s), -1, NULL,NULL,NULL) : NULL) -#define from_utf8(s) ((s) ? g_locale_from_utf8((s), -1, NULL,NULL,NULL) : NULL) +#define from_utf8(s) ((s) ? g_convert_with_fallback((s), -1, LocaleCharSet, \ + "UTF-8", NULL,NULL,NULL,NULL) : NULL) void ut_InitDebug(unsigned int level, const char *file); void ut_WriteLog(unsigned int flag, const char *data);