From 8a00d6771e926e85f36188cea06bb8d3c23747b3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 5 Feb 2002 19:14:27 +0000 Subject: [PATCH] (WITH_CUR_LOCALE): Define. --- locale/programs/localedef.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/locale/programs/localedef.h b/locale/programs/localedef.h index dc631e96ac9..ce58a21b6f7 100644 --- a/locale/programs/localedef.h +++ b/locale/programs/localedef.h @@ -24,6 +24,7 @@ /* Get the basic locale definitions. */ #include #include +#include #include "repertoire.h" @@ -122,6 +123,19 @@ extern void *xrealloc (void *__p, size_t __n); 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, -- 2.47.2