diff options
-rw-r--r-- | source3/configure.in | 2 | ||||
-rw-r--r-- | source3/utils/net.c | 10 | ||||
-rw-r--r-- | source3/wscript | 2 |
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') |