Mercurial > hg
changeset 1382:1447c5296977
Fix locale charset detection on some BSD systems
Tested on OpenBSD 4.2
If possible, use locale_charset() in place of nl_langinfo().
This patch also reverts the minor datadir change from last changeset
as it doesn't solve the problem.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 02 Dec 2007 13:04:57 +0100 |
parents | 40095d413da9 |
children | d9606bd03144 |
files | mcabber/configure.ac mcabber/src/screen.c |
diffstat | 2 files changed, 15 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/configure.ac Sun Dec 02 10:36:42 2007 +0100 +++ b/mcabber/configure.ac Sun Dec 02 13:04:57 2007 +0100 @@ -33,7 +33,8 @@ AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h fcntl.h locale.h netdb.h netinet/in.h stddef.h \ stdlib.h string.h strings.h sys/socket.h sys/time.h \ - syslog.h termios.h unistd.h getopt.h wchar.h wctype.h]) + syslog.h termios.h unistd.h getopt.h wchar.h wctype.h \ + localcharset.h]) AC_CHECK_HEADERS([getopt.h], , AC_MSG_ERROR([Missing header file])) AC_VAR_TIMEZONE_EXTERNALS @@ -189,7 +190,7 @@ # Export $datadir to the source tree. if test x"${datadir}" != x""; then - AC_DEFINE_DIR(DATA_DIR, "$datadir", [Data files directory]) + AC_DEFINE_DIR(DATA_DIR, "${datadir}", [Data files directory]) fi AC_ARG_ENABLE(debug,
--- a/mcabber/src/screen.c Sun Dec 02 10:36:42 2007 +0100 +++ b/mcabber/src/screen.c Sun Dec 02 13:04:57 2007 +0100 @@ -25,11 +25,17 @@ #include <string.h> #include <time.h> #include <ctype.h> + +#include <config.h> #include <locale.h> -#include <langinfo.h> -#include <config.h> #include <assert.h> +#ifdef HAVE_LOCALCHARSET_H +# include <localcharset.h> +#else +# include <langinfo.h> +#endif + #ifdef HAVE_ASPELL_H # include <aspell.h> #endif @@ -734,7 +740,11 @@ void scr_InitLocaleCharSet(void) { setlocale(LC_CTYPE, ""); +#ifdef HAVE_LOCALCHARSET_H + LocaleCharSet = locale_charset(); +#else LocaleCharSet = nl_langinfo(CODESET); +#endif utf8_mode = (strcmp(LocaleCharSet, "UTF-8") == 0); }