diff options
Diffstat (limited to 'locale')
-rw-r--r-- | locale/C_name.c | 7 | ||||
-rw-r--r-- | locale/Makefile | 2 | ||||
-rw-r--r-- | locale/setlocale.c | 9 |
3 files changed, 11 insertions, 7 deletions
diff --git a/locale/C_name.c b/locale/C_name.c new file mode 100644 index 0000000000..5e7cb85a09 --- /dev/null +++ b/locale/C_name.c @@ -0,0 +1,7 @@ +/* Define a constant for the name of the standard C locale, so the string + constant is not repeated in dozens of object files. */ + +#include "localeinfo.h" + +/* Name of our standard locale. */ +const char _nl_C_name[] = "C"; diff --git a/locale/Makefile b/locale/Makefile index 6b208b71a6..d7941d689f 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -30,7 +30,7 @@ distribute = localeinfo.h categories.def \ locales.h locfile.h stringtrans.h routines = setlocale findlocale loadlocale localeconv nl_langinfo categories = ctype messages monetary numeric time collate -aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc +aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name others = localedef locale install-bin = localedef locale extra-objs = $(localedef-modules:=.o) $(locale-modules:=.o) \ diff --git a/locale/setlocale.c b/locale/setlocale.c index c0d6fcdc4e..6eb6d98d70 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -102,9 +102,6 @@ void (*const _nl_category_postload[]) (void) = }; -/* Name of our standard locale. */ -const char _nl_C_name[] = "C"; - /* Name of current locale for each individual category. Each is malloc'd unless it is nl_C_name. */ static const char *_nl_current_names[] = @@ -261,7 +258,7 @@ setlocale (int category, const char *locale) if (__argz_append (&locale_path, &locale_path_len, LOCALE_PATH, sizeof (LOCALE_PATH)) != 0) return NULL; - + if (category == LC_ALL) { /* The user wants to set all categories. The desired locales @@ -274,7 +271,7 @@ setlocale (int category, const char *locale) /* Set all name pointers to the argument name. */ for (category = 0; category < LC_ALL; ++category) newnames[category] = (char *) locale; - + if (strchr (locale, ';') != NULL) { /* This is a composite name. Make a copy and split it up. */ @@ -329,7 +326,7 @@ setlocale (int category, const char *locale) int save_errno; abort_composite: save_errno = errno; - + while (++category < LC_ALL) if (_nl_current[category] != NULL) _nl_free_locale (newdata[category]); |