Print this page
2964 need POSIX 2008 locale object support

@@ -1,10 +1,15 @@
 /*
  * Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
  * Copyright (c) 2001, 2003 Alexey Zelkin <phantom@FreeBSD.org>
  * All rights reserved.
  *
+ * Copyright (c) 2011 The FreeBSD Foundation
+ * All rights reserved.
+ * Portions of this software were developed by David Chisnall
+ * under sponsorship from the FreeBSD Foundation.
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.

@@ -37,19 +42,19 @@
 #include "lmonetary.h"
 #include "timelocal.h"
 
 #define _REL(BASE) ((int)item-BASE)
 
-#define MONETARY        (__get_current_monetary_locale())
-#define TIME            (__get_current_time_locale())
-#define MESSAGES        (__get_current_messages_locale())
-#define NUMERIC         (__get_current_numeric_locale())
+#define MONETARY        (__get_current_monetary_locale(loc))
+#define TIME            (__get_current_time_locale(loc))
+#define MESSAGES        (__get_current_messages_locale(loc))    /* XXX */
+#define NUMERIC         (__get_current_numeric_locale(loc))
 
 #pragma weak _nl_langinfo = nl_langinfo
 
 char *
-nl_langinfo(nl_item item)
+nl_langinfo_l(nl_item item, locale_t loc)
 {
         char *ret, *s, *cs;
         static char *csym = NULL;
 
         switch (item) {

@@ -192,5 +197,11 @@
         default:
                 ret = "";
         }
         return (ret);
 }
+
+char *
+nl_langinfo(nl_item item)
+{
+        return (nl_langinfo_l(item, __get_locale()));
+}