]> pd.if.org Git - pdclib.old/commitdiff
PDCLIB-2 PDCLIB-9: As an extension, add the POSIX thread-local locale API
authorOwen Shepherd <owen.shepherd@e43.eu>
Mon, 31 Dec 2012 16:00:46 +0000 (16:00 +0000)
committerOwen Shepherd <owen.shepherd@e43.eu>
Mon, 31 Dec 2012 16:00:46 +0000 (16:00 +0000)
includes/locale.h
internals/_PDCLIB_int.h

index 14996bbb98be6709561d9578cec53d34845d6966..21221e33e64df11f71a6eff1d767814d8fcc53d8 100644 (file)
@@ -97,6 +97,30 @@ char * setlocale( int category, const char * locale ) _PDCLIB_nothrow;
 */
 struct lconv * localeconv( void ) _PDCLIB_nothrow;
 
+#if _PDCLIB_POSIX_MIN(2008)
+typedef _PDCLIB_locale_t locale_t;
+
+/* Set the thread locale to newlocale
+ *
+ * If newlocale is (locale_t)0, then doesn't change the locale and just returns
+ * the existing locale.
+ *
+ * If newlocale is LC_GLOBAL_LOCALE, resets the thread's locale to use the 
+ * global locale.
+ *
+ * Returns the previous thread locale. If the thread had no previous locale, 
+ * returns the global locale.
+ */
+locale_t uselocale(locale_t newlocale);
+
+/* Returns a copy of loc */
+locale_t duplocale(locale_t loc);
+
+/* Frees the passed locale object */
+void freelocale(locale_t loc);
+
+#endif
+
 _PDCLIB_END_EXTERN_C
 #endif
 
index 64d921967de5465ce795da8beabfcf10ebe1f924..315a0e363b44b38bffc2dc4bd97840db55df05a4 100644 (file)
@@ -384,7 +384,7 @@ typedef struct _PDCLIB_mbstate {
 } _PDCLIB_mbstate_t;
 
 typedef struct _PDCLIB_charcodec  _PDCLIB_charcodec_t;
-typedef struct _PDCLIB_locale     _PDCLIB_locale_t;
+typedef struct _PDCLIB_locale    *_PDCLIB_locale_t;
 typedef struct lconv              _PDCLIB_lconv_t;
 
 /* -------------------------------------------------------------------------- */