mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-16 01:22:18 +03:00
* doc/posix-functions/setlocale.texi: Mention setlocale(LC_ALL,"") never fails, and the need to check categories individually.
41 lines
1.5 KiB
Plaintext
41 lines
1.5 KiB
Plaintext
@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) and Cygwin 1.5.x,
|
|
@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.
|
|
@item
|
|
On OpenBSD, @code{setlocale(LC_ALL,"")} will only update categories that
|
|
are deemed appropriate for the @code{LC_ALL} environment value, even if
|
|
there are other categories set to different values in the environment.
|
|
In addition any value is accepted for @code{LC_CTYPE}, and so NULL
|
|
is never returned to indicate a failure to set locale.
|
|
To verify category values, each category must be set individually
|
|
with @code{setlocale(LC_COLLATE,"")} etc.
|
|
@end itemize
|