aboutsummaryrefslogtreecommitdiff
path: root/locale
diff options
context:
space:
mode:
Diffstat (limited to 'locale')
-rw-r--r--locale/nl_langinfo.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/locale/nl_langinfo.c b/locale/nl_langinfo.c
index 7df2b30ba9..2314b80f0f 100644
--- a/locale/nl_langinfo.c
+++ b/locale/nl_langinfo.c
@@ -47,6 +47,18 @@ nl_langinfo (item)
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
data = l->__locales[category];
+#elif defined NL_CURRENT_INDIRECT
+ /* Make direct reference to every _nl_current_CATEGORY symbol,
+ since we know only at runtime which categories are used. */
+ switch (category)
+ {
+# define DEFINE_CATEGORY(category, category_name, items, a) \
+ case category: data = *_nl_current_##category; break;
+# include "categories.def"
+# undef DEFINE_CATEGORY
+ default: /* Should be impossible. */
+ return (char *) "";
+ }
#else
data = _NL_CURRENT_DATA (category);
#endif