view doc/posix-functions/setlocale.texi @ 14333:e58fa64818aa

setlocale: Workaround native Windows bug. * lib/setlocale.c (rpl_setlocale): On native Windows, when setlocale succeeds but sets LC_CTYPE to "C", report a failure. * tests/test-setlocale2.sh: New file. * tests/test-setlocale2.c: New file. * modules/setlocale-tests (Files): Add the new files. (Makefile.am): Enable test-setlocale2.sh test. * doc/posix-functions/setlocale.texi: Mention workaround.
author Bruno Haible <bruno@clisp.org>
date Sat, 12 Feb 2011 18:16:10 +0100
parents 960b09d2f33f
children c12e3d2438e8
line wrap: on
line source

@node setlocale
@section @code{setlocale}
@findex setlocale

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/setlocale.html}

Gnulib module: setlocale

Portability problems fixed by Gnulib:
@itemize
@item
On Windows platforms (excluding Cygwin), @code{setlocale(@var{category},NULL)}
ignores the environment variables @code{LC_ALL}, @code{@var{category}}, and
@code{LANG}.
@item
On Windows platforms (excluding Cygwin), @code{setlocale(LC_ALL,@var{name})}
succeeds and sets the LC_CTYPE category to @samp{C} when it does not support
the encoding, instead of failing.
@item
On Windows platforms (excluding Cygwin), @code{setlocale} understands different
locale names, that are not based on ISO 639 language names and ISO 3166 country
names.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
On Cygwin 1.5.x, which doesn't have locales,
@code{setlocale(LC_ALL,NULL)} always returns @code{"C"}.
@item
On Cygwin 1.7.0, only the charset portion of a locale designation is honored.
@end itemize