/* Get the basic locale definitions. */
#include <locale.h>
#include <stddef.h>
+#include <errno.h>
#include "repertoire.h"
extern char *xstrdup (const char *__str);
+/* Wrapper to switch LC_CTYPE back to the locale specified in the
+ environment for output. */
+#define WITH_CUR_LOCALE(stmt) \
+ do { \
+ int saved_errno = errno; \
+ const char *cur_locale_ = setlocale (LC_CTYPE, NULL); \
+ setlocale (LC_CTYPE, ""); \
+ errno = saved_errno; \
+ stmt; \
+ setlocale (LC_CTYPE, cur_locale_); \
+ } while (0)
+
+
/* Mark given locale as to be read. */
extern struct localedef_t *add_to_readlist (int locale, const char *name,
const char *repertoire_name,