autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Autoconf proposed fix for "NLS nuisances" POSIX non-conformance


From: Paul Eggert
Subject: Re: Autoconf proposed fix for "NLS nuisances" POSIX non-conformance
Date: Thu, 1 Nov 2001 12:18:15 -0800 (PST)

> From: address@hidden
> Date: Thu, 1 Nov 2001 10:22:30 +0100
> 
> Please, install, together with a small update of the doc if you
> have some time for that.  Thanks!

Done.  Here's the doc patch that I installed.


--- autoconf.texi.~1.556.~      Wed Oct 31 11:32:55 2001
+++ autoconf.texi       Thu Nov  1 12:03:09 2001
@@ -8154,34 +8154,31 @@ characters.
 @item LANG
 @itemx LC_ALL
address@hidden LC_TIME
address@hidden LC_CTYPE
address@hidden LANGUAGE
 @itemx LC_COLLATE
address@hidden LC_NUMERIC
address@hidden LC_CTYPE
 @itemx LC_MESSAGES
address@hidden LC_NUMERIC
address@hidden LC_TIME
 @evindex LANG
 @evindex LC_ALL
address@hidden LC_TIME
address@hidden LC_CTYPE
address@hidden LANGUAGE
 @evindex LC_COLLATE
address@hidden LC_NUMERIC
address@hidden LC_CTYPE
 @evindex LC_MESSAGES
address@hidden LC_NUMERIC
address@hidden LC_TIME
+
+Autoconf-generated scripts normally set all these variables to
address@hidden because so much configuration code assumes the C locale and
address@hidden requires that @env{LC_ALL} be set to @samp{C} if the C
+locale is desired.  However, some older, nonstandard systems (notably
address@hidden) break if @env{LC_ALL} is set to @samp{C}, so when running on
+these systems Autoconf-generated scripts first try to unset the
+variables instead.
+
address@hidden LANGUAGE
address@hidden LANGUAGE
 
-These must not be set unconditionally because not all systems understand
-e.g. @samp{LANG=C} (notably SCO).  Fixing @env{LC_MESSAGES} prevents
-Solaris @command{sh} from translating var values in @code{set}!  Non-C
address@hidden values break the ctype check.  Fixing @env{LC_COLLATE}
-makes scripts more portable in some cases.  For example, it causes the
-regular expression @samp{[a-z]} to match only lower-case letters on
address@hidden platforms.  However, @samp{[a-z]} does not work in general
-even when @env{LC_COLLATE} is fixed; for example, it does not work for
address@hidden platforms.  For maximum portability, you should use regular
-expressions like @samp{[abcdefghijklmnopqrstuvwxyz]} that list
-characters explicitly instead of relying on ranges.
-
address@hidden one of these variables is set, you should try to unset it,
-using @samp{C} as a fall back value. see @ref{Limitations of Builtins},
-builtin @command{unset}, for more details.
address@hidden is not specified by @sc{posix}, but it is a @sc{gnu}
+extension that overrides @env{LC_ALL} in some cases, so
+Autoconf-generated scripts set it too.
 
 @item LINENO
@@ -8749,5 +8746,5 @@ for @command{true}.
 You cannot assume the support of @command{unset}, nevertheless, because
 it is extremely useful to disable embarrassing variables such as
address@hidden or @code{LANG}, you can test for its existence and use
address@hidden, you can test for its existence and use
 it @emph{provided} you give a neutralizing value when @command{unset} is
 not supported:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]