diff options
author | Gerald Carter <jerry@samba.org> | 2004-12-23 18:45:36 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2004-12-23 18:45:36 +0000 |
commit | b262548fec09659f46839dcf4c079176775f0871 (patch) | |
tree | 2f44f7f1cdce6d71d868626caea49fdfb82e1249 /source/lib/charcnv.c | |
parent | 8d91e07ef22ad3ed484b04bc4968380a24940696 (diff) | |
download | samba-b262548fec09659f46839dcf4c079176775f0871.tar.gz samba-b262548fec09659f46839dcf4c079176775f0871.tar.xz samba-b262548fec09659f46839dcf4c079176775f0871.zip |
r4348: syncing up for 3.0.11pre1
Diffstat (limited to 'source/lib/charcnv.c')
-rw-r--r-- | source/lib/charcnv.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/lib/charcnv.c b/source/lib/charcnv.c index dc00ca4cf4b..b9b9d90db67 100644 --- a/source/lib/charcnv.c +++ b/source/lib/charcnv.c @@ -84,6 +84,15 @@ static const char *charset_name(charset_t ch) } ret = ln; } +#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 + #endif if (!ret || !*ret) ret = "ASCII"; @@ -372,7 +381,7 @@ size_t convert_string(charset_t from, charset_t to, unsigned char *q = (unsigned char *)dest; size_t slen = srclen; size_t dlen = destlen; - unsigned char lastp; + unsigned char lastp = '\0'; size_t retval = 0; /* If all characters are ascii, fast path here. */ @@ -408,7 +417,7 @@ size_t convert_string(charset_t from, charset_t to, size_t retval = 0; size_t slen = srclen; size_t dlen = destlen; - unsigned char lastp; + unsigned char lastp = '\0'; /* If all characters are ascii, fast path here. */ while (((slen == (size_t)-1) || (slen >= 2)) && dlen) { @@ -444,7 +453,7 @@ size_t convert_string(charset_t from, charset_t to, size_t retval = 0; size_t slen = srclen; size_t dlen = destlen; - unsigned char lastp; + unsigned char lastp = '\0'; /* If all characters are ascii, fast path here. */ while (slen && (dlen >= 2)) { |