8153 |
|
|
8154 |
@item LANG |
@item LANG |
8155 |
@itemx LC_ALL |
@itemx LC_ALL |
|
@itemx LC_TIME |
|
|
@itemx LC_CTYPE |
|
|
@itemx LANGUAGE |
|
8156 |
@itemx LC_COLLATE |
@itemx LC_COLLATE |
8157 |
@itemx LC_NUMERIC |
@itemx LC_CTYPE |
8158 |
@itemx LC_MESSAGES |
@itemx LC_MESSAGES |
8159 |
|
@itemx LC_NUMERIC |
8160 |
|
@itemx LC_TIME |
8161 |
@evindex LANG |
@evindex LANG |
8162 |
@evindex LC_ALL |
@evindex LC_ALL |
|
@evindex LC_TIME |
|
|
@evindex LC_CTYPE |
|
|
@evindex LANGUAGE |
|
8163 |
@evindex LC_COLLATE |
@evindex LC_COLLATE |
8164 |
@evindex LC_NUMERIC |
@evindex LC_CTYPE |
8165 |
@evindex LC_MESSAGES |
@evindex LC_MESSAGES |
8166 |
|
@evindex LC_NUMERIC |
8167 |
|
@evindex LC_TIME |
8168 |
|
|
8169 |
|
Autoconf-generated scripts normally set all these variables to |
8170 |
|
@samp{C} because so much configuration code assumes the C locale and |
8171 |
|
@sc{posix} requires that @env{LC_ALL} be set to @samp{C} if the C |
8172 |
|
locale is desired. However, some older, nonstandard systems (notably |
8173 |
|
@sc{sco}) break if @env{LC_ALL} is set to @samp{C}, so when running on |
8174 |
|
these systems Autoconf-generated scripts first try to unset the |
8175 |
|
variables instead. |
8176 |
|
|
8177 |
|
@item LANGUAGE |
8178 |
|
@evindex LANGUAGE |
8179 |
|
|
8180 |
These must not be set unconditionally because not all systems understand |
@env{LANGUAGE} is not specified by @sc{posix}, but it is a @sc{gnu} |
8181 |
e.g. @samp{LANG=C} (notably SCO). Fixing @env{LC_MESSAGES} prevents |
extension that overrides @env{LC_ALL} in some cases, so |
8182 |
Solaris @command{sh} from translating var values in @code{set}! Non-C |
Autoconf-generated scripts set it too. |
|
@env{LC_CTYPE} 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 |
|
|
@sc{ascii} platforms. However, @samp{[a-z]} does not work in general |
|
|
even when @env{LC_COLLATE} is fixed; for example, it does not work for |
|
|
@sc{ebcdic} platforms. For maximum portability, you should use regular |
|
|
expressions like @samp{[abcdefghijklmnopqrstuvwxyz]} that list |
|
|
characters explicitly instead of relying on ranges. |
|
|
|
|
|
@emph{If} 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. |
|
8183 |
|
|
8184 |
@item LINENO |
@item LINENO |
8185 |
@evindex LINENO |
@evindex LINENO |
8745 |
@prindex @command{unset} |
@prindex @command{unset} |
8746 |
You cannot assume the support of @command{unset}, nevertheless, because |
You cannot assume the support of @command{unset}, nevertheless, because |
8747 |
it is extremely useful to disable embarrassing variables such as |
it is extremely useful to disable embarrassing variables such as |
8748 |
@code{CDPATH} or @code{LANG}, you can test for its existence and use |
@code{CDPATH}, you can test for its existence and use |
8749 |
it @emph{provided} you give a neutralizing value when @command{unset} is |
it @emph{provided} you give a neutralizing value when @command{unset} is |
8750 |
not supported: |
not supported: |
8751 |
|
|