Mercurial > gnulib
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