Print this page
2964 need POSIX 2008 locale object support

@@ -41,12 +41,10 @@
  */
 
 #ifndef _ISO_LOCALE_ISO_H
 #define _ISO_LOCALE_ISO_H
 
-#pragma ident   "%Z%%M% %I%     %E% SMI"
-
 #include <sys/feature_tests.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif

@@ -113,10 +111,32 @@
 #else
 extern char   *setlocale();
 extern struct lconv     *localeconv();
 #endif
 
+#define LC_COLLATE_MASK         (1<<0)
+#define LC_CTYPE_MASK           (1<<1)
+#define LC_MESSAGES_MASK        (1<<2)
+#define LC_MONETARY_MASK        (1<<3)
+#define LC_NUMERIC_MASK         (1<<4)
+#define LC_TIME_MASK            (1<<5)
+#define LC_ALL_MASK             (LC_COLLATE_MASK | LC_CTYPE_MASK | LC_MESSAGES_MASK | \
+                                 LC_MONETARY_MASK | LC_NUMERIC_MASK | LC_TIME_MASK)
+#define LC_GLOBAL_LOCALE        ((locale_t)-1)
+
+/* XXX */
+#ifndef _LOCALE_T_DEFINED
+#define _LOCALE_T_DEFINED
+typedef struct  _xlocale *locale_t;
+#endif
+
+locale_t        duplocale(locale_t);
+int             freelocale(locale_t);
+locale_t        newlocale(int, const char *, locale_t);
+const char      *querylocale(int, locale_t);
+locale_t        uselocale(locale_t);
+
 #if __cplusplus >= 199711L
 }
 #endif /* end of namespace std */
 
 #ifdef  __cplusplus