bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/2] Add FreeBSD locale name implementation.


From: Ed Maste
Subject: [PATCH 1/2] Add FreeBSD locale name implementation.
Date: Tue, 18 Sep 2012 20:18:13 +0000
User-agent: Mutt/1.4.2.3i

Signed-off-by: Ed Maste <address@hidden>
---
 lib/localename.c |   30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/lib/localename.c b/lib/localename.c
index c6777de..7d04742 100644
--- a/lib/localename.c
+++ b/lib/localename.c
@@ -2616,8 +2616,34 @@ gl_locale_name_thread_unsafe (int category, const char 
*categoryname)
              nl_langinfo (_NL_LOCALE_NAME (category)).  */
           name = thread_locale->__names[category];
         return name;
-#  endif
-#  if defined __APPLE__ && defined __MACH__ /* Mac OS X */
+#  elif defined __FreeBSD__
+        int mask;
+
+        switch (category)
+          {
+          case LC_COLLATE:
+            mask = LC_COLLATE_MASK;
+            break;
+          case LC_CTYPE:
+            mask = LC_CTYPE_MASK;
+            break;
+          case LC_MESSAGES:
+            mask = LC_MESSAGES_MASK;
+            break;
+          case LC_MONETARY:
+            mask = LC_MONETARY_MASK;
+            break;
+          case LC_NUMERIC:
+            mask = LC_NUMERIC_MASK;
+            break;
+          case LC_TIME:
+            mask = LC_TIME_MASK;
+            break;
+          default: /* We shouldn't get here.  */
+            return "";
+          }
+        return querylocale (mask, thread_locale);
+#  elif defined __APPLE__ && defined __MACH__ /* Mac OS X */
         /* The locale name is found deep in an undocumented data structure.
            Since it's stored in a buffer of size 32 and newlocale() rejects
            locale names of length > 31, we can assume that it is NUL terminated
-- 
1.7.10.3



reply via email to

[Prev in Thread] Current Thread [Next in Thread]