Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 09:21:13

0001 /* Message catalogs for internationalization.
0002    Copyright (C) 1995-2024 Free Software Foundation, Inc.
0003 
0004    This program is free software: you can redistribute it and/or modify
0005    it under the terms of the GNU Lesser General Public License as published by
0006    the Free Software Foundation; either version 2.1 of the License, or
0007    (at your option) any later version.
0008 
0009    This program is distributed in the hope that it will be useful,
0010    but WITHOUT ANY WARRANTY; without even the implied warranty of
0011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0012    GNU Lesser General Public License for more details.
0013 
0014    You should have received a copy of the GNU Lesser General Public License
0015    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
0016 
0017 #ifndef _LIBINTL_H
0018 #define _LIBINTL_H 1
0019 
0020 #include <locale.h>
0021 #if (defined __APPLE__ && defined __MACH__) && 1
0022 # include <xlocale.h>
0023 #endif
0024 
0025 /* The LC_MESSAGES locale category is the category used by the functions
0026    gettext() and dgettext().  It is specified in POSIX, but not in ANSI C.
0027    On systems that don't define it, use an arbitrary value instead.
0028    On Solaris, <locale.h> defines __LOCALE_H (or _LOCALE_H in Solaris 2.5)
0029    then includes <libintl.h> (i.e. this file!) and then only defines
0030    LC_MESSAGES.  To avoid a redefinition warning, don't define LC_MESSAGES
0031    in this case.  */
0032 #if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun))
0033 # define LC_MESSAGES 1729
0034 #endif
0035 
0036 /* We define an additional symbol to signal that we use the GNU
0037    implementation of gettext.  */
0038 #define __USE_GNU_GETTEXT 1
0039 
0040 /* Provide information about the supported file formats.  Returns the
0041    maximum minor revision number supported for a given major revision.  */
0042 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) \
0043   ((major) == 0 || (major) == 1 ? 1 : -1)
0044 
0045 /* Resolve a platform specific conflict on DJGPP.  GNU gettext takes
0046    precedence over _conio_gettext.  */
0047 #ifdef __DJGPP__
0048 # undef gettext
0049 #endif
0050 
0051 #ifdef __cplusplus
0052 extern "C" {
0053 #endif
0054 
0055 
0056 /* Version number: (major<<16) + (minor<<8) + subminor */
0057 #define LIBINTL_VERSION 0x001701
0058 extern int libintl_version;
0059 
0060 
0061 /* We redirect the functions to those prefixed with "libintl_".  This is
0062    necessary, because some systems define gettext/textdomain/... in the C
0063    library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).
0064    If we used the unprefixed names, there would be cases where the
0065    definition in the C library would override the one in the libintl.so
0066    shared library.  Recall that on ELF systems, the symbols are looked
0067    up in the following order:
0068      1. in the executable,
0069      2. in the shared libraries specified on the link command line, in order,
0070      3. in the dependencies of the shared libraries specified on the link
0071         command line,
0072      4. in the dlopen()ed shared libraries, in the order in which they were
0073         dlopen()ed.
0074    The definition in the C library would override the one in libintl.so if
0075    either
0076      * -lc is given on the link command line and -lintl isn't, or
0077      * -lc is given on the link command line before -lintl, or
0078      * libintl.so is a dependency of a dlopen()ed shared library but not
0079        linked to the executable at link time.
0080    Since Solaris gettext() behaves differently than GNU gettext(), this
0081    would be unacceptable.
0082 
0083    For the redirection, three mechanisms are available:
0084      * _INTL_REDIRECT_ASM uses a function declaration with 'asm', that
0085        specifies a different symbol at the linker level than at the C level.
0086      * _INTL_REDIRECT_INLINE uses an inline function definition.  In C,
0087        we use 'static inline' to force the override.  In C++, it is better
0088        to use 'inline' without 'static'.  But since the override is only
0089        effective if the inlining happens, we need to use
0090        __attribute__ ((__always_inline__)), which is supported in g++ >= 3.1
0091        and clang.  MSVC has a similar keyword __forceinline (see
0092        <https://learn.microsoft.com/en-us/cpp/cpp/inline-functions-cpp>),
0093        but it has an effect only when optimizing is enabled, and there is no
0094        preprocessor macro that tells us whether optimizing is enabled.
0095      * _INTL_REDIRECT_MACROS uses C macros.
0096    The drawbacks are:
0097      * _INTL_REDIRECT_ASM and _INTL_REDIRECT_INLINE don't work when the
0098        function has an inline function definition in a system header file;
0099        this mostly affects mingw and MSVC.  In these cases,
0100        _INTL_REDIRECT_MACROS is the only mechanism that works.
0101      * _INTL_REDIRECT_MACROS can interfere with symbols used in structs and
0102        classes (especially in C++, but also in C).  For example, Qt has a class
0103        with an 'asprintf' member, and our '#define asprintf libintl_asprintf'
0104        triggers a compilation error.
0105      * _INTL_REDIRECT_INLINE in C mode has the effect that each function's
0106        address, such as &gettext, is different in each compilation unit.
0107  */
0108 
0109 /* _INTL_FORCE_INLINE ensures inlining of a function, even when not
0110    optimizing.  */
0111 /* Applies to: functions.  */
0112 /* Supported by g++ >= 3.1 and clang.  Actually needed for g++ < 4.0.  */
0113 #if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 1) > 3) || defined __clang__
0114 # define _INTL_HAS_FORCE_INLINE
0115 # define _INTL_FORCE_INLINE __attribute__ ((__always_inline__))
0116 #else
0117 # define _INTL_FORCE_INLINE
0118 #endif
0119 
0120 /* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS.
0121    If he doesn't, we choose the method.  */
0122 #if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)
0123 # if defined __GNUC__ && __GNUC__ >= 2 && !(defined __APPLE_CC__ && __APPLE_CC__ > 1) && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
0124 #  define _INTL_REDIRECT_ASM
0125 # else
0126 #  if defined __cplusplus && defined _INTL_HAS_FORCE_INLINE
0127 #   define _INTL_REDIRECT_INLINE
0128 #  else
0129 #   define _INTL_REDIRECT_MACROS
0130 #  endif
0131 # endif
0132 #endif
0133 /* Auxiliary macros.  */
0134 #ifdef _INTL_REDIRECT_ASM
0135 # define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname))
0136 # define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring
0137 # define _INTL_STRINGIFY(prefix) #prefix
0138 #else
0139 # define _INTL_ASM(cname)
0140 #endif
0141 
0142 /* _INTL_MAY_RETURN_STRING_ARG(n) declares that the given function may return
0143    its n-th argument literally.  This enables GCC to warn for example about
0144    printf (gettext ("foo %y")).  */
0145 #if ((defined __GNUC__ && __GNUC__ >= 3) || defined __clang__) && !(defined __APPLE_CC__ && __APPLE_CC__ > 1 && !(defined __clang__ && __clang__ && __clang_major__ >= 3) && defined __cplusplus)
0146 # define _INTL_MAY_RETURN_STRING_ARG(n) __attribute__ ((__format_arg__ (n)))
0147 #else
0148 # define _INTL_MAY_RETURN_STRING_ARG(n)
0149 #endif
0150 
0151 /* _INTL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK))
0152    declares that the STRING-INDEXth function argument is a format string of
0153    style ARCHETYPE, which is one of:
0154      printf, gnu_printf
0155      scanf, gnu_scanf,
0156      strftime, gnu_strftime,
0157      strfmon,
0158    or the same thing prefixed and suffixed with '__'.
0159    If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK
0160    are suitable for the format string.  */
0161 /* Applies to: functions.  */
0162 #if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 7) > 2) || defined __clang__
0163 # define _INTL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
0164 #else
0165 # define _INTL_ATTRIBUTE_FORMAT(spec)
0166 #endif
0167 
0168 /* _INTL_ATTRIBUTE_SPEC_PRINTF_STANDARD
0169    An __attribute__ __format__ specifier for a function that takes a format
0170    string and arguments, where the format string directives are the ones
0171    standardized by ISO C99 and POSIX.  */
0172 /* __gnu_printf__ is supported in GCC >= 4.4.  */
0173 #if defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 4) > 4
0174 # define _INTL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__
0175 #else
0176 # define _INTL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__
0177 #endif
0178 
0179 /* _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD
0180    indicates to GCC that the function takes a format string and arguments,
0181    where the format string directives are the ones standardized by ISO C99
0182    and POSIX.  */
0183 #define _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \
0184   _INTL_ATTRIBUTE_FORMAT ((_INTL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument))
0185 
0186 /* _INTL_ARG_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,...
0187    must not be NULL.  */
0188 /* Applies to: functions.  */
0189 #if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__
0190 # define _INTL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
0191 #else
0192 # define _INTL_ARG_NONNULL(params)
0193 #endif
0194 
0195 
0196 /* Look up MSGID in the current default message catalog for the current
0197    LC_MESSAGES locale.  If not found, returns MSGID itself (the default
0198    text).  */
0199 #ifdef _INTL_REDIRECT_INLINE
0200 extern char *libintl_gettext (const char *__msgid)
0201        _INTL_MAY_RETURN_STRING_ARG (1);
0202 # ifndef __cplusplus
0203 static
0204 # endif
0205 inline
0206 _INTL_FORCE_INLINE
0207 _INTL_MAY_RETURN_STRING_ARG (1)
0208 char *gettext (const char *__msgid)
0209 {
0210   return libintl_gettext (__msgid);
0211 }
0212 #else
0213 # ifdef _INTL_REDIRECT_MACROS
0214 #  define gettext libintl_gettext
0215 # endif
0216 extern char *gettext (const char *__msgid)
0217        _INTL_ASM (libintl_gettext)
0218        _INTL_MAY_RETURN_STRING_ARG (1);
0219 #endif
0220 
0221 /* Look up MSGID in the DOMAINNAME message catalog for the current
0222    LC_MESSAGES locale.  */
0223 #ifdef _INTL_REDIRECT_INLINE
0224 extern char *libintl_dgettext (const char *__domainname, const char *__msgid)
0225        _INTL_MAY_RETURN_STRING_ARG (2);
0226 # ifndef __cplusplus
0227 static
0228 # endif
0229 inline
0230 _INTL_FORCE_INLINE
0231 _INTL_MAY_RETURN_STRING_ARG (2)
0232 char *dgettext (const char *__domainname, const char *__msgid)
0233 {
0234   return libintl_dgettext (__domainname, __msgid);
0235 }
0236 #else
0237 # ifdef _INTL_REDIRECT_MACROS
0238 #  define dgettext libintl_dgettext
0239 # endif
0240 extern char *dgettext (const char *__domainname, const char *__msgid)
0241        _INTL_ASM (libintl_dgettext)
0242        _INTL_MAY_RETURN_STRING_ARG (2);
0243 #endif
0244 
0245 /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
0246    locale.  */
0247 #ifdef _INTL_REDIRECT_INLINE
0248 extern char *libintl_dcgettext (const char *__domainname, const char *__msgid,
0249                                 int __category)
0250        _INTL_MAY_RETURN_STRING_ARG (2);
0251 # ifndef __cplusplus
0252 static
0253 # endif
0254 inline
0255 _INTL_FORCE_INLINE
0256 _INTL_MAY_RETURN_STRING_ARG (2)
0257 char *dcgettext (const char *__domainname, const char *__msgid, int __category)
0258 {
0259   return libintl_dcgettext (__domainname, __msgid, __category);
0260 }
0261 #else
0262 # ifdef _INTL_REDIRECT_MACROS
0263 #  define dcgettext libintl_dcgettext
0264 # endif
0265 extern char *dcgettext (const char *__domainname, const char *__msgid,
0266                         int __category)
0267        _INTL_ASM (libintl_dcgettext)
0268        _INTL_MAY_RETURN_STRING_ARG (2);
0269 #endif
0270 
0271 
0272 /* Similar to 'gettext' but select the plural form corresponding to the
0273    number N.  */
0274 #ifdef _INTL_REDIRECT_INLINE
0275 extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2,
0276                                unsigned long int __n)
0277        _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
0278 # ifndef __cplusplus
0279 static
0280 # endif
0281 inline
0282 _INTL_FORCE_INLINE
0283 _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2)
0284 char *ngettext (const char *__msgid1, const char *__msgid2,
0285                 unsigned long int __n)
0286 {
0287   return libintl_ngettext (__msgid1, __msgid2, __n);
0288 }
0289 #else
0290 # ifdef _INTL_REDIRECT_MACROS
0291 #  define ngettext libintl_ngettext
0292 # endif
0293 extern char *ngettext (const char *__msgid1, const char *__msgid2,
0294                        unsigned long int __n)
0295        _INTL_ASM (libintl_ngettext)
0296        _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
0297 #endif
0298 
0299 /* Similar to 'dgettext' but select the plural form corresponding to the
0300    number N.  */
0301 #ifdef _INTL_REDIRECT_INLINE
0302 extern char *libintl_dngettext (const char *__domainname, const char *__msgid1,
0303                                 const char *__msgid2, unsigned long int __n)
0304        _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
0305 # ifndef __cplusplus
0306 static
0307 # endif
0308 inline
0309 _INTL_FORCE_INLINE
0310 _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3)
0311 char *dngettext (const char *__domainname, const char *__msgid1,
0312                  const char *__msgid2, unsigned long int __n)
0313 {
0314   return libintl_dngettext (__domainname, __msgid1, __msgid2, __n);
0315 }
0316 #else
0317 # ifdef _INTL_REDIRECT_MACROS
0318 #  define dngettext libintl_dngettext
0319 # endif
0320 extern char *dngettext (const char *__domainname,
0321                         const char *__msgid1, const char *__msgid2,
0322                         unsigned long int __n)
0323        _INTL_ASM (libintl_dngettext)
0324        _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
0325 #endif
0326 
0327 /* Similar to 'dcgettext' but select the plural form corresponding to the
0328    number N.  */
0329 #ifdef _INTL_REDIRECT_INLINE
0330 extern char *libintl_dcngettext (const char *__domainname,
0331                                  const char *__msgid1, const char *__msgid2,
0332                                  unsigned long int __n, int __category)
0333        _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
0334 # ifndef __cplusplus
0335 static
0336 # endif
0337 inline
0338 _INTL_FORCE_INLINE
0339 _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3)
0340 char *dcngettext (const char *__domainname,
0341                   const char *__msgid1, const char *__msgid2,
0342                   unsigned long int __n, int __category)
0343 {
0344   return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category);
0345 }
0346 #else
0347 # ifdef _INTL_REDIRECT_MACROS
0348 #  define dcngettext libintl_dcngettext
0349 # endif
0350 extern char *dcngettext (const char *__domainname,
0351                          const char *__msgid1, const char *__msgid2,
0352                          unsigned long int __n, int __category)
0353        _INTL_ASM (libintl_dcngettext)
0354        _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
0355 #endif
0356 
0357 
0358 /* Set the current default message catalog to DOMAINNAME.
0359    If DOMAINNAME is null, return the current default.
0360    If DOMAINNAME is "", reset to the default of "messages".  */
0361 #ifdef _INTL_REDIRECT_INLINE
0362 extern char *libintl_textdomain (const char *__domainname);
0363 # ifndef __cplusplus
0364 static
0365 # endif
0366 inline
0367 _INTL_FORCE_INLINE
0368 char *textdomain (const char *__domainname)
0369 {
0370   return libintl_textdomain (__domainname);
0371 }
0372 #else
0373 # ifdef _INTL_REDIRECT_MACROS
0374 #  define textdomain libintl_textdomain
0375 # endif
0376 extern char *textdomain (const char *__domainname)
0377        _INTL_ASM (libintl_textdomain);
0378 #endif
0379 
0380 /* Specify that the DOMAINNAME message catalog will be found
0381    in DIRNAME rather than in the system locale data base.  */
0382 #ifdef _INTL_REDIRECT_INLINE
0383 extern char *libintl_bindtextdomain (const char *__domainname,
0384                                      const char *__dirname);
0385 # ifndef __cplusplus
0386 static
0387 # endif
0388 inline
0389 _INTL_FORCE_INLINE
0390 char *bindtextdomain (const char *__domainname, const char *__dirname)
0391 {
0392   return libintl_bindtextdomain (__domainname, __dirname);
0393 }
0394 #else
0395 # ifdef _INTL_REDIRECT_MACROS
0396 #  define bindtextdomain libintl_bindtextdomain
0397 # endif
0398 extern char *bindtextdomain (const char *__domainname, const char *__dirname)
0399        _INTL_ASM (libintl_bindtextdomain);
0400 #endif
0401 
0402 #if defined _WIN32 && !defined __CYGWIN__
0403 /* Specify that the DOMAINNAME message catalog will be found
0404    in WDIRNAME rather than in the system locale data base.  */
0405 # ifdef _INTL_REDIRECT_INLINE
0406 extern wchar_t *libintl_wbindtextdomain (const char *__domainname,
0407                                          const wchar_t *__wdirname);
0408 # ifndef __cplusplus
0409 static
0410 # endif
0411 inline
0412 _INTL_FORCE_INLINE
0413 wchar_t *wbindtextdomain (const char *__domainname, const wchar_t *__wdirname)
0414 {
0415   return libintl_wbindtextdomain (__domainname, __wdirname);
0416 }
0417 # else
0418 #  ifdef _INTL_REDIRECT_MACROS
0419 #   define wbindtextdomain libintl_wbindtextdomain
0420 #  endif
0421 extern wchar_t *wbindtextdomain (const char *__domainname,
0422                                  const wchar_t *__wdirname)
0423        _INTL_ASM (libintl_wbindtextdomain);
0424 # endif
0425 #endif
0426 
0427 /* Specify the character encoding in which the messages from the
0428    DOMAINNAME message catalog will be returned.  */
0429 #ifdef _INTL_REDIRECT_INLINE
0430 extern char *libintl_bind_textdomain_codeset (const char *__domainname,
0431                                               const char *__codeset);
0432 # ifndef __cplusplus
0433 static
0434 # endif
0435 inline
0436 _INTL_FORCE_INLINE
0437 char *bind_textdomain_codeset (const char *__domainname, const char *__codeset)
0438 {
0439   return libintl_bind_textdomain_codeset (__domainname, __codeset);
0440 }
0441 #else
0442 # ifdef _INTL_REDIRECT_MACROS
0443 #  define bind_textdomain_codeset libintl_bind_textdomain_codeset
0444 # endif
0445 extern char *bind_textdomain_codeset (const char *__domainname,
0446                                       const char *__codeset)
0447        _INTL_ASM (libintl_bind_textdomain_codeset);
0448 #endif
0449 
0450 
0451 /* Support for format strings with positions in *printf(), following the
0452    POSIX/XSI specification.
0453    Note: These replacements for the *printf() functions are visible only
0454    in source files that #include <libintl.h> or #include "gettext.h".
0455    Packages that use *printf() in source files that don't refer to _()
0456    or gettext() but for which the format string could be the return value
0457    of _() or gettext() need to add this #include.  Oh well.  */
0458 
0459 /* Note: In C++ mode, it is not sufficient to redefine a symbol at the
0460    preprocessor macro level, such as
0461      #define sprintf libintl_sprintf
0462    Some programs may reference std::sprintf after including <libintl.h>.
0463    Therefore we must make sure that std::libintl_sprintf is defined and
0464    identical to ::libintl_sprintf.
0465    The user can define _INTL_CXX_NO_CLOBBER_STD_NAMESPACE to avoid this.
0466    In such cases, they will not benefit from the overrides when using
0467    the 'std' namespace, and they will need to do the references to the
0468    'std' namespace *before* including <libintl.h> or "gettext.h".  */
0469 
0470 #if !1
0471 
0472 # include <stdio.h>
0473 # include <stddef.h>
0474 
0475 /* Get va_list.  */
0476 # if (defined __STDC__ && __STDC__) || defined __cplusplus || defined _MSC_VER
0477 #  include <stdarg.h>
0478 # else
0479 #  include <varargs.h>
0480 # endif
0481 
0482 # if !((defined fprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_fprintf) /* don't override gnulib */
0483 #  if defined _INTL_REDIRECT_INLINE && !(defined __MINGW32__ || defined _MSC_VER)
0484 extern int libintl_vfprintf (FILE *, const char *, va_list)
0485        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0486        _INTL_ARG_NONNULL ((1, 2));
0487 #   ifndef __cplusplus
0488 static
0489 #   endif
0490 inline
0491 _INTL_FORCE_INLINE
0492 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _INTL_ARG_NONNULL ((1, 2))
0493 int fprintf (FILE *__stream, const char *__format, ...)
0494 {
0495   va_list __args;
0496   int __ret;
0497   va_start (__args, __format);
0498   __ret = libintl_vfprintf (__stream, __format, __args);
0499   va_end (__args);
0500   return __ret;
0501 }
0502 #  elif !defined _INTL_NO_DEFINE_MACRO_FPRINTF
0503 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER
0504 #    undef fprintf
0505 #    define fprintf libintl_fprintf
0506 #   endif
0507 extern int fprintf (FILE *, const char *, ...)
0508        _INTL_ASM (libintl_fprintf)
0509        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
0510        _INTL_ARG_NONNULL ((1, 2));
0511 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0512 namespace std { using ::libintl_fprintf; }
0513 #   endif
0514 #  endif
0515 # endif
0516 # if !((defined vfprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vfprintf) /* don't override gnulib */
0517 #  if defined _INTL_REDIRECT_INLINE && !(defined __MINGW32__ || defined _MSC_VER)
0518 extern int libintl_vfprintf (FILE *, const char *, va_list)
0519        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0520        _INTL_ARG_NONNULL ((1, 2));
0521 #   ifndef __cplusplus
0522 static
0523 #   endif
0524 inline
0525 _INTL_FORCE_INLINE
0526 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _INTL_ARG_NONNULL ((1, 2))
0527 int vfprintf (FILE *__stream, const char *__format, va_list __args)
0528 {
0529   return libintl_vfprintf (__stream, __format, __args);
0530 }
0531 #  elif !defined _INTL_NO_DEFINE_MACRO_VFPRINTF
0532 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER
0533 #    undef vfprintf
0534 #    define vfprintf libintl_vfprintf
0535 #   endif
0536 extern int vfprintf (FILE *, const char *, va_list)
0537        _INTL_ASM (libintl_vfprintf)
0538        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0539        _INTL_ARG_NONNULL ((1, 2));
0540 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0541 namespace std { using ::libintl_vfprintf; }
0542 #   endif
0543 #  endif
0544 # endif
0545 
0546 # if !((defined printf && defined _GL_STDIO_H) || defined GNULIB_overrides_printf) /* don't override gnulib */
0547 #  if defined _INTL_REDIRECT_INLINE && !(defined __MINGW32__ || defined _MSC_VER)
0548 extern int libintl_vprintf (const char *, va_list)
0549        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0)
0550        _INTL_ARG_NONNULL ((1));
0551 #   ifndef __cplusplus
0552 static
0553 #   endif
0554 inline
0555 _INTL_FORCE_INLINE
0556 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) _INTL_ARG_NONNULL ((1))
0557 int printf (const char *__format, ...)
0558 {
0559   va_list __args;
0560   int __ret;
0561   va_start (__args, __format);
0562   __ret = libintl_vprintf (__format, __args);
0563   va_end (__args);
0564   return __ret;
0565 }
0566 #  elif !defined _INTL_NO_DEFINE_MACRO_PRINTF
0567 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER
0568 #    undef printf
0569 #    if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__
0570 /* Don't break __attribute__((format(printf,M,N))).
0571    This redefinition is only possible because the libc in NetBSD, Cygwin,
0572    mingw does not have a function __printf__.
0573    Alternatively, we could have done this redirection only when compiling with
0574    __GNUC__, together with a symbol redirection:
0575        extern int printf (const char *, ...)
0576               __asm__ (#__USER_LABEL_PREFIX__ "libintl_printf");
0577    But doing it now would introduce a binary incompatibility with already
0578    distributed versions of libintl on these systems.  */
0579 #     define libintl_printf __printf__
0580 #    endif
0581 #    define printf libintl_printf
0582 #   endif
0583 extern int printf (const char *, ...)
0584        _INTL_ASM (libintl_printf)
0585        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2)
0586        _INTL_ARG_NONNULL ((1));
0587 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0588 namespace std { using ::libintl_printf; }
0589 #   endif
0590 #  endif
0591 # endif
0592 # if !((defined vprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vprintf) /* don't override gnulib */
0593 #  if defined _INTL_REDIRECT_INLINE && !(defined __MINGW32__ || defined _MSC_VER)
0594 extern int libintl_vprintf (const char *, va_list)
0595        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0)
0596        _INTL_ARG_NONNULL ((1));
0597 #   ifndef __cplusplus
0598 static
0599 #   endif
0600 inline
0601 _INTL_FORCE_INLINE
0602 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) _INTL_ARG_NONNULL ((1))
0603 int vprintf (const char *__format, va_list __args)
0604 {
0605   return libintl_vprintf (__format, __args);
0606 }
0607 #  elif !defined _INTL_NO_DEFINE_MACRO_VPRINTF
0608 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER
0609 #    undef vprintf
0610 #    define vprintf libintl_vprintf
0611 #   endif
0612 extern int vprintf (const char *, va_list)
0613        _INTL_ASM (libintl_vprintf)
0614        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0)
0615        _INTL_ARG_NONNULL ((1));
0616 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0617 namespace std { using ::libintl_vprintf; }
0618 #   endif
0619 #  endif
0620 # endif
0621 
0622 # if !((defined sprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_sprintf) /* don't override gnulib */
0623 #  if defined _INTL_REDIRECT_INLINE && !(defined __MINGW32__ || defined _MSC_VER)
0624 extern int libintl_vsprintf (char *, const char *, va_list)
0625        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0626        _INTL_ARG_NONNULL ((1, 2));
0627 #   ifndef __cplusplus
0628 static
0629 #   endif
0630 inline
0631 _INTL_FORCE_INLINE
0632 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _INTL_ARG_NONNULL ((1, 2))
0633 int sprintf (char *__result, const char *__format, ...)
0634 {
0635   va_list __args;
0636   int __ret;
0637   va_start (__args, __format);
0638   __ret = libintl_vsprintf (__result, __format, __args);
0639   va_end (__args);
0640   return __ret;
0641 }
0642 #  elif !defined _INTL_NO_DEFINE_MACRO_SPRINTF
0643 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER
0644 #    undef sprintf
0645 #    define sprintf libintl_sprintf
0646 #   endif
0647 extern int sprintf (char *, const char *, ...)
0648        _INTL_ASM (libintl_sprintf)
0649        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
0650        _INTL_ARG_NONNULL ((1, 2));
0651 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0652 namespace std { using ::libintl_sprintf; }
0653 #   endif
0654 #  endif
0655 # endif
0656 # if !((defined vsprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vsprintf) /* don't override gnulib */
0657 #  if defined _INTL_REDIRECT_INLINE && !(defined __MINGW32__ || defined _MSC_VER)
0658 extern int libintl_vsprintf (char *, const char *, va_list)
0659        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0660        _INTL_ARG_NONNULL ((1, 2));
0661 #   ifndef __cplusplus
0662 static
0663 #   endif
0664 inline
0665 _INTL_FORCE_INLINE
0666 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _INTL_ARG_NONNULL ((1, 2))
0667 int vsprintf (char *__result, const char *__format, va_list __args)
0668 {
0669   return libintl_vsprintf (__result, __format, __args);
0670 }
0671 #  elif !defined _INTL_NO_DEFINE_MACRO_VSPRINTF
0672 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER
0673 #    undef vsprintf
0674 #    define vsprintf libintl_vsprintf
0675 #   endif
0676 extern int vsprintf (char *, const char *, va_list)
0677        _INTL_ASM (libintl_vsprintf)
0678        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0679        _INTL_ARG_NONNULL ((1, 2));
0680 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__ || defined _MSC_VER) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0681 namespace std { using ::libintl_vsprintf; }
0682 #   endif
0683 #  endif
0684 # endif
0685 
0686 # if 1
0687 
0688 #  if !((defined snprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_snprintf) /* don't override gnulib */
0689 #   if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0690 extern int libintl_vsnprintf (char *, size_t, const char *, va_list)
0691        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0)
0692        _INTL_ARG_NONNULL ((3));
0693 #    ifndef __cplusplus
0694 static
0695 #    endif
0696 inline
0697 _INTL_FORCE_INLINE
0698 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) _INTL_ARG_NONNULL ((3))
0699 int snprintf (char *__result, size_t __maxlen, const char *__format, ...)
0700 {
0701   va_list __args;
0702   int __ret;
0703   va_start (__args, __format);
0704   __ret = libintl_vsnprintf (__result, __maxlen, __format, __args);
0705   va_end (__args);
0706   return __ret;
0707 }
0708 #   elif !defined _INTL_NO_DEFINE_MACRO_SNPRINTF
0709 #    if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0710 #     undef snprintf
0711 #     define snprintf libintl_snprintf
0712 #    endif
0713 extern int snprintf (char *, size_t, const char *, ...)
0714        _INTL_ASM (libintl_snprintf)
0715        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4)
0716        _INTL_ARG_NONNULL ((3));
0717 #    if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0718 namespace std { using ::libintl_snprintf; }
0719 #    endif
0720 #   endif
0721 #  endif
0722 #  if !((defined vsnprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vsnprintf) /* don't override gnulib */
0723 #   if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0724 extern int libintl_vsnprintf (char *, size_t, const char *, va_list)
0725        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0)
0726        _INTL_ARG_NONNULL ((3));
0727 #    ifndef __cplusplus
0728 static
0729 #    endif
0730 inline
0731 _INTL_FORCE_INLINE
0732 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _INTL_ARG_NONNULL ((3))
0733 int vsnprintf (char *__result, size_t __maxlen, const char *__format, va_list __args)
0734 {
0735   return libintl_vsnprintf (__result, __maxlen, __format, __args);
0736 }
0737 #   elif !defined _INTL_NO_DEFINE_MACRO_VSNPRINTF
0738 #    if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0739 #     undef vsnprintf
0740 #     define vsnprintf libintl_vsnprintf
0741 #    endif
0742 extern int vsnprintf (char *, size_t, const char *, va_list)
0743        _INTL_ASM (libintl_vsnprintf)
0744        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0)
0745        _INTL_ARG_NONNULL ((3));
0746 #    if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0747 namespace std { using ::libintl_vsnprintf; }
0748 #    endif
0749 #   endif
0750 #  endif
0751 
0752 # endif
0753 
0754 # if 1
0755 
0756 #  if !((defined asprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_asprintf) /* don't override gnulib */
0757 #   if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0758 extern int libintl_vasprintf (char **, const char *, va_list)
0759        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0760        _INTL_ARG_NONNULL ((1, 2));
0761 #    ifndef __cplusplus
0762 static
0763 #    endif
0764 inline
0765 _INTL_FORCE_INLINE
0766 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _INTL_ARG_NONNULL ((1, 2))
0767 int asprintf (char **__result, const char *__format, ...)
0768 {
0769   va_list __args;
0770   int __ret;
0771   va_start (__args, __format);
0772   __ret = libintl_vasprintf (__result, __format, __args);
0773   va_end (__args);
0774   return __ret;
0775 }
0776 #   elif !defined _INTL_NO_DEFINE_MACRO_ASPRINTF
0777 #    if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0778 #     undef asprintf
0779 #     define asprintf libintl_asprintf
0780 #    endif
0781 extern int asprintf (char **, const char *, ...)
0782        _INTL_ASM (libintl_asprintf)
0783        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
0784        _INTL_ARG_NONNULL ((1, 2));
0785 #    if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0786 namespace std { using ::libintl_asprintf; }
0787 #    endif
0788 #   endif
0789 #  endif
0790 #  if !((defined vasprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vasprintf) /* don't override gnulib */
0791 #   if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0792 extern int libintl_vasprintf (char **, const char *, va_list)
0793        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0794        _INTL_ARG_NONNULL ((1, 2));
0795 #    ifndef __cplusplus
0796 static
0797 #    endif
0798 inline
0799 _INTL_FORCE_INLINE
0800 _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _INTL_ARG_NONNULL ((1, 2))
0801 int vasprintf (char **__result, const char *__format, va_list __args)
0802 {
0803   return libintl_vasprintf (__result, __format, __args);
0804 }
0805 #   elif !defined _INTL_NO_DEFINE_MACRO_VASPRINTF
0806 #    if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0807 #     undef vasprintf
0808 #     define vasprintf libintl_vasprintf
0809 #    endif
0810 extern int vasprintf (char **, const char *, va_list)
0811        _INTL_ASM (libintl_vasprintf)
0812        _INTL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
0813        _INTL_ARG_NONNULL ((1, 2));
0814 #    if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0815 namespace std { using ::libintl_vasprintf; }
0816 #    endif
0817 #   endif
0818 #  endif
0819 
0820 # endif
0821 
0822 # if 1
0823 
0824 #  if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0825 extern int libintl_vfwprintf (FILE *, const wchar_t *, va_list)
0826        _INTL_ARG_NONNULL ((1, 2));
0827 #   ifndef __cplusplus
0828 static
0829 #   endif
0830 inline
0831 _INTL_FORCE_INLINE
0832 _INTL_ARG_NONNULL ((1, 2))
0833 int fwprintf (FILE *__stream, const wchar_t *__format, ...)
0834 {
0835   va_list __args;
0836   int __ret;
0837   va_start (__args, __format);
0838   __ret = libintl_vfwprintf (__stream, __format, __args);
0839   va_end (__args);
0840   return __ret;
0841 }
0842 #  elif !defined _INTL_NO_DEFINE_MACRO_FWPRINTF
0843 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0844 #    undef fwprintf
0845 #    define fwprintf libintl_fwprintf
0846 #   endif
0847 extern int fwprintf (FILE *, const wchar_t *, ...)
0848        _INTL_ASM (libintl_fwprintf)
0849        _INTL_ARG_NONNULL ((1, 2));
0850 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0851 namespace std { using ::libintl_fwprintf; }
0852 #   endif
0853 #  endif
0854 #  if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0855 extern int libintl_vfwprintf (FILE *, const wchar_t *, va_list)
0856        _INTL_ARG_NONNULL ((1, 2));
0857 #   ifndef __cplusplus
0858 static
0859 #   endif
0860 inline
0861 _INTL_FORCE_INLINE
0862 _INTL_ARG_NONNULL ((1, 2))
0863 int vfwprintf (FILE *__stream, const wchar_t *__format, va_list __args)
0864 {
0865   return libintl_vfwprintf (__stream, __format, __args);
0866 }
0867 #  elif !defined _INTL_NO_DEFINE_MACRO_VFWPRINTF
0868 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0869 #    undef vfwprintf
0870 #    define vfwprintf libintl_vfwprintf
0871 #   endif
0872 extern int vfwprintf (FILE *, const wchar_t *, va_list)
0873        _INTL_ASM (libintl_vfwprintf)
0874        _INTL_ARG_NONNULL ((1, 2));
0875 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0876 namespace std { using ::libintl_vfwprintf; }
0877 #   endif
0878 #  endif
0879 
0880 #  if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0881 extern int libintl_vwprintf (const wchar_t *, va_list)
0882        _INTL_ARG_NONNULL ((1));
0883 #   ifndef __cplusplus
0884 static
0885 #   endif
0886 inline
0887 _INTL_FORCE_INLINE
0888 _INTL_ARG_NONNULL ((1))
0889 int wprintf (const wchar_t *__format, ...)
0890 {
0891   va_list __args;
0892   int __ret;
0893   va_start (__args, __format);
0894   __ret = libintl_vwprintf (__format, __args);
0895   va_end (__args);
0896   return __ret;
0897 }
0898 #  elif !defined _INTL_NO_DEFINE_MACRO_WPRINTF
0899 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0900 #    undef wprintf
0901 #    define wprintf libintl_wprintf
0902 #   endif
0903 extern int wprintf (const wchar_t *, ...)
0904        _INTL_ASM (libintl_wprintf)
0905        _INTL_ARG_NONNULL ((1));
0906 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0907 namespace std { using ::libintl_wprintf; }
0908 #   endif
0909 #  endif
0910 #  if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0911 extern int libintl_vwprintf (const wchar_t *, va_list)
0912        _INTL_ARG_NONNULL ((1));
0913 #   ifndef __cplusplus
0914 static
0915 #   endif
0916 inline
0917 _INTL_FORCE_INLINE
0918 _INTL_ARG_NONNULL ((1))
0919 int vwprintf (const wchar_t *__format, va_list __args)
0920 {
0921   return libintl_vwprintf (__format, __args);
0922 }
0923 #  elif !defined _INTL_NO_DEFINE_MACRO_VWPRINTF
0924 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0925 #    undef vwprintf
0926 #    define vwprintf libintl_vwprintf
0927 #   endif
0928 extern int vwprintf (const wchar_t *, va_list)
0929        _INTL_ASM (libintl_vwprintf)
0930        _INTL_ARG_NONNULL ((1));
0931 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0932 namespace std { using ::libintl_vwprintf; }
0933 #   endif
0934 #  endif
0935 
0936 #  if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0937 extern int libintl_vswprintf (wchar_t *, size_t, const wchar_t *, va_list)
0938        _INTL_ARG_NONNULL ((1, 3));
0939 #   ifndef __cplusplus
0940 static
0941 #   endif
0942 inline
0943 _INTL_FORCE_INLINE
0944 _INTL_ARG_NONNULL ((1, 3))
0945 int swprintf (wchar_t *__result, size_t __maxlen, const wchar_t * __format, ...)
0946 {
0947   va_list __args;
0948   int __ret;
0949   va_start (__args, __format);
0950   __ret = libintl_vswprintf (__result, __maxlen, __format, __args);
0951   va_end (__args);
0952   return __ret;
0953 }
0954 #  elif !defined _INTL_NO_DEFINE_MACRO_SWPRINTF
0955 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0956 #    undef swprintf
0957 #    define swprintf libintl_swprintf
0958 #   endif
0959 extern int swprintf (wchar_t *, size_t, const wchar_t *, ...)
0960        _INTL_ASM (libintl_swprintf)
0961        _INTL_ARG_NONNULL ((1, 3));
0962 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0963 namespace std { using ::libintl_swprintf; }
0964 #   endif
0965 #  endif
0966 #  if defined _INTL_REDIRECT_INLINE && !defined __MINGW32__
0967 extern int libintl_vswprintf (wchar_t *, size_t, const wchar_t *, va_list)
0968        _INTL_ARG_NONNULL ((1, 3));
0969 #   ifndef __cplusplus
0970 static
0971 #   endif
0972 inline
0973 _INTL_FORCE_INLINE
0974 _INTL_ARG_NONNULL ((1, 3))
0975 int vswprintf (wchar_t *__result, size_t __maxlen, const wchar_t *__format, va_list __args)
0976 {
0977   return libintl_vswprintf (__result, __maxlen, __format, __args);
0978 }
0979 #  elif !defined _INTL_NO_DEFINE_MACRO_VSWPRINTF
0980 #   if defined _INTL_REDIRECT_MACROS || defined __MINGW32__
0981 #    undef vswprintf
0982 #    define vswprintf libintl_vswprintf
0983 #   endif
0984 extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list)
0985        _INTL_ASM (libintl_vswprintf)
0986        _INTL_ARG_NONNULL ((1, 3));
0987 #   if (defined _INTL_REDIRECT_MACROS || defined __MINGW32__) && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
0988 namespace std { using ::libintl_vswprintf; }
0989 #   endif
0990 #  endif
0991 
0992 # endif
0993 
0994 #endif
0995 
0996 
0997 /* Support for retrieving the name of a locale_t object.  */
0998 #if 0
0999 
1000 # ifndef GNULIB_defined_newlocale /* don't override gnulib */
1001 #  ifdef _INTL_REDIRECT_INLINE
1002 extern locale_t libintl_newlocale (int, const char *, locale_t);
1003 #   ifndef __cplusplus
1004 static
1005 #   endif
1006 inline
1007 _INTL_FORCE_INLINE
1008 locale_t newlocale (int __category_mask, const char *__name, locale_t __base)
1009 {
1010   return libintl_newlocale (__category_mask, __name, __base);
1011 }
1012 #  elif !defined _INTL_NO_DEFINE_MACRO_NEWLOCALE
1013 #   ifdef _INTL_REDIRECT_MACROS
1014 #    undef newlocale
1015 #    define newlocale libintl_newlocale
1016 #   endif
1017 extern locale_t newlocale (int, const char *, locale_t)
1018        _INTL_ASM (libintl_newlocale);
1019 #   if defined _INTL_REDIRECT_MACROS && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
1020 namespace std { using ::libintl_newlocale; }
1021 #   endif
1022 #  endif
1023 # endif
1024 
1025 # ifndef GNULIB_defined_duplocale /* don't override gnulib */
1026 #  ifdef _INTL_REDIRECT_INLINE
1027 extern locale_t libintl_duplocale (locale_t);
1028 #   ifndef __cplusplus
1029 static
1030 #   endif
1031 inline
1032 _INTL_FORCE_INLINE
1033 locale_t duplocale (locale_t __locale)
1034 {
1035   return libintl_duplocale (__locale);
1036 }
1037 #  elif !defined _INTL_NO_DEFINE_MACRO_DUPLOCALE
1038 #   ifdef _INTL_REDIRECT_MACROS
1039 #    undef duplocale
1040 #    define duplocale libintl_duplocale
1041 #   endif
1042 extern locale_t duplocale (locale_t)
1043        _INTL_ASM (libintl_duplocale);
1044 #   if defined _INTL_REDIRECT_MACROS && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
1045 namespace std { using ::libintl_duplocale; }
1046 #   endif
1047 #  endif
1048 # endif
1049 
1050 # ifndef GNULIB_defined_freelocale /* don't override gnulib */
1051 #  ifdef _INTL_REDIRECT_INLINE
1052 extern void libintl_freelocale (locale_t);
1053 #   ifndef __cplusplus
1054 static
1055 #   endif
1056 inline
1057 _INTL_FORCE_INLINE
1058 void freelocale (locale_t __locale)
1059 {
1060   libintl_freelocale (__locale);
1061 }
1062 #  elif !defined _INTL_NO_DEFINE_MACRO_FREELOCALE
1063 #   ifdef _INTL_REDIRECT_MACROS
1064 #    undef freelocale
1065 #    define freelocale libintl_freelocale
1066 #   endif
1067 extern void freelocale (locale_t)
1068        _INTL_ASM (libintl_freelocale);
1069 #   if defined _INTL_REDIRECT_MACROS && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
1070 namespace std { using ::libintl_freelocale; }
1071 #   endif
1072 #  endif
1073 # endif
1074 
1075 #endif
1076 
1077 
1078 /* Support for the locale chosen by the user.  */
1079 #if (defined __APPLE__ && defined __MACH__) || defined _WIN32 || defined __CYGWIN__
1080 
1081 # ifndef GNULIB_defined_setlocale /* don't override gnulib */
1082 #  ifdef _INTL_REDIRECT_INLINE
1083 extern char *libintl_setlocale (int, const char *);
1084 #   ifndef __cplusplus
1085 static
1086 #   endif
1087 inline
1088 _INTL_FORCE_INLINE
1089 char *setlocale (int __category, const char *__locale)
1090 {
1091   return libintl_setlocale (__category, __locale);
1092 }
1093 #  elif !defined _INTL_NO_DEFINE_MACRO_SETLOCALE
1094 #   ifdef _INTL_REDIRECT_MACROS
1095 #    undef setlocale
1096 #    define setlocale libintl_setlocale
1097 #   endif
1098 extern char *setlocale (int, const char *)
1099        _INTL_ASM (libintl_setlocale);
1100 #   if defined _INTL_REDIRECT_MACROS && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
1101 namespace std { using ::libintl_setlocale; }
1102 #   endif
1103 #  endif
1104 # endif
1105 
1106 # if 1
1107 
1108 /* Declare newlocale() only if the system headers define the 'locale_t' type. */
1109 #  if !(defined __CYGWIN__ && !defined LC_ALL_MASK)
1110 #   ifdef _INTL_REDIRECT_INLINE
1111 extern locale_t libintl_newlocale (int, const char *, locale_t);
1112 #    ifndef __cplusplus
1113 static
1114 #    endif
1115 inline
1116 _INTL_FORCE_INLINE
1117 locale_t newlocale (int __category_mask, const char *__name, locale_t __base)
1118 {
1119   return libintl_newlocale (__category_mask, __name, __base);
1120 }
1121 #   elif !defined _INTL_NO_DEFINE_MACRO_NEWLOCALE
1122 #    ifdef _INTL_REDIRECT_MACROS
1123 #     undef newlocale
1124 #     define newlocale libintl_newlocale
1125 #    endif
1126 extern locale_t newlocale (int, const char *, locale_t)
1127        _INTL_ASM (libintl_newlocale);
1128 #    if defined _INTL_REDIRECT_MACROS && defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
1129 namespace std { using ::libintl_newlocale; }
1130 #    endif
1131 #   endif
1132 #  endif
1133 
1134 # endif
1135 
1136 #endif
1137 
1138 
1139 /* Support for relocatable packages.  */
1140 
1141 /* Sets the original and the current installation prefix of the package.
1142    Relocation simply replaces a pathname starting with the original prefix
1143    by the corresponding pathname with the current prefix instead.  Both
1144    prefixes should be directory names without trailing slash (i.e. use ""
1145    instead of "/").  */
1146 #define libintl_set_relocation_prefix libintl_set_relocation_prefix
1147 extern void
1148        libintl_set_relocation_prefix (const char *orig_prefix,
1149                                       const char *curr_prefix);
1150 
1151 
1152 #ifdef __cplusplus
1153 }
1154 #endif
1155 
1156 #endif /* libintl.h */