diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-06-16 02:22:52 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-06-16 02:22:52 +0000 |
commit | 8cd67d76683a41a1db5efc3a9c65e056ec2263f4 (patch) | |
tree | c20fdee14ba1971aa21b2c1f898caaacf6df7acf | |
parent | 145b01a496fcc35cc86cacb1ac79ed754257a7c3 (diff) | |
download | samba-8cd67d76683a41a1db5efc3a9c65e056ec2263f4.tar.gz samba-8cd67d76683a41a1db5efc3a9c65e056ec2263f4.tar.bz2 samba-8cd67d76683a41a1db5efc3a9c65e056ec2263f4.zip |
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)
-rw-r--r-- | source3/configure.in | 2 | ||||
-rw-r--r-- | source3/include/includes.h | 8 | ||||
-rw-r--r-- | source3/lib/charcnv.c | 37 |
3 files changed, 0 insertions, 47 deletions
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 <attr/xattr.h> #endif -#if HAVE_LOCALE_H -#include <locale.h> -#endif - -#if HAVE_LANGINFO_H -#include <langinfo.h> -#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;c1<NUM_CHARSETS;c1++) { for (c2=0;c2<NUM_CHARSETS;c2++) { const char *n1 = charset_name((charset_t)c1); const char *n2 = charset_name((charset_t)c2); -#ifdef HAVE_NL_LANGINFO - const char *ln = nl_langinfo(CODESET); - - if (c1==CH_DISPLAY && conv_handles[c1][c2] && - strcmp(ln, conv_handles[c1][c2]->from_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", |