From: Ulrich Drepper Date: Tue, 5 Feb 2002 19:14:27 +0000 (+0000) Subject: (WITH_CUR_LOCALE): Define. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a00d6771e926e85f36188cea06bb8d3c23747b3;p=thirdparty%2Fglibc.git (WITH_CUR_LOCALE): Define. --- 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,