From 8cd67d76683a41a1db5efc3a9c65e056ec2263f4 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 16 Jun 2003 02:22:52 +0000 Subject: reverted locale patch put in by jht (originally from vorlon). There are lots of things wrong with this patch, including: 1) it overrides a user chosen configuration option 2) it adds lots of complexity inside a loop when a tiny piece of code outside the loop would do the same thing 3) it does no error checking, and is sure to crash on some systems If you want this functionality then try something like this at the end of charset_name(): #ifdef HAVE_NL_LANGINFO if (strcasecmp(ret, "LOCALE") == 0) { const char *ln = nl_langinfo(CODESET); if (ln) { DEBUG(5,("Substituting charset '%s' for LOCALE\n", ln)); return ln; } } #endif then users can set 'display charset = LOCALE' to get the locale based charset. You could even make that the default for systems that have nl_langinfo(). (This used to be commit 382b9b806b1ecd227b1ea247e3825d6848090462) --- source3/configure.in | 2 -- source3/include/includes.h | 8 -------- source3/lib/charcnv.c | 37 ------------------------------------- 3 files changed, 47 deletions(-) (limited to 'source3') diff --git a/source3/configure.in b/source3/configure.in index 7a116b60ab..c81712da5c 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -529,7 +529,6 @@ AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h t AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h) AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h) AC_CHECK_HEADERS(sys/syslog.h syslog.h execinfo.h) -AC_CHECK_HEADERS(langinfo.h locale.h) # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a # subdirectory of headers. @@ -844,7 +843,6 @@ AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf) AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink) AC_CHECK_FUNCS(syslog vsyslog getgrouplist timegm) -AC_CHECK_FUNCS(setlocale nl_langinfo) # setbuffer, shmget, shm_open are needed for smbtorture AC_CHECK_FUNCS(setbuffer shmget shm_open backtrace_symbols) diff --git a/source3/include/includes.h b/source3/include/includes.h index edaeda3abe..3dbe6d1093 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -441,14 +441,6 @@ #include #endif -#if HAVE_LOCALE_H -#include -#endif - -#if HAVE_LANGINFO_H -#include -#endif - /* Special macros that are no-ops except when run under Valgrind on * x86. They've moved a little bit from valgrind 1.0.4 to 1.9.4 */ #if HAVE_VALGRIND_MEMCHECK_H diff --git a/source3/lib/charcnv.c b/source3/lib/charcnv.c index b37f468134..708ef343e1 100644 --- a/source3/lib/charcnv.c +++ b/source3/lib/charcnv.c @@ -90,28 +90,10 @@ void init_iconv(void) if (!conv_handles[CH_UCS2][CH_UNIX]) conv_handles[CH_UCS2][CH_UNIX] = smb_iconv_open("ASCII", "UCS-2LE"); -#ifdef HAVE_SETLOCALE - setlocale(LC_ALL, ""); -#endif - for (c1=0;c1from_name) == 0 && - strcmp(n2, conv_handles[c1][c2]->to_name) == 0) - continue; - - if (c2==CH_DISPLAY && conv_handles[c1][c2] && - strcmp(n1, conv_handles[c1][c2]->from_name) == 0 && - strcmp(ln, conv_handles[c1][c2]->to_name) == 0) - continue; - -#endif if (conv_handles[c1][c2] && strcmp(n1, conv_handles[c1][c2]->from_name) == 0 && strcmp(n2, conv_handles[c1][c2]->to_name) == 0) @@ -122,25 +104,6 @@ void init_iconv(void) if (conv_handles[c1][c2]) smb_iconv_close(conv_handles[c1][c2]); -#ifdef HAVE_NL_LANGINFO - if (c1==CH_DISPLAY && c2==CH_DISPLAY) { - conv_handles[c1][c2] = smb_iconv_open(ln,ln); - if (conv_handles[c1][c2] != (smb_iconv_t)-1) { - continue; - } - } else if (c1==CH_DISPLAY) { - conv_handles[c1][c2] = smb_iconv_open(n2,ln); - if (conv_handles[c1][c2] != (smb_iconv_t)-1) { - continue; - } - } else if (c2==CH_DISPLAY) { - conv_handles[c1][c2] = smb_iconv_open(ln,n1); - if (conv_handles[c1][c2] != (smb_iconv_t)-1) { - continue; - } - } - /* Fall back to the configured charset. */ -#endif conv_handles[c1][c2] = smb_iconv_open(n2,n1); if (conv_handles[c1][c2] == (smb_iconv_t)-1) { DEBUG(0,("Conversion from %s to %s not supported\n", -- cgit