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