aboutsummaryrefslogtreecommitdiff
path: root/locale/setlocale.c
diff options
context:
space:
mode:
Diffstat (limited to 'locale/setlocale.c')
-rw-r--r--locale/setlocale.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/locale/setlocale.c b/locale/setlocale.c
index c0f453cd94..8f40520c6e 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -305,26 +305,27 @@ setlocale (int category, const char *locale)
/* Load the new data for each category. */
while (category-- > 0)
- {
- /* XXX hack. Remove when collation works. */
- if (category == LC_COLLATE)
- {
- newdata[category] = NULL;
- continue;
- }
+ if (category != LC_ALL)
+ {
+ /* XXX hack. Remove when collation works. */
+ if (category == LC_COLLATE)
+ {
+ newdata[category] = NULL;
+ continue;
+ }
- newdata[category] = _nl_find_locale (locale_path, locale_path_len,
- category,
- &newnames[category]);
+ newdata[category] = _nl_find_locale (locale_path, locale_path_len,
+ category,
+ &newnames[category]);
- if (newdata[category] == NULL)
- break;
+ if (newdata[category] == NULL)
+ break;
- /* We must not simply free a global locale since we have no
- control over the usage. So we mark it as un-deletable. */
- if (newdata[category]->usage_count != UNDELETABLE)
- newdata[category]->usage_count = UNDELETABLE;
- }
+ /* We must not simply free a global locale since we have no
+ control over the usage. So we mark it as un-deletable. */
+ if (newdata[category]->usage_count != UNDELETABLE)
+ newdata[category]->usage_count = UNDELETABLE;
+ }
/* Create new composite name. */
composite = (category >= 0