Home | History | Annotate | Download | only in darwin-lib
      1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
      2 /* A GNU-like <stdio.h>.
      3 
      4    Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc.
      5 
      6    This program is free software; you can redistribute it and/or modify
      7    it under the terms of the GNU General Public License as published by
      8    the Free Software Foundation; either version 3, or (at your option)
      9    any later version.
     10 
     11    This program is distributed in the hope that it will be useful,
     12    but WITHOUT ANY WARRANTY; without even the implied warranty of
     13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14    GNU General Public License for more details.
     15 
     16    You should have received a copy of the GNU General Public License
     17    along with this program; if not, see <http://www.gnu.org/licenses/>.  */
     18 
     19 #if __GNUC__ >= 3
     20 #pragma GCC system_header
     21 #endif
     22 
     23 
     24 #if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H
     25 /* Special invocation convention:
     26    - Inside glibc header files.
     27    - On OSF/1 5.1 we have a sequence of nested includes
     28      <stdio.h> -> <getopt.h> -> <ctype.h> -> <sys/localedef.h> ->
     29      <sys/lc_core.h> -> <nl_types.h> -> <mesg.h> -> <stdio.h>.
     30      In this situation, the functions are not yet declared, therefore we cannot
     31      provide the C++ aliases.  */
     32 
     33 #include_next <stdio.h>
     34 
     35 #else
     36 /* Normal invocation convention.  */
     37 
     38 #ifndef _GL_STDIO_H
     39 
     40 #define _GL_ALREADY_INCLUDING_STDIO_H
     41 
     42 /* The include_next requires a split double-inclusion guard.  */
     43 #include_next <stdio.h>
     44 
     45 #undef _GL_ALREADY_INCLUDING_STDIO_H
     46 
     47 #ifndef _GL_STDIO_H
     48 #define _GL_STDIO_H
     49 
     50 _GL_INLINE_HEADER_BEGIN
     51 #ifndef _GL_STDIO_INLINE
     52 # define _GL_STDIO_INLINE _GL_INLINE
     53 #endif
     54 
     55 /* Get va_list.  Needed on many systems, including glibc 2.8.  */
     56 #include <stdarg.h>
     57 
     58 #include <stddef.h>
     59 
     60 /* Get off_t and ssize_t.  Needed on many systems, including glibc 2.8
     61    and eglibc 2.11.2.
     62    May also define off_t to a 64-bit type on native Windows.  */
     63 #include <sys/types.h>
     64 
     65 /* The __attribute__ feature is available in gcc versions 2.5 and later.
     66    The __-protected variants of the attributes 'format' and 'printf' are
     67    accepted by gcc versions 2.6.4 (effectively 2.7) and later.
     68    We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because
     69    gnulib and libintl do '#define printf __printf__' when they override
     70    the 'printf' function.  */
     71 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
     72 # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
     73 #else
     74 # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
     75 #endif
     76 
     77 /* _GL_ATTRIBUTE_FORMAT_PRINTF
     78    indicates to GCC that the function takes a format string and arguments,
     79    where the format string directives are the ones standardized by ISO C99
     80    and POSIX.  */
     81 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
     82 # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
     83    _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument))
     84 #else
     85 # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
     86    _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
     87 #endif
     88 
     89 /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF,
     90    except that it indicates to GCC that the supported format string directives
     91    are the ones of the system printf(), rather than the ones standardized by
     92    ISO C99 and POSIX.  */
     93 #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
     94   _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
     95 
     96 /* _GL_ATTRIBUTE_FORMAT_SCANF
     97    indicates to GCC that the function takes a format string and arguments,
     98    where the format string directives are the ones standardized by ISO C99
     99    and POSIX.  */
    100 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
    101 # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
    102    _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument))
    103 #else
    104 # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
    105    _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
    106 #endif
    107 
    108 /* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF,
    109    except that it indicates to GCC that the supported format string directives
    110    are the ones of the system scanf(), rather than the ones standardized by
    111    ISO C99 and POSIX.  */
    112 #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \
    113   _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
    114 
    115 /* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>.  */
    116 /* But in any case avoid namespace pollution on glibc systems.  */
    117 #if (0 || defined GNULIB_POSIXCHECK) && defined __sun \
    118     && ! defined __GLIBC__
    119 # include <unistd.h>
    120 #endif
    121 
    122 
    123 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
    124 #ifndef _GL_CXXDEFS_H
    125 #define _GL_CXXDEFS_H
    126 
    127 /* The three most frequent use cases of these macros are:
    128 
    129    * For providing a substitute for a function that is missing on some
    130      platforms, but is declared and works fine on the platforms on which
    131      it exists:
    132 
    133        #if @GNULIB_FOO@
    134        # if !@HAVE_FOO@
    135        _GL_FUNCDECL_SYS (foo, ...);
    136        # endif
    137        _GL_CXXALIAS_SYS (foo, ...);
    138        _GL_CXXALIASWARN (foo);
    139        #elif defined GNULIB_POSIXCHECK
    140        ...
    141        #endif
    142 
    143    * For providing a replacement for a function that exists on all platforms,
    144      but is broken/insufficient and needs to be replaced on some platforms:
    145 
    146        #if @GNULIB_FOO@
    147        # if @REPLACE_FOO@
    148        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    149        #   undef foo
    150        #   define foo rpl_foo
    151        #  endif
    152        _GL_FUNCDECL_RPL (foo, ...);
    153        _GL_CXXALIAS_RPL (foo, ...);
    154        # else
    155        _GL_CXXALIAS_SYS (foo, ...);
    156        # endif
    157        _GL_CXXALIASWARN (foo);
    158        #elif defined GNULIB_POSIXCHECK
    159        ...
    160        #endif
    161 
    162    * For providing a replacement for a function that exists on some platforms
    163      but is broken/insufficient and needs to be replaced on some of them and
    164      is additionally either missing or undeclared on some other platforms:
    165 
    166        #if @GNULIB_FOO@
    167        # if @REPLACE_FOO@
    168        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    169        #   undef foo
    170        #   define foo rpl_foo
    171        #  endif
    172        _GL_FUNCDECL_RPL (foo, ...);
    173        _GL_CXXALIAS_RPL (foo, ...);
    174        # else
    175        #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
    176        _GL_FUNCDECL_SYS (foo, ...);
    177        #  endif
    178        _GL_CXXALIAS_SYS (foo, ...);
    179        # endif
    180        _GL_CXXALIASWARN (foo);
    181        #elif defined GNULIB_POSIXCHECK
    182        ...
    183        #endif
    184 */
    185 
    186 /* _GL_EXTERN_C declaration;
    187    performs the declaration with C linkage.  */
    188 #if defined __cplusplus
    189 # define _GL_EXTERN_C extern "C"
    190 #else
    191 # define _GL_EXTERN_C extern
    192 #endif
    193 
    194 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
    195    declares a replacement function, named rpl_func, with the given prototype,
    196    consisting of return type, parameters, and attributes.
    197    Example:
    198      _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
    199                                   _GL_ARG_NONNULL ((1)));
    200  */
    201 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
    202   _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
    203 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
    204   _GL_EXTERN_C rettype rpl_func parameters_and_attributes
    205 
    206 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
    207    declares the system function, named func, with the given prototype,
    208    consisting of return type, parameters, and attributes.
    209    Example:
    210      _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
    211                                   _GL_ARG_NONNULL ((1)));
    212  */
    213 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
    214   _GL_EXTERN_C rettype func parameters_and_attributes
    215 
    216 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
    217    declares a C++ alias called GNULIB_NAMESPACE::func
    218    that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
    219    Example:
    220      _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
    221  */
    222 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
    223   _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
    224 #if defined __cplusplus && defined GNULIB_NAMESPACE
    225 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
    226     namespace GNULIB_NAMESPACE                                \
    227     {                                                         \
    228       rettype (*const func) parameters = ::rpl_func;          \
    229     }                                                         \
    230     _GL_EXTERN_C int _gl_cxxalias_dummy
    231 #else
    232 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
    233     _GL_EXTERN_C int _gl_cxxalias_dummy
    234 #endif
    235 
    236 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
    237    is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
    238    except that the C function rpl_func may have a slightly different
    239    declaration.  A cast is used to silence the "invalid conversion" error
    240    that would otherwise occur.  */
    241 #if defined __cplusplus && defined GNULIB_NAMESPACE
    242 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
    243     namespace GNULIB_NAMESPACE                                     \
    244     {                                                              \
    245       rettype (*const func) parameters =                           \
    246         reinterpret_cast<rettype(*)parameters>(::rpl_func);        \
    247     }                                                              \
    248     _GL_EXTERN_C int _gl_cxxalias_dummy
    249 #else
    250 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
    251     _GL_EXTERN_C int _gl_cxxalias_dummy
    252 #endif
    253 
    254 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
    255    declares a C++ alias called GNULIB_NAMESPACE::func
    256    that redirects to the system provided function func, if GNULIB_NAMESPACE
    257    is defined.
    258    Example:
    259      _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
    260  */
    261 #if defined __cplusplus && defined GNULIB_NAMESPACE
    262   /* If we were to write
    263        rettype (*const func) parameters = ::func;
    264      like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
    265      better (remove an indirection through a 'static' pointer variable),
    266      but then the _GL_CXXALIASWARN macro below would cause a warning not only
    267      for uses of ::func but also for uses of GNULIB_NAMESPACE::func.  */
    268 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
    269     namespace GNULIB_NAMESPACE                     \
    270     {                                              \
    271       static rettype (*func) parameters = ::func;  \
    272     }                                              \
    273     _GL_EXTERN_C int _gl_cxxalias_dummy
    274 #else
    275 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
    276     _GL_EXTERN_C int _gl_cxxalias_dummy
    277 #endif
    278 
    279 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
    280    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
    281    except that the C function func may have a slightly different declaration.
    282    A cast is used to silence the "invalid conversion" error that would
    283    otherwise occur.  */
    284 #if defined __cplusplus && defined GNULIB_NAMESPACE
    285 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
    286     namespace GNULIB_NAMESPACE                          \
    287     {                                                   \
    288       static rettype (*func) parameters =               \
    289         reinterpret_cast<rettype(*)parameters>(::func); \
    290     }                                                   \
    291     _GL_EXTERN_C int _gl_cxxalias_dummy
    292 #else
    293 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
    294     _GL_EXTERN_C int _gl_cxxalias_dummy
    295 #endif
    296 
    297 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
    298    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
    299    except that the C function is picked among a set of overloaded functions,
    300    namely the one with rettype2 and parameters2.  Two consecutive casts
    301    are used to silence the "cannot find a match" and "invalid conversion"
    302    errors that would otherwise occur.  */
    303 #if defined __cplusplus && defined GNULIB_NAMESPACE
    304   /* The outer cast must be a reinterpret_cast.
    305      The inner cast: When the function is defined as a set of overloaded
    306      functions, it works as a static_cast<>, choosing the designated variant.
    307      When the function is defined as a single variant, it works as a
    308      reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
    309 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
    310     namespace GNULIB_NAMESPACE                                                \
    311     {                                                                         \
    312       static rettype (*func) parameters =                                     \
    313         reinterpret_cast<rettype(*)parameters>(                               \
    314           (rettype2(*)parameters2)(::func));                                  \
    315     }                                                                         \
    316     _GL_EXTERN_C int _gl_cxxalias_dummy
    317 #else
    318 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
    319     _GL_EXTERN_C int _gl_cxxalias_dummy
    320 #endif
    321 
    322 /* _GL_CXXALIASWARN (func);
    323    causes a warning to be emitted when ::func is used but not when
    324    GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
    325    variants.  */
    326 #if defined __cplusplus && defined GNULIB_NAMESPACE
    327 # define _GL_CXXALIASWARN(func) \
    328    _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
    329 # define _GL_CXXALIASWARN_1(func,namespace) \
    330    _GL_CXXALIASWARN_2 (func, namespace)
    331 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    332    we enable the warning only when not optimizing.  */
    333 # if !__OPTIMIZE__
    334 #  define _GL_CXXALIASWARN_2(func,namespace) \
    335     _GL_WARN_ON_USE (func, \
    336                      "The symbol ::" #func " refers to the system function. " \
    337                      "Use " #namespace "::" #func " instead.")
    338 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    339 #  define _GL_CXXALIASWARN_2(func,namespace) \
    340      extern __typeof__ (func) func
    341 # else
    342 #  define _GL_CXXALIASWARN_2(func,namespace) \
    343      _GL_EXTERN_C int _gl_cxxalias_dummy
    344 # endif
    345 #else
    346 # define _GL_CXXALIASWARN(func) \
    347     _GL_EXTERN_C int _gl_cxxalias_dummy
    348 #endif
    349 
    350 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
    351    causes a warning to be emitted when the given overloaded variant of ::func
    352    is used but not when GNULIB_NAMESPACE::func is used.  */
    353 #if defined __cplusplus && defined GNULIB_NAMESPACE
    354 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
    355    _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
    356                         GNULIB_NAMESPACE)
    357 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
    358    _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
    359 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    360    we enable the warning only when not optimizing.  */
    361 # if !__OPTIMIZE__
    362 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    363     _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
    364                          "The symbol ::" #func " refers to the system function. " \
    365                          "Use " #namespace "::" #func " instead.")
    366 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    367 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    368      extern __typeof__ (func) func
    369 # else
    370 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    371      _GL_EXTERN_C int _gl_cxxalias_dummy
    372 # endif
    373 #else
    374 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
    375     _GL_EXTERN_C int _gl_cxxalias_dummy
    376 #endif
    377 
    378 #endif /* _GL_CXXDEFS_H */
    379 
    380 /* The definition of _GL_ARG_NONNULL is copied here.  */
    381 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
    382    that the values passed as arguments n, ..., m must be non-NULL pointers.
    383    n = 1 stands for the first argument, n = 2 for the second argument etc.  */
    384 #ifndef _GL_ARG_NONNULL
    385 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
    386 #  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
    387 # else
    388 #  define _GL_ARG_NONNULL(params)
    389 # endif
    390 #endif
    391 
    392 /* The definition of _GL_WARN_ON_USE is copied here.  */
    393 #ifndef _GL_WARN_ON_USE
    394 
    395 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
    396 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
    397 #  define _GL_WARN_ON_USE(function, message) \
    398 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
    399 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    400 /* Verify the existence of the function.  */
    401 #  define _GL_WARN_ON_USE(function, message) \
    402 extern __typeof__ (function) function
    403 # else /* Unsupported.  */
    404 #  define _GL_WARN_ON_USE(function, message) \
    405 _GL_WARN_EXTERN_C int _gl_warn_on_use
    406 # endif
    407 #endif
    408 
    409 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
    410    is like _GL_WARN_ON_USE (function, "string"), except that the function is
    411    declared with the given prototype, consisting of return type, parameters,
    412    and attributes.
    413    This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
    414    not work in this case.  */
    415 #ifndef _GL_WARN_ON_USE_CXX
    416 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
    417 #  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
    418 extern rettype function parameters_and_attributes \
    419      __attribute__ ((__warning__ (msg)))
    420 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    421 /* Verify the existence of the function.  */
    422 #  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
    423 extern rettype function parameters_and_attributes
    424 # else /* Unsupported.  */
    425 #  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
    426 _GL_WARN_EXTERN_C int _gl_warn_on_use
    427 # endif
    428 #endif
    429 
    430 /* _GL_WARN_EXTERN_C declaration;
    431    performs the declaration with C linkage.  */
    432 #ifndef _GL_WARN_EXTERN_C
    433 # if defined __cplusplus
    434 #  define _GL_WARN_EXTERN_C extern "C"
    435 # else
    436 #  define _GL_WARN_EXTERN_C extern
    437 # endif
    438 #endif
    439 
    440 /* Macros for stringification.  */
    441 #define _GL_STDIO_STRINGIZE(token) #token
    442 #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token)
    443 
    444 
    445 #if 0
    446 # if 0
    447 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    448 #   define dprintf rpl_dprintf
    449 #  endif
    450 _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...)
    451                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
    452                                 _GL_ARG_NONNULL ((2)));
    453 _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...));
    454 # else
    455 #  if !1
    456 _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...)
    457                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
    458                                 _GL_ARG_NONNULL ((2)));
    459 #  endif
    460 _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...));
    461 # endif
    462 _GL_CXXALIASWARN (dprintf);
    463 #elif defined GNULIB_POSIXCHECK
    464 # undef dprintf
    465 # if HAVE_RAW_DECL_DPRINTF
    466 _GL_WARN_ON_USE (dprintf, "dprintf is unportable - "
    467                  "use gnulib module dprintf for portability");
    468 # endif
    469 #endif
    470 
    471 #if 0
    472 /* Close STREAM and its underlying file descriptor.  */
    473 # if 0
    474 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    475 #   define fclose rpl_fclose
    476 #  endif
    477 _GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
    478 _GL_CXXALIAS_RPL (fclose, int, (FILE *stream));
    479 # else
    480 _GL_CXXALIAS_SYS (fclose, int, (FILE *stream));
    481 # endif
    482 _GL_CXXALIASWARN (fclose);
    483 #elif defined GNULIB_POSIXCHECK
    484 # undef fclose
    485 /* Assume fclose is always declared.  */
    486 _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - "
    487                  "use gnulib module fclose for portable POSIX compliance");
    488 #endif
    489 
    490 #if 0
    491 # if 0
    492 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    493 #   undef fdopen
    494 #   define fdopen rpl_fdopen
    495 #  endif
    496 _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode)
    497                                   _GL_ARG_NONNULL ((2)));
    498 _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode));
    499 # else
    500 _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
    501 # endif
    502 _GL_CXXALIASWARN (fdopen);
    503 #elif defined GNULIB_POSIXCHECK
    504 # undef fdopen
    505 /* Assume fdopen is always declared.  */
    506 _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - "
    507                  "use gnulib module fdopen for portability");
    508 #endif
    509 
    510 #if 0
    511 /* Flush all pending data on STREAM according to POSIX rules.  Both
    512    output and seekable input streams are supported.
    513    Note! LOSS OF DATA can occur if fflush is applied on an input stream
    514    that is _not_seekable_ or on an update stream that is _not_seekable_
    515    and in which the most recent operation was input.  Seekability can
    516    be tested with lseek(fileno(fp),0,SEEK_CUR).  */
    517 # if 0
    518 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    519 #   define fflush rpl_fflush
    520 #  endif
    521 _GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream));
    522 _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream));
    523 # else
    524 _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream));
    525 # endif
    526 _GL_CXXALIASWARN (fflush);
    527 #elif defined GNULIB_POSIXCHECK
    528 # undef fflush
    529 /* Assume fflush is always declared.  */
    530 _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
    531                  "use gnulib module fflush for portable POSIX compliance");
    532 #endif
    533 
    534 #if 1
    535 # if 0 && 0
    536 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    537 #   undef fgetc
    538 #   define fgetc rpl_fgetc
    539 #  endif
    540 _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
    541 _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream));
    542 # else
    543 _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream));
    544 # endif
    545 _GL_CXXALIASWARN (fgetc);
    546 #endif
    547 
    548 #if 1
    549 # if 0 && 0
    550 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    551 #   undef fgets
    552 #   define fgets rpl_fgets
    553 #  endif
    554 _GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream)
    555                                  _GL_ARG_NONNULL ((1, 3)));
    556 _GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream));
    557 # else
    558 _GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream));
    559 # endif
    560 _GL_CXXALIASWARN (fgets);
    561 #endif
    562 
    563 #if 1
    564 # if 0
    565 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    566 #   undef fopen
    567 #   define fopen rpl_fopen
    568 #  endif
    569 _GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode)
    570                                  _GL_ARG_NONNULL ((1, 2)));
    571 _GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode));
    572 # else
    573 _GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode));
    574 # endif
    575 _GL_CXXALIASWARN (fopen);
    576 #elif defined GNULIB_POSIXCHECK
    577 # undef fopen
    578 /* Assume fopen is always declared.  */
    579 _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - "
    580                  "use gnulib module fopen for portability");
    581 #endif
    582 
    583 #if 1 || 1
    584 # if (1 && 1) \
    585      || (1 && 0 && (0 || 0))
    586 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    587 #   define fprintf rpl_fprintf
    588 #  endif
    589 #  define GNULIB_overrides_fprintf 1
    590 #  if 1 || 1
    591 _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
    592                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
    593                                 _GL_ARG_NONNULL ((1, 2)));
    594 #  else
    595 _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
    596                                 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3)
    597                                 _GL_ARG_NONNULL ((1, 2)));
    598 #  endif
    599 _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...));
    600 # else
    601 _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...));
    602 # endif
    603 _GL_CXXALIASWARN (fprintf);
    604 #endif
    605 #if !1 && defined GNULIB_POSIXCHECK
    606 # if !GNULIB_overrides_fprintf
    607 #  undef fprintf
    608 # endif
    609 /* Assume fprintf is always declared.  */
    610 _GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - "
    611                  "use gnulib module fprintf-posix for portable "
    612                  "POSIX compliance");
    613 #endif
    614 
    615 #if 0
    616 /* Discard all pending buffered I/O data on STREAM.
    617    STREAM must not be wide-character oriented.
    618    When discarding pending output, the file position is set back to where it
    619    was before the write calls.  When discarding pending input, the file
    620    position is advanced to match the end of the previously read input.
    621    Return 0 if successful.  Upon error, return -1 and set errno.  */
    622 # if 0
    623 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    624 #   define fpurge rpl_fpurge
    625 #  endif
    626 _GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1)));
    627 _GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream));
    628 # else
    629 #  if !1
    630 _GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1)));
    631 #  endif
    632 _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream));
    633 # endif
    634 _GL_CXXALIASWARN (fpurge);
    635 #elif defined GNULIB_POSIXCHECK
    636 # undef fpurge
    637 # if HAVE_RAW_DECL_FPURGE
    638 _GL_WARN_ON_USE (fpurge, "fpurge is not always present - "
    639                  "use gnulib module fpurge for portability");
    640 # endif
    641 #endif
    642 
    643 #if 1
    644 # if 0 && (0 || 0)
    645 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    646 #   undef fputc
    647 #   define fputc rpl_fputc
    648 #  endif
    649 _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2)));
    650 _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream));
    651 # else
    652 _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream));
    653 # endif
    654 _GL_CXXALIASWARN (fputc);
    655 #endif
    656 
    657 #if 1
    658 # if 0 && (0 || 0)
    659 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    660 #   undef fputs
    661 #   define fputs rpl_fputs
    662 #  endif
    663 _GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream)
    664                               _GL_ARG_NONNULL ((1, 2)));
    665 _GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream));
    666 # else
    667 _GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream));
    668 # endif
    669 _GL_CXXALIASWARN (fputs);
    670 #endif
    671 
    672 #if 1
    673 # if 0 && 0
    674 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    675 #   undef fread
    676 #   define fread rpl_fread
    677 #  endif
    678 _GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)
    679                                  _GL_ARG_NONNULL ((4)));
    680 _GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
    681 # else
    682 _GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
    683 # endif
    684 _GL_CXXALIASWARN (fread);
    685 #endif
    686 
    687 #if 0
    688 # if 0
    689 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    690 #   undef freopen
    691 #   define freopen rpl_freopen
    692 #  endif
    693 _GL_FUNCDECL_RPL (freopen, FILE *,
    694                   (const char *filename, const char *mode, FILE *stream)
    695                   _GL_ARG_NONNULL ((2, 3)));
    696 _GL_CXXALIAS_RPL (freopen, FILE *,
    697                   (const char *filename, const char *mode, FILE *stream));
    698 # else
    699 _GL_CXXALIAS_SYS (freopen, FILE *,
    700                   (const char *filename, const char *mode, FILE *stream));
    701 # endif
    702 _GL_CXXALIASWARN (freopen);
    703 #elif defined GNULIB_POSIXCHECK
    704 # undef freopen
    705 /* Assume freopen is always declared.  */
    706 _GL_WARN_ON_USE (freopen,
    707                  "freopen on native Windows platforms is not POSIX compliant - "
    708                  "use gnulib module freopen for portability");
    709 #endif
    710 
    711 #if 1
    712 # if 0 && 0
    713 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    714 #   undef fscanf
    715 #   define fscanf rpl_fscanf
    716 #  endif
    717 _GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...)
    718                                _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3)
    719                                _GL_ARG_NONNULL ((1, 2)));
    720 _GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...));
    721 # else
    722 _GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...));
    723 # endif
    724 _GL_CXXALIASWARN (fscanf);
    725 #endif
    726 
    727 
    728 /* Set up the following warnings, based on which modules are in use.
    729    GNU Coding Standards discourage the use of fseek, since it imposes
    730    an arbitrary limitation on some 32-bit hosts.  Remember that the
    731    fseek module depends on the fseeko module, so we only have three
    732    cases to consider:
    733 
    734    1. The developer is not using either module.  Issue a warning under
    735    GNULIB_POSIXCHECK for both functions, to remind them that both
    736    functions have bugs on some systems.  _GL_NO_LARGE_FILES has no
    737    impact on this warning.
    738 
    739    2. The developer is using both modules.  They may be unaware of the
    740    arbitrary limitations of fseek, so issue a warning under
    741    GNULIB_POSIXCHECK.  On the other hand, they may be using both
    742    modules intentionally, so the developer can define
    743    _GL_NO_LARGE_FILES in the compilation units where the use of fseek
    744    is safe, to silence the warning.
    745 
    746    3. The developer is using the fseeko module, but not fseek.  Gnulib
    747    guarantees that fseek will still work around platform bugs in that
    748    case, but we presume that the developer is aware of the pitfalls of
    749    fseek and was trying to avoid it, so issue a warning even when
    750    GNULIB_POSIXCHECK is undefined.  Again, _GL_NO_LARGE_FILES can be
    751    defined to silence the warning in particular compilation units.
    752    In C++ compilations with GNULIB_NAMESPACE, in order to avoid that
    753    fseek gets defined as a macro, it is recommended that the developer
    754    uses the fseek module, even if he is not calling the fseek function.
    755 
    756    Most gnulib clients that perform stream operations should fall into
    757    category 3.  */
    758 
    759 #if 0
    760 # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES
    761 #  define _GL_FSEEK_WARN /* Category 2, above.  */
    762 #  undef fseek
    763 # endif
    764 # if 0
    765 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    766 #   undef fseek
    767 #   define fseek rpl_fseek
    768 #  endif
    769 _GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence)
    770                               _GL_ARG_NONNULL ((1)));
    771 _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence));
    772 # else
    773 _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence));
    774 # endif
    775 _GL_CXXALIASWARN (fseek);
    776 #endif
    777 
    778 #if 0
    779 # if !0 && !defined _GL_NO_LARGE_FILES
    780 #  define _GL_FSEEK_WARN /* Category 3, above.  */
    781 #  undef fseek
    782 # endif
    783 # if 0
    784 /* Provide an fseeko function that is aware of a preceding fflush(), and which
    785    detects pipes.  */
    786 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    787 #   undef fseeko
    788 #   define fseeko rpl_fseeko
    789 #  endif
    790 _GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)
    791                                _GL_ARG_NONNULL ((1)));
    792 _GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence));
    793 # else
    794 #  if ! 1
    795 _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)
    796                                _GL_ARG_NONNULL ((1)));
    797 #  endif
    798 _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence));
    799 # endif
    800 _GL_CXXALIASWARN (fseeko);
    801 #elif defined GNULIB_POSIXCHECK
    802 # define _GL_FSEEK_WARN /* Category 1, above.  */
    803 # undef fseek
    804 # undef fseeko
    805 # if HAVE_RAW_DECL_FSEEKO
    806 _GL_WARN_ON_USE (fseeko, "fseeko is unportable - "
    807                  "use gnulib module fseeko for portability");
    808 # endif
    809 #endif
    810 
    811 #ifdef _GL_FSEEK_WARN
    812 # undef _GL_FSEEK_WARN
    813 /* Here, either fseek is undefined (but C89 guarantees that it is
    814    declared), or it is defined as rpl_fseek (declared above).  */
    815 _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB "
    816                  "on 32-bit platforms - "
    817                  "use fseeko function for handling of large files");
    818 #endif
    819 
    820 
    821 /* ftell, ftello.  See the comments on fseek/fseeko.  */
    822 
    823 #if 0
    824 # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES
    825 #  define _GL_FTELL_WARN /* Category 2, above.  */
    826 #  undef ftell
    827 # endif
    828 # if 0
    829 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    830 #   undef ftell
    831 #   define ftell rpl_ftell
    832 #  endif
    833 _GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1)));
    834 _GL_CXXALIAS_RPL (ftell, long, (FILE *fp));
    835 # else
    836 _GL_CXXALIAS_SYS (ftell, long, (FILE *fp));
    837 # endif
    838 _GL_CXXALIASWARN (ftell);
    839 #endif
    840 
    841 #if 0
    842 # if !0 && !defined _GL_NO_LARGE_FILES
    843 #  define _GL_FTELL_WARN /* Category 3, above.  */
    844 #  undef ftell
    845 # endif
    846 # if 0
    847 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    848 #   undef ftello
    849 #   define ftello rpl_ftello
    850 #  endif
    851 _GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
    852 _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp));
    853 # else
    854 #  if ! 1
    855 _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
    856 #  endif
    857 _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp));
    858 # endif
    859 _GL_CXXALIASWARN (ftello);
    860 #elif defined GNULIB_POSIXCHECK
    861 # define _GL_FTELL_WARN /* Category 1, above.  */
    862 # undef ftell
    863 # undef ftello
    864 # if HAVE_RAW_DECL_FTELLO
    865 _GL_WARN_ON_USE (ftello, "ftello is unportable - "
    866                  "use gnulib module ftello for portability");
    867 # endif
    868 #endif
    869 
    870 #ifdef _GL_FTELL_WARN
    871 # undef _GL_FTELL_WARN
    872 /* Here, either ftell is undefined (but C89 guarantees that it is
    873    declared), or it is defined as rpl_ftell (declared above).  */
    874 _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB "
    875                  "on 32-bit platforms - "
    876                  "use ftello function for handling of large files");
    877 #endif
    878 
    879 
    880 #if 1
    881 # if 0 && (0 || 0)
    882 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    883 #   undef fwrite
    884 #   define fwrite rpl_fwrite
    885 #  endif
    886 _GL_FUNCDECL_RPL (fwrite, size_t,
    887                   (const void *ptr, size_t s, size_t n, FILE *stream)
    888                   _GL_ARG_NONNULL ((1, 4)));
    889 _GL_CXXALIAS_RPL (fwrite, size_t,
    890                   (const void *ptr, size_t s, size_t n, FILE *stream));
    891 # else
    892 _GL_CXXALIAS_SYS (fwrite, size_t,
    893                   (const void *ptr, size_t s, size_t n, FILE *stream));
    894 
    895 /* Work around glibc bug 11959
    896    <http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>,
    897    which sometimes causes an unwanted diagnostic for fwrite calls.
    898    This affects only function declaration attributes, so it's not
    899    needed for C++.  */
    900 #  if !defined __cplusplus && 0 < __USE_FORTIFY_LEVEL
    901 _GL_STDIO_INLINE size_t _GL_ARG_NONNULL ((1, 4))
    902 rpl_fwrite (const void *ptr, size_t s, size_t n, FILE *stream)
    903 {
    904   size_t r = fwrite (ptr, s, n, stream);
    905   (void) r;
    906   return r;
    907 }
    908 #   undef fwrite
    909 #   define fwrite rpl_fwrite
    910 #  endif
    911 # endif
    912 _GL_CXXALIASWARN (fwrite);
    913 #endif
    914 
    915 #if 1
    916 # if 0 && 0
    917 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    918 #   undef getc
    919 #   define getc rpl_fgetc
    920 #  endif
    921 _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
    922 _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream));
    923 # else
    924 _GL_CXXALIAS_SYS (getc, int, (FILE *stream));
    925 # endif
    926 _GL_CXXALIASWARN (getc);
    927 #endif
    928 
    929 #if 1
    930 # if 0 && 0
    931 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    932 #   undef getchar
    933 #   define getchar rpl_getchar
    934 #  endif
    935 _GL_FUNCDECL_RPL (getchar, int, (void));
    936 _GL_CXXALIAS_RPL (getchar, int, (void));
    937 # else
    938 _GL_CXXALIAS_SYS (getchar, int, (void));
    939 # endif
    940 _GL_CXXALIASWARN (getchar);
    941 #endif
    942 
    943 #if 1
    944 /* Read input, up to (and including) the next occurrence of DELIMITER, from
    945    STREAM, store it in *LINEPTR (and NUL-terminate it).
    946    *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
    947    bytes of space.  It is realloc'd as necessary.
    948    Return the number of bytes read and stored at *LINEPTR (not including the
    949    NUL terminator), or -1 on error or EOF.  */
    950 # if 0
    951 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    952 #   undef getdelim
    953 #   define getdelim rpl_getdelim
    954 #  endif
    955 _GL_FUNCDECL_RPL (getdelim, ssize_t,
    956                   (char **lineptr, size_t *linesize, int delimiter,
    957                    FILE *stream)
    958                   _GL_ARG_NONNULL ((1, 2, 4)));
    959 _GL_CXXALIAS_RPL (getdelim, ssize_t,
    960                   (char **lineptr, size_t *linesize, int delimiter,
    961                    FILE *stream));
    962 # else
    963 #  if !1
    964 _GL_FUNCDECL_SYS (getdelim, ssize_t,
    965                   (char **lineptr, size_t *linesize, int delimiter,
    966                    FILE *stream)
    967                   _GL_ARG_NONNULL ((1, 2, 4)));
    968 #  endif
    969 _GL_CXXALIAS_SYS (getdelim, ssize_t,
    970                   (char **lineptr, size_t *linesize, int delimiter,
    971                    FILE *stream));
    972 # endif
    973 _GL_CXXALIASWARN (getdelim);
    974 #elif defined GNULIB_POSIXCHECK
    975 # undef getdelim
    976 # if HAVE_RAW_DECL_GETDELIM
    977 _GL_WARN_ON_USE (getdelim, "getdelim is unportable - "
    978                  "use gnulib module getdelim for portability");
    979 # endif
    980 #endif
    981 
    982 #if 1
    983 /* Read a line, up to (and including) the next newline, from STREAM, store it
    984    in *LINEPTR (and NUL-terminate it).
    985    *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
    986    bytes of space.  It is realloc'd as necessary.
    987    Return the number of bytes read and stored at *LINEPTR (not including the
    988    NUL terminator), or -1 on error or EOF.  */
    989 # if 0
    990 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    991 #   undef getline
    992 #   define getline rpl_getline
    993 #  endif
    994 _GL_FUNCDECL_RPL (getline, ssize_t,
    995                   (char **lineptr, size_t *linesize, FILE *stream)
    996                   _GL_ARG_NONNULL ((1, 2, 3)));
    997 _GL_CXXALIAS_RPL (getline, ssize_t,
    998                   (char **lineptr, size_t *linesize, FILE *stream));
    999 # else
   1000 #  if !1
   1001 _GL_FUNCDECL_SYS (getline, ssize_t,
   1002                   (char **lineptr, size_t *linesize, FILE *stream)
   1003                   _GL_ARG_NONNULL ((1, 2, 3)));
   1004 #  endif
   1005 _GL_CXXALIAS_SYS (getline, ssize_t,
   1006                   (char **lineptr, size_t *linesize, FILE *stream));
   1007 # endif
   1008 # if 1
   1009 _GL_CXXALIASWARN (getline);
   1010 # endif
   1011 #elif defined GNULIB_POSIXCHECK
   1012 # undef getline
   1013 # if HAVE_RAW_DECL_GETLINE
   1014 _GL_WARN_ON_USE (getline, "getline is unportable - "
   1015                  "use gnulib module getline for portability");
   1016 # endif
   1017 #endif
   1018 
   1019 /* It is very rare that the developer ever has full control of stdin,
   1020    so any use of gets warrants an unconditional warning; besides, C11
   1021    removed it.  */
   1022 #undef gets
   1023 #if HAVE_RAW_DECL_GETS
   1024 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
   1025 #endif
   1026 
   1027 
   1028 #if 1 || 0
   1029 struct obstack;
   1030 /* Grow an obstack with formatted output.  Return the number of
   1031    bytes added to OBS.  No trailing nul byte is added, and the
   1032    object should be closed with obstack_finish before use.  Upon
   1033    memory allocation error, call obstack_alloc_failed_handler.  Upon
   1034    other error, return -1.  */
   1035 # if 0
   1036 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1037 #   define obstack_printf rpl_obstack_printf
   1038 #  endif
   1039 _GL_FUNCDECL_RPL (obstack_printf, int,
   1040                   (struct obstack *obs, const char *format, ...)
   1041                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
   1042                   _GL_ARG_NONNULL ((1, 2)));
   1043 _GL_CXXALIAS_RPL (obstack_printf, int,
   1044                   (struct obstack *obs, const char *format, ...));
   1045 # else
   1046 #  if !0
   1047 _GL_FUNCDECL_SYS (obstack_printf, int,
   1048                   (struct obstack *obs, const char *format, ...)
   1049                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
   1050                   _GL_ARG_NONNULL ((1, 2)));
   1051 #  endif
   1052 _GL_CXXALIAS_SYS (obstack_printf, int,
   1053                   (struct obstack *obs, const char *format, ...));
   1054 # endif
   1055 _GL_CXXALIASWARN (obstack_printf);
   1056 # if 0
   1057 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1058 #   define obstack_vprintf rpl_obstack_vprintf
   1059 #  endif
   1060 _GL_FUNCDECL_RPL (obstack_vprintf, int,
   1061                   (struct obstack *obs, const char *format, va_list args)
   1062                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
   1063                   _GL_ARG_NONNULL ((1, 2)));
   1064 _GL_CXXALIAS_RPL (obstack_vprintf, int,
   1065                   (struct obstack *obs, const char *format, va_list args));
   1066 # else
   1067 #  if !0
   1068 _GL_FUNCDECL_SYS (obstack_vprintf, int,
   1069                   (struct obstack *obs, const char *format, va_list args)
   1070                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
   1071                   _GL_ARG_NONNULL ((1, 2)));
   1072 #  endif
   1073 _GL_CXXALIAS_SYS (obstack_vprintf, int,
   1074                   (struct obstack *obs, const char *format, va_list args));
   1075 # endif
   1076 _GL_CXXALIASWARN (obstack_vprintf);
   1077 #endif
   1078 
   1079 #if 0
   1080 # if !1
   1081 _GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
   1082 # endif
   1083 _GL_CXXALIAS_SYS (pclose, int, (FILE *stream));
   1084 _GL_CXXALIASWARN (pclose);
   1085 #elif defined GNULIB_POSIXCHECK
   1086 # undef pclose
   1087 # if HAVE_RAW_DECL_PCLOSE
   1088 _GL_WARN_ON_USE (pclose, "pclose is unportable - "
   1089                  "use gnulib module pclose for more portability");
   1090 # endif
   1091 #endif
   1092 
   1093 #if 1
   1094 /* Print a message to standard error, describing the value of ERRNO,
   1095    (if STRING is not NULL and not empty) prefixed with STRING and ": ",
   1096    and terminated with a newline.  */
   1097 # if 1
   1098 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1099 #   define perror rpl_perror
   1100 #  endif
   1101 _GL_FUNCDECL_RPL (perror, void, (const char *string));
   1102 _GL_CXXALIAS_RPL (perror, void, (const char *string));
   1103 # else
   1104 _GL_CXXALIAS_SYS (perror, void, (const char *string));
   1105 # endif
   1106 _GL_CXXALIASWARN (perror);
   1107 #elif defined GNULIB_POSIXCHECK
   1108 # undef perror
   1109 /* Assume perror is always declared.  */
   1110 _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - "
   1111                  "use gnulib module perror for portability");
   1112 #endif
   1113 
   1114 #if 0
   1115 # if 0
   1116 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1117 #   undef popen
   1118 #   define popen rpl_popen
   1119 #  endif
   1120 _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode)
   1121                                  _GL_ARG_NONNULL ((1, 2)));
   1122 _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode));
   1123 # else
   1124 #  if !1
   1125 _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode)
   1126                                  _GL_ARG_NONNULL ((1, 2)));
   1127 #  endif
   1128 _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode));
   1129 # endif
   1130 _GL_CXXALIASWARN (popen);
   1131 #elif defined GNULIB_POSIXCHECK
   1132 # undef popen
   1133 # if HAVE_RAW_DECL_POPEN
   1134 _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - "
   1135                  "use gnulib module popen or pipe for more portability");
   1136 # endif
   1137 #endif
   1138 
   1139 #if 1 || 1
   1140 # if (1 && 1) \
   1141      || (1 && 0 && (0 || 0))
   1142 #  if defined __GNUC__
   1143 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1144 /* Don't break __attribute__((format(printf,M,N))).  */
   1145 #    define printf __printf__
   1146 #   endif
   1147 #   if 1 || 1
   1148 _GL_FUNCDECL_RPL_1 (__printf__, int,
   1149                     (const char *format, ...)
   1150                     __asm__ ("_"
   1151                              _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
   1152                     _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
   1153                     _GL_ARG_NONNULL ((1)));
   1154 #   else
   1155 _GL_FUNCDECL_RPL_1 (__printf__, int,
   1156                     (const char *format, ...)
   1157                     __asm__ ("_"
   1158                              _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
   1159                     _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2)
   1160                     _GL_ARG_NONNULL ((1)));
   1161 #   endif
   1162 _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...));
   1163 #  else
   1164 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1165 #    define printf rpl_printf
   1166 #   endif
   1167 _GL_FUNCDECL_RPL (printf, int,
   1168                   (const char *format, ...)
   1169                   _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
   1170                   _GL_ARG_NONNULL ((1)));
   1171 _GL_CXXALIAS_RPL (printf, int, (const char *format, ...));
   1172 #  endif
   1173 #  define GNULIB_overrides_printf 1
   1174 # else
   1175 _GL_CXXALIAS_SYS (printf, int, (const char *format, ...));
   1176 # endif
   1177 _GL_CXXALIASWARN (printf);
   1178 #endif
   1179 #if !1 && defined GNULIB_POSIXCHECK
   1180 # if !GNULIB_overrides_printf
   1181 #  undef printf
   1182 # endif
   1183 /* Assume printf is always declared.  */
   1184 _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - "
   1185                  "use gnulib module printf-posix for portable "
   1186                  "POSIX compliance");
   1187 #endif
   1188 
   1189 #if 1
   1190 # if 0 && (0 || 0)
   1191 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1192 #   undef putc
   1193 #   define putc rpl_fputc
   1194 #  endif
   1195 _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2)));
   1196 _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream));
   1197 # else
   1198 _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream));
   1199 # endif
   1200 _GL_CXXALIASWARN (putc);
   1201 #endif
   1202 
   1203 #if 1
   1204 # if 0 && (0 || 0)
   1205 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1206 #   undef putchar
   1207 #   define putchar rpl_putchar
   1208 #  endif
   1209 _GL_FUNCDECL_RPL (putchar, int, (int c));
   1210 _GL_CXXALIAS_RPL (putchar, int, (int c));
   1211 # else
   1212 _GL_CXXALIAS_SYS (putchar, int, (int c));
   1213 # endif
   1214 _GL_CXXALIASWARN (putchar);
   1215 #endif
   1216 
   1217 #if 1
   1218 # if 0 && (0 || 0)
   1219 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1220 #   undef puts
   1221 #   define puts rpl_puts
   1222 #  endif
   1223 _GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1)));
   1224 _GL_CXXALIAS_RPL (puts, int, (const char *string));
   1225 # else
   1226 _GL_CXXALIAS_SYS (puts, int, (const char *string));
   1227 # endif
   1228 _GL_CXXALIASWARN (puts);
   1229 #endif
   1230 
   1231 #if 0
   1232 # if 0
   1233 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1234 #   undef remove
   1235 #   define remove rpl_remove
   1236 #  endif
   1237 _GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1)));
   1238 _GL_CXXALIAS_RPL (remove, int, (const char *name));
   1239 # else
   1240 _GL_CXXALIAS_SYS (remove, int, (const char *name));
   1241 # endif
   1242 _GL_CXXALIASWARN (remove);
   1243 #elif defined GNULIB_POSIXCHECK
   1244 # undef remove
   1245 /* Assume remove is always declared.  */
   1246 _GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - "
   1247                  "use gnulib module remove for more portability");
   1248 #endif
   1249 
   1250 #if 0
   1251 # if 0
   1252 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1253 #   undef rename
   1254 #   define rename rpl_rename
   1255 #  endif
   1256 _GL_FUNCDECL_RPL (rename, int,
   1257                   (const char *old_filename, const char *new_filename)
   1258                   _GL_ARG_NONNULL ((1, 2)));
   1259 _GL_CXXALIAS_RPL (rename, int,
   1260                   (const char *old_filename, const char *new_filename));
   1261 # else
   1262 _GL_CXXALIAS_SYS (rename, int,
   1263                   (const char *old_filename, const char *new_filename));
   1264 # endif
   1265 _GL_CXXALIASWARN (rename);
   1266 #elif defined GNULIB_POSIXCHECK
   1267 # undef rename
   1268 /* Assume rename is always declared.  */
   1269 _GL_WARN_ON_USE (rename, "rename is buggy on some platforms - "
   1270                  "use gnulib module rename for more portability");
   1271 #endif
   1272 
   1273 #if 0
   1274 # if 0
   1275 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1276 #   undef renameat
   1277 #   define renameat rpl_renameat
   1278 #  endif
   1279 _GL_FUNCDECL_RPL (renameat, int,
   1280                   (int fd1, char const *file1, int fd2, char const *file2)
   1281                   _GL_ARG_NONNULL ((2, 4)));
   1282 _GL_CXXALIAS_RPL (renameat, int,
   1283                   (int fd1, char const *file1, int fd2, char const *file2));
   1284 # else
   1285 #  if !1
   1286 _GL_FUNCDECL_SYS (renameat, int,
   1287                   (int fd1, char const *file1, int fd2, char const *file2)
   1288                   _GL_ARG_NONNULL ((2, 4)));
   1289 #  endif
   1290 _GL_CXXALIAS_SYS (renameat, int,
   1291                   (int fd1, char const *file1, int fd2, char const *file2));
   1292 # endif
   1293 _GL_CXXALIASWARN (renameat);
   1294 #elif defined GNULIB_POSIXCHECK
   1295 # undef renameat
   1296 # if HAVE_RAW_DECL_RENAMEAT
   1297 _GL_WARN_ON_USE (renameat, "renameat is not portable - "
   1298                  "use gnulib module renameat for portability");
   1299 # endif
   1300 #endif
   1301 
   1302 #if 1
   1303 # if 0 && 0
   1304 #  if defined __GNUC__
   1305 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1306 #    undef scanf
   1307 /* Don't break __attribute__((format(scanf,M,N))).  */
   1308 #    define scanf __scanf__
   1309 #   endif
   1310 _GL_FUNCDECL_RPL_1 (__scanf__, int,
   1311                     (const char *format, ...)
   1312                     __asm__ ("_"
   1313                              _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf))
   1314                     _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
   1315                     _GL_ARG_NONNULL ((1)));
   1316 _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...));
   1317 #  else
   1318 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1319 #    undef scanf
   1320 #    define scanf rpl_scanf
   1321 #   endif
   1322 _GL_FUNCDECL_RPL (scanf, int, (const char *format, ...)
   1323                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
   1324                               _GL_ARG_NONNULL ((1)));
   1325 _GL_CXXALIAS_RPL (scanf, int, (const char *format, ...));
   1326 #  endif
   1327 # else
   1328 _GL_CXXALIAS_SYS (scanf, int, (const char *format, ...));
   1329 # endif
   1330 _GL_CXXALIASWARN (scanf);
   1331 #endif
   1332 
   1333 #if 1
   1334 # if 1
   1335 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1336 #   define snprintf rpl_snprintf
   1337 #  endif
   1338 _GL_FUNCDECL_RPL (snprintf, int,
   1339                   (char *str, size_t size, const char *format, ...)
   1340                   _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4)
   1341                   _GL_ARG_NONNULL ((3)));
   1342 _GL_CXXALIAS_RPL (snprintf, int,
   1343                   (char *str, size_t size, const char *format, ...));
   1344 # else
   1345 #  if !1
   1346 _GL_FUNCDECL_SYS (snprintf, int,
   1347                   (char *str, size_t size, const char *format, ...)
   1348                   _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4)
   1349                   _GL_ARG_NONNULL ((3)));
   1350 #  endif
   1351 _GL_CXXALIAS_SYS (snprintf, int,
   1352                   (char *str, size_t size, const char *format, ...));
   1353 # endif
   1354 _GL_CXXALIASWARN (snprintf);
   1355 #elif defined GNULIB_POSIXCHECK
   1356 # undef snprintf
   1357 # if HAVE_RAW_DECL_SNPRINTF
   1358 _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
   1359                  "use gnulib module snprintf for portability");
   1360 # endif
   1361 #endif
   1362 
   1363 /* Some people would argue that all sprintf uses should be warned about
   1364    (for example, OpenBSD issues a link warning for it),
   1365    since it can cause security holes due to buffer overruns.
   1366    However, we believe that sprintf can be used safely, and is more
   1367    efficient than snprintf in those safe cases; and as proof of our
   1368    belief, we use sprintf in several gnulib modules.  So this header
   1369    intentionally avoids adding a warning to sprintf except when
   1370    GNULIB_POSIXCHECK is defined.  */
   1371 
   1372 #if 1
   1373 # if 1
   1374 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1375 #   define sprintf rpl_sprintf
   1376 #  endif
   1377 _GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...)
   1378                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
   1379                                 _GL_ARG_NONNULL ((1, 2)));
   1380 _GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...));
   1381 # else
   1382 _GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...));
   1383 # endif
   1384 _GL_CXXALIASWARN (sprintf);
   1385 #elif defined GNULIB_POSIXCHECK
   1386 # undef sprintf
   1387 /* Assume sprintf is always declared.  */
   1388 _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - "
   1389                  "use gnulib module sprintf-posix for portable "
   1390                  "POSIX compliance");
   1391 #endif
   1392 
   1393 #if 0
   1394 # if 0
   1395 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1396 #   define tmpfile rpl_tmpfile
   1397 #  endif
   1398 _GL_FUNCDECL_RPL (tmpfile, FILE *, (void));
   1399 _GL_CXXALIAS_RPL (tmpfile, FILE *, (void));
   1400 # else
   1401 _GL_CXXALIAS_SYS (tmpfile, FILE *, (void));
   1402 # endif
   1403 _GL_CXXALIASWARN (tmpfile);
   1404 #elif defined GNULIB_POSIXCHECK
   1405 # undef tmpfile
   1406 # if HAVE_RAW_DECL_TMPFILE
   1407 _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - "
   1408                  "use gnulib module tmpfile for portability");
   1409 # endif
   1410 #endif
   1411 
   1412 #if 0
   1413 /* Write formatted output to a string dynamically allocated with malloc().
   1414    If the memory allocation succeeds, store the address of the string in
   1415    *RESULT and return the number of resulting bytes, excluding the trailing
   1416    NUL.  Upon memory allocation error, or some other error, return -1.  */
   1417 # if 0
   1418 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1419 #   define asprintf rpl_asprintf
   1420 #  endif
   1421 _GL_FUNCDECL_RPL (asprintf, int,
   1422                   (char **result, const char *format, ...)
   1423                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
   1424                   _GL_ARG_NONNULL ((1, 2)));
   1425 _GL_CXXALIAS_RPL (asprintf, int,
   1426                   (char **result, const char *format, ...));
   1427 # else
   1428 #  if !1
   1429 _GL_FUNCDECL_SYS (asprintf, int,
   1430                   (char **result, const char *format, ...)
   1431                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
   1432                   _GL_ARG_NONNULL ((1, 2)));
   1433 #  endif
   1434 _GL_CXXALIAS_SYS (asprintf, int,
   1435                   (char **result, const char *format, ...));
   1436 # endif
   1437 _GL_CXXALIASWARN (asprintf);
   1438 # if 0
   1439 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1440 #   define vasprintf rpl_vasprintf
   1441 #  endif
   1442 _GL_FUNCDECL_RPL (vasprintf, int,
   1443                   (char **result, const char *format, va_list args)
   1444                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
   1445                   _GL_ARG_NONNULL ((1, 2)));
   1446 _GL_CXXALIAS_RPL (vasprintf, int,
   1447                   (char **result, const char *format, va_list args));
   1448 # else
   1449 #  if !1
   1450 _GL_FUNCDECL_SYS (vasprintf, int,
   1451                   (char **result, const char *format, va_list args)
   1452                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
   1453                   _GL_ARG_NONNULL ((1, 2)));
   1454 #  endif
   1455 _GL_CXXALIAS_SYS (vasprintf, int,
   1456                   (char **result, const char *format, va_list args));
   1457 # endif
   1458 _GL_CXXALIASWARN (vasprintf);
   1459 #endif
   1460 
   1461 #if 0
   1462 # if 0
   1463 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1464 #   define vdprintf rpl_vdprintf
   1465 #  endif
   1466 _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args)
   1467                                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
   1468                                  _GL_ARG_NONNULL ((2)));
   1469 _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args));
   1470 # else
   1471 #  if !1
   1472 _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args)
   1473                                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
   1474                                  _GL_ARG_NONNULL ((2)));
   1475 #  endif
   1476 /* Need to cast, because on Solaris, the third parameter will likely be
   1477                                                     __va_list args.  */
   1478 _GL_CXXALIAS_SYS_CAST (vdprintf, int,
   1479                        (int fd, const char *format, va_list args));
   1480 # endif
   1481 _GL_CXXALIASWARN (vdprintf);
   1482 #elif defined GNULIB_POSIXCHECK
   1483 # undef vdprintf
   1484 # if HAVE_RAW_DECL_VDPRINTF
   1485 _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - "
   1486                  "use gnulib module vdprintf for portability");
   1487 # endif
   1488 #endif
   1489 
   1490 #if 1 || 1
   1491 # if (1 && 1) \
   1492      || (1 && 0 && (0 || 0))
   1493 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1494 #   define vfprintf rpl_vfprintf
   1495 #  endif
   1496 #  define GNULIB_overrides_vfprintf 1
   1497 #  if 1
   1498 _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
   1499                                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
   1500                                  _GL_ARG_NONNULL ((1, 2)));
   1501 #  else
   1502 _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
   1503                                  _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0)
   1504                                  _GL_ARG_NONNULL ((1, 2)));
   1505 #  endif
   1506 _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args));
   1507 # else
   1508 /* Need to cast, because on Solaris, the third parameter is
   1509                                                       __va_list args
   1510    and GCC's fixincludes did not change this to __gnuc_va_list.  */
   1511 _GL_CXXALIAS_SYS_CAST (vfprintf, int,
   1512                        (FILE *fp, const char *format, va_list args));
   1513 # endif
   1514 _GL_CXXALIASWARN (vfprintf);
   1515 #endif
   1516 #if !1 && defined GNULIB_POSIXCHECK
   1517 # if !GNULIB_overrides_vfprintf
   1518 #  undef vfprintf
   1519 # endif
   1520 /* Assume vfprintf is always declared.  */
   1521 _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - "
   1522                  "use gnulib module vfprintf-posix for portable "
   1523                       "POSIX compliance");
   1524 #endif
   1525 
   1526 #if 0
   1527 # if 0 && 0
   1528 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1529 #   undef vfscanf
   1530 #   define vfscanf rpl_vfscanf
   1531 #  endif
   1532 _GL_FUNCDECL_RPL (vfscanf, int,
   1533                   (FILE *stream, const char *format, va_list args)
   1534                   _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0)
   1535                   _GL_ARG_NONNULL ((1, 2)));
   1536 _GL_CXXALIAS_RPL (vfscanf, int,
   1537                   (FILE *stream, const char *format, va_list args));
   1538 # else
   1539 _GL_CXXALIAS_SYS (vfscanf, int,
   1540                   (FILE *stream, const char *format, va_list args));
   1541 # endif
   1542 _GL_CXXALIASWARN (vfscanf);
   1543 #endif
   1544 
   1545 #if 0 || 1
   1546 # if (0 && 0) \
   1547      || (1 && 0 && (0 || 0))
   1548 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1549 #   define vprintf rpl_vprintf
   1550 #  endif
   1551 #  define GNULIB_overrides_vprintf 1
   1552 #  if 0 || 1
   1553 _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
   1554                                 _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0)
   1555                                 _GL_ARG_NONNULL ((1)));
   1556 #  else
   1557 _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
   1558                                 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0)
   1559                                 _GL_ARG_NONNULL ((1)));
   1560 #  endif
   1561 _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args));
   1562 # else
   1563 /* Need to cast, because on Solaris, the second parameter is
   1564                                                           __va_list args
   1565    and GCC's fixincludes did not change this to __gnuc_va_list.  */
   1566 _GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args));
   1567 # endif
   1568 _GL_CXXALIASWARN (vprintf);
   1569 #endif
   1570 #if !0 && defined GNULIB_POSIXCHECK
   1571 # if !GNULIB_overrides_vprintf
   1572 #  undef vprintf
   1573 # endif
   1574 /* Assume vprintf is always declared.  */
   1575 _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - "
   1576                  "use gnulib module vprintf-posix for portable "
   1577                  "POSIX compliance");
   1578 #endif
   1579 
   1580 #if 0
   1581 # if 0 && 0
   1582 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1583 #   undef vscanf
   1584 #   define vscanf rpl_vscanf
   1585 #  endif
   1586 _GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args)
   1587                                _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0)
   1588                                _GL_ARG_NONNULL ((1)));
   1589 _GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args));
   1590 # else
   1591 _GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args));
   1592 # endif
   1593 _GL_CXXALIASWARN (vscanf);
   1594 #endif
   1595 
   1596 #if 1
   1597 # if 1
   1598 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1599 #   define vsnprintf rpl_vsnprintf
   1600 #  endif
   1601 _GL_FUNCDECL_RPL (vsnprintf, int,
   1602                   (char *str, size_t size, const char *format, va_list args)
   1603                   _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0)
   1604                   _GL_ARG_NONNULL ((3)));
   1605 _GL_CXXALIAS_RPL (vsnprintf, int,
   1606                   (char *str, size_t size, const char *format, va_list args));
   1607 # else
   1608 #  if !1
   1609 _GL_FUNCDECL_SYS (vsnprintf, int,
   1610                   (char *str, size_t size, const char *format, va_list args)
   1611                   _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0)
   1612                   _GL_ARG_NONNULL ((3)));
   1613 #  endif
   1614 _GL_CXXALIAS_SYS (vsnprintf, int,
   1615                   (char *str, size_t size, const char *format, va_list args));
   1616 # endif
   1617 _GL_CXXALIASWARN (vsnprintf);
   1618 #elif defined GNULIB_POSIXCHECK
   1619 # undef vsnprintf
   1620 # if HAVE_RAW_DECL_VSNPRINTF
   1621 _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - "
   1622                  "use gnulib module vsnprintf for portability");
   1623 # endif
   1624 #endif
   1625 
   1626 #if 1
   1627 # if 1
   1628 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1629 #   define vsprintf rpl_vsprintf
   1630 #  endif
   1631 _GL_FUNCDECL_RPL (vsprintf, int,
   1632                   (char *str, const char *format, va_list args)
   1633                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
   1634                   _GL_ARG_NONNULL ((1, 2)));
   1635 _GL_CXXALIAS_RPL (vsprintf, int,
   1636                   (char *str, const char *format, va_list args));
   1637 # else
   1638 /* Need to cast, because on Solaris, the third parameter is
   1639                                                        __va_list args
   1640    and GCC's fixincludes did not change this to __gnuc_va_list.  */
   1641 _GL_CXXALIAS_SYS_CAST (vsprintf, int,
   1642                        (char *str, const char *format, va_list args));
   1643 # endif
   1644 _GL_CXXALIASWARN (vsprintf);
   1645 #elif defined GNULIB_POSIXCHECK
   1646 # undef vsprintf
   1647 /* Assume vsprintf is always declared.  */
   1648 _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - "
   1649                  "use gnulib module vsprintf-posix for portable "
   1650                       "POSIX compliance");
   1651 #endif
   1652 
   1653 _GL_INLINE_HEADER_END
   1654 
   1655 #endif /* _GL_STDIO_H */
   1656 #endif /* _GL_STDIO_H */
   1657 #endif
   1658