summary refs log tree commit diff
path: root/locale/loadlocale.c
diff options
context:
space:
mode:
Diffstat (limited to 'locale/loadlocale.c')
-rw-r--r--locale/loadlocale.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/locale/loadlocale.c b/locale/loadlocale.c
index 5c367ae4be..7ad7a21b53 100644
--- a/locale/loadlocale.c
+++ b/locale/loadlocale.c
@@ -30,7 +30,7 @@ Cambridge, MA 02139, USA.  */
 const size_t _nl_category_num_items[] =
   {
 #define DEFINE_CATEGORY(category, category_name, items, a, b, c, d) \
-    [category] = _NL_NUM_##category,
+    [category] = _NL_ITEM_INDEX (_NL_NUM_##category),
 #include "categories.def"
 #undef	DEFINE_CATEGORY
   };
@@ -60,10 +60,12 @@ _nl_load_locale (int category, char **name)
 
   if ((*name)[0] == '\0')
     {
-      *name = getenv (_nl_category_names[category]);
-      if (! *name || (*name) == '\0')
+      *name = getenv ("LC_ALL");
+      if (! *name || (*name)[0] == '\0')
+	*name = getenv (_nl_category_names[category]);
+      if (! *name || (*name)[0] == '\0')
 	*name = getenv ("LANG");
-      if (! *name || (*name) == '\0')
+      if (! *name || (*name)[0] == '\0')
 	*name = (char *) "local";
     }
 
@@ -172,6 +174,7 @@ _nl_load_locale (int category, char **name)
       newdata->strings[i] = newdata->filedata + idx;
     }
 
+  __close (fd);
   return newdata;
 }