summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-12-10 03:41:54 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:06:28 -0500
commit06fbfade75af40d2d68f86a71a8dd5eaa3ecd0ab (patch)
treefcbb9c04791065bbdeff4d47a0f8473226e3ea63 /source4
parentb71dba6a769770d43cc7430ad8ca7f9fa761f8ef (diff)
downloadsamba-06fbfade75af40d2d68f86a71a8dd5eaa3ecd0ab.tar.gz
samba-06fbfade75af40d2d68f86a71a8dd5eaa3ecd0ab.tar.bz2
samba-06fbfade75af40d2d68f86a71a8dd5eaa3ecd0ab.zip
r4123: set locale to C to ensure ascii string functions work
thanks to Bjoern JACKE <samba@j3e.de> for pointing this out (This used to be commit 53c4d0a7d83181afbe01bbbb0840cb2a086b45da)
Diffstat (limited to 'source4')
-rw-r--r--source4/build/m4/rewrite.m42
-rw-r--r--source4/lib/charcnv.c11
2 files changed, 13 insertions, 0 deletions
diff --git a/source4/build/m4/rewrite.m4 b/source4/build/m4/rewrite.m4
index ee73451697..e9a59a4012 100644
--- a/source4/build/m4/rewrite.m4
+++ b/source4/build/m4/rewrite.m4
@@ -424,6 +424,8 @@ AC_CHECK_FUNCS(syscall)
AC_CHECK_FUNCS(getdents)
AC_CHECK_FUNCS(pread pwrite)
+# needed for lib/charcnv.c
+AC_CHECK_FUNCS(setlocale)
#
# stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
diff --git a/source4/lib/charcnv.c b/source4/lib/charcnv.c
index bfb1081474..fc1f511403 100644
--- a/source4/lib/charcnv.c
+++ b/source4/lib/charcnv.c
@@ -88,6 +88,17 @@ static smb_iconv_t get_conv_handle(charset_t from, charset_t to)
to look at */
if (initialised == 0) {
initialised = 1;
+
+#ifdef HAVE_SETLOCALE
+ /* we set back the locale to C to get ASCII-compatible
+ toupper/lower functions. For now we do not need
+ any other POSIX localisations anyway. When we
+ should really need localized string functions one
+ day we need to write our own ascii_tolower etc.
+ */
+ setlocale(LC_ALL, "C");
+#endif
+
atexit(init_iconv);
}