summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2011-06-22 10:40:26 +1000
committerAndrew Bartlett <abartlet@samba.org>2011-06-23 13:47:27 +0200
commit4d2c56c4b1a4f846b44f24c6f73e1b95fdf3a9bb (patch)
tree9bb31b76650a6cbe558bfa2d357396220fc94abc
parentfb3d5ade9d3f935a69834aaee0046a54dbf38ca1 (diff)
downloadsamba-4d2c56c4b1a4f846b44f24c6f73e1b95fdf3a9bb.tar.gz
samba-4d2c56c4b1a4f846b44f24c6f73e1b95fdf3a9bb.tar.bz2
samba-4d2c56c4b1a4f846b44f24c6f73e1b95fdf3a9bb.zip
s3-net: Bind our gettext results to 'unix charset'
This ensures that the translations and any embedded strings are in the same charset. It won't be the one from the user's locale (we no longer auto-detect that), but it will be self-consistent. Thanks to Steve Langasek for pointing this function out! Andrew Bartlett
-rw-r--r--source3/configure.in2
-rw-r--r--source3/utils/net.c10
-rw-r--r--source3/wscript2
3 files changed, 12 insertions, 2 deletions
diff --git a/source3/configure.in b/source3/configure.in
index d0f841f017..814c7356d2 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -1100,7 +1100,7 @@ AC_CHECK_HEADERS(sys/mman.h)
# setbuffer, shmget, shm_open are needed for smbtorture
AC_CHECK_FUNCS(shmget shm_open)
AC_CHECK_FUNCS(gettext dgettext)
-AC_CHECK_FUNCS(bindtextdomain textdomain)
+AC_CHECK_FUNCS(bindtextdomain textdomain bind_textdomain_codeset)
AC_CHECK_FUNCS(strupr)
# Find a method of generating a stack trace
diff --git a/source3/utils/net.c b/source3/utils/net.c
index 0d79d6e6d2..95b937444e 100644
--- a/source3/utils/net.c
+++ b/source3/utils/net.c
@@ -880,6 +880,16 @@ static struct functable net_func[] = {
lp_load(get_dyn_CONFIGFILE(), true, false, false, true);
+#if defined(HAVE_BIND_TEXTDOMAIN_CODESET)
+ /* Bind our gettext results to 'unix charset'
+
+ This ensures that the translations and any embedded strings are in the
+ same charset. It won't be the one from the user's locale (we no
+ longer auto-detect that), but it will be self-consistent.
+ */
+ bind_textdomain_codeset(MODULE_NAME, lp_unix_charset());
+#endif
+
argv_new = (const char **)poptGetArgs(pc);
argc_new = argc;
diff --git a/source3/wscript b/source3/wscript
index a3a14f0607..d88faa2104 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -138,7 +138,7 @@ def configure(conf):
conf.CHECK_FUNCS('memalign posix_memalign hstrerror')
conf.CHECK_FUNCS('shmget')
conf.CHECK_FUNCS_IN('shm_open', 'rt', checklibc=True)
- conf.CHECK_FUNCS('gettext dgettext bindtextdomain textdomain')
+ conf.CHECK_FUNCS('gettext dgettext bindtextdomain textdomain bind_textdomain_codeset')
#FIXME: for some reason this one still fails
conf.CHECK_FUNCS_IN('yp_get_default_domain', 'nsl')
conf.CHECK_FUNCS_IN('dn_expand _dn_expand __dn_expand', 'resolv')