* libc/locale/locale.c (DEFAULT_LOCALE): New define.

(__default_locale): New global variable set to the default locale.
	(__get_locale_env): Return __default_locale rather than fixed "C".
This commit is contained in:
Corinna Vinschen 2009-10-09 08:25:28 +00:00
parent a3a62ae7a5
commit ec4e5025e9
2 changed files with 20 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2009-10-09 Corinna Vinschen <corinna@vinschen.de>
* libc/locale/locale.c (DEFAULT_LOCALE): New define.
(__default_locale): New global variable set to the default locale.
(__get_locale_env): Return __default_locale rather than fixed "C".
2009-10-08 Jeff Johnston <jjohnstn@redhat.com>
* configure.host: For RTEMS, define HAVE_ASSERT_FUNC.

View File

@ -204,6 +204,18 @@ static char *categories[_LC_LAST] = {
"LC_MESSAGES",
};
/*
* Default locale per POSIX. Can be overridden on a per-target base.
*/
#ifndef DEFAULT_LOCALE
#define DEFAULT_LOCALE "C"
#endif
/*
* This variable can be changed by any outside mechanism. This allows,
* for instance, to load the default locale from a file.
*/
char __default_locale[ENCODING_LEN + 1] = DEFAULT_LOCALE;
/*
* Current locales for each category
*/
@ -731,9 +743,9 @@ __get_locale_env(struct _reent *p, int category)
if (env == NULL || !*env)
env = _getenv_r (p, "LANG");
/* 4. if none is set, fall to "C" */
/* 4. if none is set, fall to default locale */
if (env == NULL || !*env)
env = "C";
env = __default_locale;
return env;
}