Blame gnulib/lib/stdio.in.h

Packit Service a2ae7a
/* A GNU-like <stdio.h>.
Packit Service a2ae7a
Packit Service a2ae7a
   Copyright (C) 2004, 2007-2019 Free Software Foundation, Inc.
Packit Service a2ae7a
Packit Service a2ae7a
   This program is free software; you can redistribute it and/or modify
Packit Service a2ae7a
   it under the terms of the GNU Lesser General Public License as published by
Packit Service a2ae7a
   the Free Software Foundation; either version 2.1, or (at your option)
Packit Service a2ae7a
   any later version.
Packit Service a2ae7a
Packit Service a2ae7a
   This program is distributed in the hope that it will be useful,
Packit Service a2ae7a
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service a2ae7a
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service a2ae7a
   GNU Lesser General Public License for more details.
Packit Service a2ae7a
Packit Service a2ae7a
   You should have received a copy of the GNU Lesser General Public License
Packit Service a2ae7a
   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
Packit Service a2ae7a
Packit Service a2ae7a
#if __GNUC__ >= 3
Packit Service a2ae7a
@PRAGMA_SYSTEM_HEADER@
Packit Service a2ae7a
#endif
Packit Service a2ae7a
@PRAGMA_COLUMNS@
Packit Service a2ae7a
Packit Service a2ae7a
#if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H
Packit Service a2ae7a
/* Special invocation convention:
Packit Service a2ae7a
   - Inside glibc header files.
Packit Service a2ae7a
   - On OSF/1 5.1 we have a sequence of nested includes
Packit Service a2ae7a
     <stdio.h> -> <getopt.h> -> <ctype.h> -> <sys/localedef.h> ->
Packit Service a2ae7a
     <sys/lc_core.h> -> <nl_types.h> -> <mesg.h> -> <stdio.h>.
Packit Service a2ae7a
     In this situation, the functions are not yet declared, therefore we cannot
Packit Service a2ae7a
     provide the C++ aliases.  */
Packit Service a2ae7a
Packit Service a2ae7a
#@INCLUDE_NEXT@ @NEXT_STDIO_H@
Packit Service a2ae7a
Packit Service a2ae7a
#else
Packit Service a2ae7a
/* Normal invocation convention.  */
Packit Service a2ae7a
Packit Service a2ae7a
#ifndef _@GUARD_PREFIX@_STDIO_H
Packit Service a2ae7a
Packit Service a2ae7a
#define _GL_ALREADY_INCLUDING_STDIO_H
Packit Service a2ae7a
Packit Service a2ae7a
/* The include_next requires a split double-inclusion guard.  */
Packit Service a2ae7a
#@INCLUDE_NEXT@ @NEXT_STDIO_H@
Packit Service a2ae7a
Packit Service a2ae7a
#undef _GL_ALREADY_INCLUDING_STDIO_H
Packit Service a2ae7a
Packit Service a2ae7a
#ifndef _@GUARD_PREFIX@_STDIO_H
Packit Service a2ae7a
#define _@GUARD_PREFIX@_STDIO_H
Packit Service a2ae7a
Packit Service a2ae7a
/* Get va_list.  Needed on many systems, including glibc 2.8.  */
Packit Service a2ae7a
#include <stdarg.h>
Packit Service a2ae7a
Packit Service a2ae7a
#include <stddef.h>
Packit Service a2ae7a
Packit Service a2ae7a
/* Get off_t and ssize_t.  Needed on many systems, including glibc 2.8
Packit Service a2ae7a
   and eglibc 2.11.2.
Packit Service a2ae7a
   May also define off_t to a 64-bit type on native Windows.  */
Packit Service a2ae7a
#include <sys/types.h>
Packit Service a2ae7a
Packit Service a2ae7a
/* The __attribute__ feature is available in gcc versions 2.5 and later.
Packit Service a2ae7a
   The __-protected variants of the attributes 'format' and 'printf' are
Packit Service a2ae7a
   accepted by gcc versions 2.6.4 (effectively 2.7) and later.
Packit Service a2ae7a
   We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because
Packit Service a2ae7a
   gnulib and libintl do '#define printf __printf__' when they override
Packit Service a2ae7a
   the 'printf' function.  */
Packit Service a2ae7a
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
Packit Service a2ae7a
# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
Packit Service a2ae7a
#else
Packit Service a2ae7a
# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* _GL_ATTRIBUTE_FORMAT_PRINTF
Packit Service a2ae7a
   indicates to GCC that the function takes a format string and arguments,
Packit Service a2ae7a
   where the format string directives are the ones standardized by ISO C99
Packit Service a2ae7a
   and POSIX.  */
Packit Service a2ae7a
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
Packit Service a2ae7a
# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
Packit Service a2ae7a
   _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument))
Packit Service a2ae7a
#else
Packit Service a2ae7a
# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
Packit Service a2ae7a
   _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF,
Packit Service a2ae7a
   except that it indicates to GCC that the supported format string directives
Packit Service a2ae7a
   are the ones of the system printf(), rather than the ones standardized by
Packit Service a2ae7a
   ISO C99 and POSIX.  */
Packit Service a2ae7a
#if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
Packit Service a2ae7a
# define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
Packit Service a2ae7a
  _GL_ATTRIBUTE_FORMAT_PRINTF (formatstring_parameter, first_argument)
Packit Service a2ae7a
#else
Packit Service a2ae7a
# define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
Packit Service a2ae7a
  _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* _GL_ATTRIBUTE_FORMAT_SCANF
Packit Service a2ae7a
   indicates to GCC that the function takes a format string and arguments,
Packit Service a2ae7a
   where the format string directives are the ones standardized by ISO C99
Packit Service a2ae7a
   and POSIX.  */
Packit Service a2ae7a
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
Packit Service a2ae7a
# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
Packit Service a2ae7a
   _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument))
Packit Service a2ae7a
#else
Packit Service a2ae7a
# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
Packit Service a2ae7a
   _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF,
Packit Service a2ae7a
   except that it indicates to GCC that the supported format string directives
Packit Service a2ae7a
   are the ones of the system scanf(), rather than the ones standardized by
Packit Service a2ae7a
   ISO C99 and POSIX.  */
Packit Service a2ae7a
#define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \
Packit Service a2ae7a
  _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
Packit Service a2ae7a
Packit Service a2ae7a
/* Solaris 10 and NetBSD 7.0 declare renameat in <unistd.h>, not in <stdio.h>.  */
Packit Service a2ae7a
/* But in any case avoid namespace pollution on glibc systems.  */
Packit Service a2ae7a
#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \
Packit Service a2ae7a
    && ! defined __GLIBC__
Packit Service a2ae7a
# include <unistd.h>
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* Android 4.3 declares renameat in <sys/stat.h>, not in <stdio.h>.  */
Packit Service a2ae7a
/* But in any case avoid namespace pollution on glibc systems.  */
Packit Service a2ae7a
#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
Packit Service a2ae7a
    && ! defined __GLIBC__
Packit Service a2ae7a
# include <sys/stat.h>
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>.  We must include
Packit Service a2ae7a
   it before we  #define perror rpl_perror.  */
Packit Service a2ae7a
/* But in any case avoid namespace pollution on glibc systems.  */
Packit Service a2ae7a
#if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \
Packit Service a2ae7a
    && (defined _WIN32 && ! defined __CYGWIN__) \
Packit Service a2ae7a
    && ! defined __GLIBC__
Packit Service a2ae7a
# include <stdlib.h>
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* MSVC declares 'remove' in <io.h>, not in <stdio.h>.  We must include
Packit Service a2ae7a
   it before we  #define remove rpl_remove.  */
Packit Service a2ae7a
/* MSVC declares 'rename' in <io.h>, not in <stdio.h>.  We must include
Packit Service a2ae7a
   it before we  #define rename rpl_rename.  */
Packit Service a2ae7a
/* But in any case avoid namespace pollution on glibc systems.  */
Packit Service a2ae7a
#if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \
Packit Service a2ae7a
    && (defined _WIN32 && ! defined __CYGWIN__) \
Packit Service a2ae7a
    && ! defined __GLIBC__
Packit Service a2ae7a
# include <io.h>
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
Packit Service a2ae7a
Packit Service a2ae7a
/* The definition of _GL_ARG_NONNULL is copied here.  */
Packit Service a2ae7a
Packit Service a2ae7a
/* The definition of _GL_WARN_ON_USE is copied here.  */
Packit Service a2ae7a
Packit Service a2ae7a
/* Macros for stringification.  */
Packit Service a2ae7a
#define _GL_STDIO_STRINGIZE(token) #token
Packit Service a2ae7a
#define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token)
Packit Service a2ae7a
Packit Service a2ae7a
/* When also using extern inline, suppress the use of static inline in
Packit Service a2ae7a
   standard headers of problematic Apple configurations, as Libc at
Packit Service a2ae7a
   least through Libc-825.26 (2013-04-09) mishandles it; see, e.g.,
Packit Service a2ae7a
   <https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>.
Packit Service a2ae7a
   Perhaps Apple will fix this some day.  */
Packit Service a2ae7a
#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
Packit Service a2ae7a
     && defined __GNUC__ && defined __STDC__)
Packit Service a2ae7a
# undef putc_unlocked
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_DPRINTF@
Packit Service a2ae7a
# if @REPLACE_DPRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define dprintf rpl_dprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...)
Packit Service a2ae7a
                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
Packit Service a2ae7a
                                _GL_ARG_NONNULL ((2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_DPRINTF@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...)
Packit Service a2ae7a
                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
Packit Service a2ae7a
                                _GL_ARG_NONNULL ((2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (dprintf);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef dprintf
Packit Service a2ae7a
# if HAVE_RAW_DECL_DPRINTF
Packit Service a2ae7a
_GL_WARN_ON_USE (dprintf, "dprintf is unportable - "
Packit Service a2ae7a
                 "use gnulib module dprintf for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FCLOSE@
Packit Service a2ae7a
/* Close STREAM and its underlying file descriptor.  */
Packit Service a2ae7a
# if @REPLACE_FCLOSE@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define fclose rpl_fclose
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fclose, int, (FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fclose, int, (FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fclose);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef fclose
Packit Service a2ae7a
/* Assume fclose is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module fclose for portable POSIX compliance");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FDOPEN@
Packit Service a2ae7a
# if @REPLACE_FDOPEN@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fdopen
Packit Service a2ae7a
#   define fdopen rpl_fdopen
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode)
Packit Service a2ae7a
                                  _GL_ARG_NONNULL ((2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fdopen);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef fdopen
Packit Service a2ae7a
/* Assume fdopen is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module fdopen for portability");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FFLUSH@
Packit Service a2ae7a
/* Flush all pending data on STREAM according to POSIX rules.  Both
Packit Service a2ae7a
   output and seekable input streams are supported.
Packit Service a2ae7a
   Note! LOSS OF DATA can occur if fflush is applied on an input stream
Packit Service a2ae7a
   that is _not_seekable_ or on an update stream that is _not_seekable_
Packit Service a2ae7a
   and in which the most recent operation was input.  Seekability can
Packit Service a2ae7a
   be tested with lseek(fileno(fp),0,SEEK_CUR).  */
Packit Service a2ae7a
# if @REPLACE_FFLUSH@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define fflush rpl_fflush
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fflush);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef fflush
Packit Service a2ae7a
/* Assume fflush is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module fflush for portable POSIX compliance");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FGETC@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fgetc
Packit Service a2ae7a
#   define fgetc rpl_fgetc
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fgetc, int, (FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fgetc, int, (FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fgetc);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FGETS@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fgets
Packit Service a2ae7a
#   define fgets rpl_fgets
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((1, 3)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fgets);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FOPEN@
Packit Service a2ae7a
# if @REPLACE_FOPEN@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fopen
Packit Service a2ae7a
#   define fopen rpl_fopen
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fopen);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef fopen
Packit Service a2ae7a
/* Assume fopen is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module fopen for portability");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@
Packit Service a2ae7a
# if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \
Packit Service a2ae7a
     || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define fprintf rpl_fprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
#  define GNULIB_overrides_fprintf 1
Packit Service a2ae7a
#  if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
Packit Service a2ae7a
                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
Packit Service a2ae7a
                                _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  else
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
Packit Service a2ae7a
                                _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3)
Packit Service a2ae7a
                                _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fprintf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# if !GNULIB_overrides_fprintf
Packit Service a2ae7a
#  undef fprintf
Packit Service a2ae7a
# endif
Packit Service a2ae7a
/* Assume fprintf is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module fprintf-posix for portable "
Packit Service a2ae7a
                 "POSIX compliance");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FPURGE@
Packit Service a2ae7a
/* Discard all pending buffered I/O data on STREAM.
Packit Service a2ae7a
   STREAM must not be wide-character oriented.
Packit Service a2ae7a
   When discarding pending output, the file position is set back to where it
Packit Service a2ae7a
   was before the write calls.  When discarding pending input, the file
Packit Service a2ae7a
   position is advanced to match the end of the previously read input.
Packit Service a2ae7a
   Return 0 if successful.  Upon error, return -1 and set errno.  */
Packit Service a2ae7a
# if @REPLACE_FPURGE@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define fpurge rpl_fpurge
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_DECL_FPURGE@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fpurge);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef fpurge
Packit Service a2ae7a
# if HAVE_RAW_DECL_FPURGE
Packit Service a2ae7a
_GL_WARN_ON_USE (fpurge, "fpurge is not always present - "
Packit Service a2ae7a
                 "use gnulib module fpurge for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FPUTC@
Packit Service a2ae7a
# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fputc
Packit Service a2ae7a
#   define fputc rpl_fputc
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fputc);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FPUTS@
Packit Service a2ae7a
# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fputs
Packit Service a2ae7a
#   define fputs rpl_fputs
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream)
Packit Service a2ae7a
                              _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fputs);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FREAD@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fread
Packit Service a2ae7a
#   define fread rpl_fread
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((4)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fread);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FREOPEN@
Packit Service a2ae7a
# if @REPLACE_FREOPEN@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef freopen
Packit Service a2ae7a
#   define freopen rpl_freopen
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (freopen, FILE *,
Packit Service a2ae7a
                  (const char *filename, const char *mode, FILE *stream)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((2, 3)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (freopen, FILE *,
Packit Service a2ae7a
                  (const char *filename, const char *mode, FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (freopen, FILE *,
Packit Service a2ae7a
                  (const char *filename, const char *mode, FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (freopen);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef freopen
Packit Service a2ae7a
/* Assume freopen is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (freopen,
Packit Service a2ae7a
                 "freopen on native Windows platforms is not POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module freopen for portability");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FSCANF@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fscanf
Packit Service a2ae7a
#   define fscanf rpl_fscanf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...)
Packit Service a2ae7a
                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3)
Packit Service a2ae7a
                               _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fscanf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
/* Set up the following warnings, based on which modules are in use.
Packit Service a2ae7a
   GNU Coding Standards discourage the use of fseek, since it imposes
Packit Service a2ae7a
   an arbitrary limitation on some 32-bit hosts.  Remember that the
Packit Service a2ae7a
   fseek module depends on the fseeko module, so we only have three
Packit Service a2ae7a
   cases to consider:
Packit Service a2ae7a
Packit Service a2ae7a
   1. The developer is not using either module.  Issue a warning under
Packit Service a2ae7a
   GNULIB_POSIXCHECK for both functions, to remind them that both
Packit Service a2ae7a
   functions have bugs on some systems.  _GL_NO_LARGE_FILES has no
Packit Service a2ae7a
   impact on this warning.
Packit Service a2ae7a
Packit Service a2ae7a
   2. The developer is using both modules.  They may be unaware of the
Packit Service a2ae7a
   arbitrary limitations of fseek, so issue a warning under
Packit Service a2ae7a
   GNULIB_POSIXCHECK.  On the other hand, they may be using both
Packit Service a2ae7a
   modules intentionally, so the developer can define
Packit Service a2ae7a
   _GL_NO_LARGE_FILES in the compilation units where the use of fseek
Packit Service a2ae7a
   is safe, to silence the warning.
Packit Service a2ae7a
Packit Service a2ae7a
   3. The developer is using the fseeko module, but not fseek.  Gnulib
Packit Service a2ae7a
   guarantees that fseek will still work around platform bugs in that
Packit Service a2ae7a
   case, but we presume that the developer is aware of the pitfalls of
Packit Service a2ae7a
   fseek and was trying to avoid it, so issue a warning even when
Packit Service a2ae7a
   GNULIB_POSIXCHECK is undefined.  Again, _GL_NO_LARGE_FILES can be
Packit Service a2ae7a
   defined to silence the warning in particular compilation units.
Packit Service a2ae7a
   In C++ compilations with GNULIB_NAMESPACE, in order to avoid that
Packit Service a2ae7a
   fseek gets defined as a macro, it is recommended that the developer
Packit Service a2ae7a
   uses the fseek module, even if he is not calling the fseek function.
Packit Service a2ae7a
Packit Service a2ae7a
   Most gnulib clients that perform stream operations should fall into
Packit Service a2ae7a
   category 3.  */
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FSEEK@
Packit Service a2ae7a
# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES
Packit Service a2ae7a
#  define _GL_FSEEK_WARN /* Category 2, above.  */
Packit Service a2ae7a
#  undef fseek
Packit Service a2ae7a
# endif
Packit Service a2ae7a
# if @REPLACE_FSEEK@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fseek
Packit Service a2ae7a
#   define fseek rpl_fseek
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence)
Packit Service a2ae7a
                              _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fseek);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FSEEKO@
Packit Service a2ae7a
# if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES
Packit Service a2ae7a
#  define _GL_FSEEK_WARN /* Category 3, above.  */
Packit Service a2ae7a
#  undef fseek
Packit Service a2ae7a
# endif
Packit Service a2ae7a
# if @REPLACE_FSEEKO@
Packit Service a2ae7a
/* Provide an fseeko function that is aware of a preceding fflush(), and which
Packit Service a2ae7a
   detects pipes.  */
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fseeko
Packit Service a2ae7a
#   define fseeko rpl_fseeko
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)
Packit Service a2ae7a
                               _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if ! @HAVE_DECL_FSEEKO@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)
Packit Service a2ae7a
                               _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fseeko);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# define _GL_FSEEK_WARN /* Category 1, above.  */
Packit Service a2ae7a
# undef fseek
Packit Service a2ae7a
# undef fseeko
Packit Service a2ae7a
# if HAVE_RAW_DECL_FSEEKO
Packit Service a2ae7a
_GL_WARN_ON_USE (fseeko, "fseeko is unportable - "
Packit Service a2ae7a
                 "use gnulib module fseeko for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#ifdef _GL_FSEEK_WARN
Packit Service a2ae7a
# undef _GL_FSEEK_WARN
Packit Service a2ae7a
/* Here, either fseek is undefined (but C89 guarantees that it is
Packit Service a2ae7a
   declared), or it is defined as rpl_fseek (declared above).  */
Packit Service a2ae7a
_GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB "
Packit Service a2ae7a
                 "on 32-bit platforms - "
Packit Service a2ae7a
                 "use fseeko function for handling of large files");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
/* ftell, ftello.  See the comments on fseek/fseeko.  */
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FTELL@
Packit Service a2ae7a
# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES
Packit Service a2ae7a
#  define _GL_FTELL_WARN /* Category 2, above.  */
Packit Service a2ae7a
#  undef ftell
Packit Service a2ae7a
# endif
Packit Service a2ae7a
# if @REPLACE_FTELL@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef ftell
Packit Service a2ae7a
#   define ftell rpl_ftell
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (ftell, long, (FILE *fp));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (ftell, long, (FILE *fp));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (ftell);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FTELLO@
Packit Service a2ae7a
# if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES
Packit Service a2ae7a
#  define _GL_FTELL_WARN /* Category 3, above.  */
Packit Service a2ae7a
#  undef ftell
Packit Service a2ae7a
# endif
Packit Service a2ae7a
# if @REPLACE_FTELLO@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef ftello
Packit Service a2ae7a
#   define ftello rpl_ftello
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if ! @HAVE_DECL_FTELLO@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (ftello);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# define _GL_FTELL_WARN /* Category 1, above.  */
Packit Service a2ae7a
# undef ftell
Packit Service a2ae7a
# undef ftello
Packit Service a2ae7a
# if HAVE_RAW_DECL_FTELLO
Packit Service a2ae7a
_GL_WARN_ON_USE (ftello, "ftello is unportable - "
Packit Service a2ae7a
                 "use gnulib module ftello for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#ifdef _GL_FTELL_WARN
Packit Service a2ae7a
# undef _GL_FTELL_WARN
Packit Service a2ae7a
/* Here, either ftell is undefined (but C89 guarantees that it is
Packit Service a2ae7a
   declared), or it is defined as rpl_ftell (declared above).  */
Packit Service a2ae7a
_GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB "
Packit Service a2ae7a
                 "on 32-bit platforms - "
Packit Service a2ae7a
                 "use ftello function for handling of large files");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_FWRITE@
Packit Service a2ae7a
# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef fwrite
Packit Service a2ae7a
#   define fwrite rpl_fwrite
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fwrite, size_t,
Packit Service a2ae7a
                  (const void *ptr, size_t s, size_t n, FILE *stream)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 4)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (fwrite, size_t,
Packit Service a2ae7a
                  (const void *ptr, size_t s, size_t n, FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (fwrite, size_t,
Packit Service a2ae7a
                  (const void *ptr, size_t s, size_t n, FILE *stream));
Packit Service a2ae7a
Packit Service a2ae7a
/* Work around bug 11959 when fortifying glibc 2.4 through 2.15
Packit Service a2ae7a
   <https://sourceware.org/bugzilla/show_bug.cgi?id=11959>,
Packit Service a2ae7a
   which sometimes causes an unwanted diagnostic for fwrite calls.
Packit Service a2ae7a
   This affects only function declaration attributes under certain
Packit Service a2ae7a
   versions of gcc and clang, and is not needed for C++.  */
Packit Service a2ae7a
#  if (0 < __USE_FORTIFY_LEVEL                                          \
Packit Service a2ae7a
       && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \
Packit Service a2ae7a
       && 3 < __GNUC__ + (4 <= __GNUC_MINOR__)                          \
Packit Service a2ae7a
       && !defined __cplusplus)
Packit Service a2ae7a
#   undef fwrite
Packit Service a2ae7a
#   undef fwrite_unlocked
Packit Service a2ae7a
extern size_t __REDIRECT (rpl_fwrite,
Packit Service a2ae7a
                          (const void *__restrict, size_t, size_t,
Packit Service a2ae7a
                           FILE *__restrict),
Packit Service a2ae7a
                          fwrite);
Packit Service a2ae7a
extern size_t __REDIRECT (rpl_fwrite_unlocked,
Packit Service a2ae7a
                          (const void *__restrict, size_t, size_t,
Packit Service a2ae7a
                           FILE *__restrict),
Packit Service a2ae7a
                          fwrite_unlocked);
Packit Service a2ae7a
#   define fwrite rpl_fwrite
Packit Service a2ae7a
#   define fwrite_unlocked rpl_fwrite_unlocked
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (fwrite);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_GETC@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef getc
Packit Service a2ae7a
#   define getc rpl_fgetc
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (getc, int, (FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (getc);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_GETCHAR@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef getchar
Packit Service a2ae7a
#   define getchar rpl_getchar
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (getchar, int, (void));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (getchar, int, (void));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (getchar, int, (void));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (getchar);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_GETDELIM@
Packit Service a2ae7a
/* Read input, up to (and including) the next occurrence of DELIMITER, from
Packit Service a2ae7a
   STREAM, store it in *LINEPTR (and NUL-terminate it).
Packit Service a2ae7a
   *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
Packit Service a2ae7a
   bytes of space.  It is realloc'd as necessary.
Packit Service a2ae7a
   Return the number of bytes read and stored at *LINEPTR (not including the
Packit Service a2ae7a
   NUL terminator), or -1 on error or EOF.  */
Packit Service a2ae7a
# if @REPLACE_GETDELIM@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef getdelim
Packit Service a2ae7a
#   define getdelim rpl_getdelim
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (getdelim, ssize_t,
Packit Service a2ae7a
                  (char **lineptr, size_t *linesize, int delimiter,
Packit Service a2ae7a
                   FILE *stream)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2, 4)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (getdelim, ssize_t,
Packit Service a2ae7a
                  (char **lineptr, size_t *linesize, int delimiter,
Packit Service a2ae7a
                   FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_DECL_GETDELIM@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (getdelim, ssize_t,
Packit Service a2ae7a
                  (char **lineptr, size_t *linesize, int delimiter,
Packit Service a2ae7a
                   FILE *stream)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2, 4)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (getdelim, ssize_t,
Packit Service a2ae7a
                  (char **lineptr, size_t *linesize, int delimiter,
Packit Service a2ae7a
                   FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (getdelim);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef getdelim
Packit Service a2ae7a
# if HAVE_RAW_DECL_GETDELIM
Packit Service a2ae7a
_GL_WARN_ON_USE (getdelim, "getdelim is unportable - "
Packit Service a2ae7a
                 "use gnulib module getdelim for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_GETLINE@
Packit Service a2ae7a
/* Read a line, up to (and including) the next newline, from STREAM, store it
Packit Service a2ae7a
   in *LINEPTR (and NUL-terminate it).
Packit Service a2ae7a
   *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
Packit Service a2ae7a
   bytes of space.  It is realloc'd as necessary.
Packit Service a2ae7a
   Return the number of bytes read and stored at *LINEPTR (not including the
Packit Service a2ae7a
   NUL terminator), or -1 on error or EOF.  */
Packit Service a2ae7a
# if @REPLACE_GETLINE@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef getline
Packit Service a2ae7a
#   define getline rpl_getline
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (getline, ssize_t,
Packit Service a2ae7a
                  (char **lineptr, size_t *linesize, FILE *stream)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2, 3)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (getline, ssize_t,
Packit Service a2ae7a
                  (char **lineptr, size_t *linesize, FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_DECL_GETLINE@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (getline, ssize_t,
Packit Service a2ae7a
                  (char **lineptr, size_t *linesize, FILE *stream)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2, 3)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (getline, ssize_t,
Packit Service a2ae7a
                  (char **lineptr, size_t *linesize, FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
# if @HAVE_DECL_GETLINE@
Packit Service a2ae7a
_GL_CXXALIASWARN (getline);
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef getline
Packit Service a2ae7a
# if HAVE_RAW_DECL_GETLINE
Packit Service a2ae7a
_GL_WARN_ON_USE (getline, "getline is unportable - "
Packit Service a2ae7a
                 "use gnulib module getline for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* It is very rare that the developer ever has full control of stdin,
Packit Service a2ae7a
   so any use of gets warrants an unconditional warning; besides, C11
Packit Service a2ae7a
   removed it.  */
Packit Service a2ae7a
#undef gets
Packit Service a2ae7a
#if HAVE_RAW_DECL_GETS && !defined __cplusplus
Packit Service a2ae7a
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
Packit Service a2ae7a
struct obstack;
Packit Service a2ae7a
/* Grow an obstack with formatted output.  Return the number of
Packit Service a2ae7a
   bytes added to OBS.  No trailing nul byte is added, and the
Packit Service a2ae7a
   object should be closed with obstack_finish before use.  Upon
Packit Service a2ae7a
   memory allocation error, call obstack_alloc_failed_handler.  Upon
Packit Service a2ae7a
   other error, return -1.  */
Packit Service a2ae7a
# if @REPLACE_OBSTACK_PRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define obstack_printf rpl_obstack_printf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (obstack_printf, int,
Packit Service a2ae7a
                  (struct obstack *obs, const char *format, ...)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (obstack_printf, int,
Packit Service a2ae7a
                  (struct obstack *obs, const char *format, ...));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_DECL_OBSTACK_PRINTF@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (obstack_printf, int,
Packit Service a2ae7a
                  (struct obstack *obs, const char *format, ...)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (obstack_printf, int,
Packit Service a2ae7a
                  (struct obstack *obs, const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (obstack_printf);
Packit Service a2ae7a
# if @REPLACE_OBSTACK_PRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define obstack_vprintf rpl_obstack_vprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (obstack_vprintf, int,
Packit Service a2ae7a
                  (struct obstack *obs, const char *format, va_list args)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (obstack_vprintf, int,
Packit Service a2ae7a
                  (struct obstack *obs, const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_DECL_OBSTACK_PRINTF@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (obstack_vprintf, int,
Packit Service a2ae7a
                  (struct obstack *obs, const char *format, va_list args)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (obstack_vprintf, int,
Packit Service a2ae7a
                  (struct obstack *obs, const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (obstack_vprintf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_PCLOSE@
Packit Service a2ae7a
# if !@HAVE_PCLOSE@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (pclose, int, (FILE *stream));
Packit Service a2ae7a
_GL_CXXALIASWARN (pclose);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef pclose
Packit Service a2ae7a
# if HAVE_RAW_DECL_PCLOSE
Packit Service a2ae7a
_GL_WARN_ON_USE (pclose, "pclose is unportable - "
Packit Service a2ae7a
                 "use gnulib module pclose for more portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_PERROR@
Packit Service a2ae7a
/* Print a message to standard error, describing the value of ERRNO,
Packit Service a2ae7a
   (if STRING is not NULL and not empty) prefixed with STRING and ": ",
Packit Service a2ae7a
   and terminated with a newline.  */
Packit Service a2ae7a
# if @REPLACE_PERROR@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define perror rpl_perror
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (perror, void, (const char *string));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (perror, void, (const char *string));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (perror, void, (const char *string));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (perror);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef perror
Packit Service a2ae7a
/* Assume perror is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module perror for portability");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_POPEN@
Packit Service a2ae7a
# if @REPLACE_POPEN@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef popen
Packit Service a2ae7a
#   define popen rpl_popen
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_POPEN@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (popen);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef popen
Packit Service a2ae7a
# if HAVE_RAW_DECL_POPEN
Packit Service a2ae7a
_GL_WARN_ON_USE (popen, "popen is buggy on some platforms - "
Packit Service a2ae7a
                 "use gnulib module popen or pipe for more portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@
Packit Service a2ae7a
# if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \
Packit Service a2ae7a
     || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
Packit Service a2ae7a
#  if defined __GNUC__
Packit Service a2ae7a
#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
/* Don't break __attribute__((format(printf,M,N))).  */
Packit Service a2ae7a
#    define printf __printf__
Packit Service a2ae7a
#   endif
Packit Service a2ae7a
#   if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
Packit Service a2ae7a
_GL_FUNCDECL_RPL_1 (__printf__, int,
Packit Service a2ae7a
                    (const char *format, ...)
Packit Service a2ae7a
                    __asm__ (@ASM_SYMBOL_PREFIX@
Packit Service a2ae7a
                             _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
Packit Service a2ae7a
                    _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
Packit Service a2ae7a
                    _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
#   else
Packit Service a2ae7a
_GL_FUNCDECL_RPL_1 (__printf__, int,
Packit Service a2ae7a
                    (const char *format, ...)
Packit Service a2ae7a
                    __asm__ (@ASM_SYMBOL_PREFIX@
Packit Service a2ae7a
                             _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
Packit Service a2ae7a
                    _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2)
Packit Service a2ae7a
                    _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
#   endif
Packit Service a2ae7a
_GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...));
Packit Service a2ae7a
#  else
Packit Service a2ae7a
#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#    define printf rpl_printf
Packit Service a2ae7a
#   endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (printf, int,
Packit Service a2ae7a
                  (const char *format, ...)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (printf, int, (const char *format, ...));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
#  define GNULIB_overrides_printf 1
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (printf, int, (const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (printf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# if !GNULIB_overrides_printf
Packit Service a2ae7a
#  undef printf
Packit Service a2ae7a
# endif
Packit Service a2ae7a
/* Assume printf is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module printf-posix for portable "
Packit Service a2ae7a
                 "POSIX compliance");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_PUTC@
Packit Service a2ae7a
# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef putc
Packit Service a2ae7a
#   define putc rpl_fputc
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (putc);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_PUTCHAR@
Packit Service a2ae7a
# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef putchar
Packit Service a2ae7a
#   define putchar rpl_putchar
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (putchar, int, (int c));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (putchar, int, (int c));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (putchar, int, (int c));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (putchar);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_PUTS@
Packit Service a2ae7a
# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef puts
Packit Service a2ae7a
#   define puts rpl_puts
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (puts, int, (const char *string));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (puts, int, (const char *string));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (puts);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_REMOVE@
Packit Service a2ae7a
# if @REPLACE_REMOVE@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef remove
Packit Service a2ae7a
#   define remove rpl_remove
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (remove, int, (const char *name));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (remove, int, (const char *name));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (remove);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef remove
Packit Service a2ae7a
/* Assume remove is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - "
Packit Service a2ae7a
                 "use gnulib module remove for more portability");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_RENAME@
Packit Service a2ae7a
# if @REPLACE_RENAME@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef rename
Packit Service a2ae7a
#   define rename rpl_rename
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (rename, int,
Packit Service a2ae7a
                  (const char *old_filename, const char *new_filename)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (rename, int,
Packit Service a2ae7a
                  (const char *old_filename, const char *new_filename));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (rename, int,
Packit Service a2ae7a
                  (const char *old_filename, const char *new_filename));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (rename);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef rename
Packit Service a2ae7a
/* Assume rename is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (rename, "rename is buggy on some platforms - "
Packit Service a2ae7a
                 "use gnulib module rename for more portability");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_RENAMEAT@
Packit Service a2ae7a
# if @REPLACE_RENAMEAT@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef renameat
Packit Service a2ae7a
#   define renameat rpl_renameat
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (renameat, int,
Packit Service a2ae7a
                  (int fd1, char const *file1, int fd2, char const *file2)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((2, 4)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (renameat, int,
Packit Service a2ae7a
                  (int fd1, char const *file1, int fd2, char const *file2));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_RENAMEAT@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (renameat, int,
Packit Service a2ae7a
                  (int fd1, char const *file1, int fd2, char const *file2)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((2, 4)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (renameat, int,
Packit Service a2ae7a
                  (int fd1, char const *file1, int fd2, char const *file2));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (renameat);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef renameat
Packit Service a2ae7a
# if HAVE_RAW_DECL_RENAMEAT
Packit Service a2ae7a
_GL_WARN_ON_USE (renameat, "renameat is not portable - "
Packit Service a2ae7a
                 "use gnulib module renameat for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_SCANF@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if defined __GNUC__
Packit Service a2ae7a
#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#    undef scanf
Packit Service a2ae7a
/* Don't break __attribute__((format(scanf,M,N))).  */
Packit Service a2ae7a
#    define scanf __scanf__
Packit Service a2ae7a
#   endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL_1 (__scanf__, int,
Packit Service a2ae7a
                    (const char *format, ...)
Packit Service a2ae7a
                    __asm__ (@ASM_SYMBOL_PREFIX@
Packit Service a2ae7a
                             _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf))
Packit Service a2ae7a
                    _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
Packit Service a2ae7a
                    _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...));
Packit Service a2ae7a
#  else
Packit Service a2ae7a
#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#    undef scanf
Packit Service a2ae7a
#    define scanf rpl_scanf
Packit Service a2ae7a
#   endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (scanf, int, (const char *format, ...)
Packit Service a2ae7a
                              _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
Packit Service a2ae7a
                              _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (scanf, int, (const char *format, ...));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (scanf, int, (const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (scanf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_SNPRINTF@
Packit Service a2ae7a
# if @REPLACE_SNPRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define snprintf rpl_snprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (snprintf, int,
Packit Service a2ae7a
                  (char *str, size_t size, const char *format, ...)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((3)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (snprintf, int,
Packit Service a2ae7a
                  (char *str, size_t size, const char *format, ...));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_DECL_SNPRINTF@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (snprintf, int,
Packit Service a2ae7a
                  (char *str, size_t size, const char *format, ...)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((3)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (snprintf, int,
Packit Service a2ae7a
                  (char *str, size_t size, const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (snprintf);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef snprintf
Packit Service a2ae7a
# if HAVE_RAW_DECL_SNPRINTF
Packit Service a2ae7a
_GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
Packit Service a2ae7a
                 "use gnulib module snprintf for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
/* Some people would argue that all sprintf uses should be warned about
Packit Service a2ae7a
   (for example, OpenBSD issues a link warning for it),
Packit Service a2ae7a
   since it can cause security holes due to buffer overruns.
Packit Service a2ae7a
   However, we believe that sprintf can be used safely, and is more
Packit Service a2ae7a
   efficient than snprintf in those safe cases; and as proof of our
Packit Service a2ae7a
   belief, we use sprintf in several gnulib modules.  So this header
Packit Service a2ae7a
   intentionally avoids adding a warning to sprintf except when
Packit Service a2ae7a
   GNULIB_POSIXCHECK is defined.  */
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_SPRINTF_POSIX@
Packit Service a2ae7a
# if @REPLACE_SPRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define sprintf rpl_sprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...)
Packit Service a2ae7a
                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
Packit Service a2ae7a
                                _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (sprintf);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef sprintf
Packit Service a2ae7a
/* Assume sprintf is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module sprintf-posix for portable "
Packit Service a2ae7a
                 "POSIX compliance");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_TMPFILE@
Packit Service a2ae7a
# if @REPLACE_TMPFILE@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define tmpfile rpl_tmpfile
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (tmpfile, FILE *, (void));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (tmpfile, FILE *, (void));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (tmpfile, FILE *, (void));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (tmpfile);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef tmpfile
Packit Service a2ae7a
# if HAVE_RAW_DECL_TMPFILE
Packit Service a2ae7a
_GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - "
Packit Service a2ae7a
                 "use gnulib module tmpfile for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_VASPRINTF@
Packit Service a2ae7a
/* Write formatted output to a string dynamically allocated with malloc().
Packit Service a2ae7a
   If the memory allocation succeeds, store the address of the string in
Packit Service a2ae7a
   *RESULT and return the number of resulting bytes, excluding the trailing
Packit Service a2ae7a
   NUL.  Upon memory allocation error, or some other error, return -1.  */
Packit Service a2ae7a
# if @REPLACE_VASPRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define asprintf rpl_asprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (asprintf, int,
Packit Service a2ae7a
                  (char **result, const char *format, ...)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (asprintf, int,
Packit Service a2ae7a
                  (char **result, const char *format, ...));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_VASPRINTF@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (asprintf, int,
Packit Service a2ae7a
                  (char **result, const char *format, ...)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (asprintf, int,
Packit Service a2ae7a
                  (char **result, const char *format, ...));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (asprintf);
Packit Service a2ae7a
# if @REPLACE_VASPRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define vasprintf rpl_vasprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vasprintf, int,
Packit Service a2ae7a
                  (char **result, const char *format, va_list args)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (vasprintf, int,
Packit Service a2ae7a
                  (char **result, const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_VASPRINTF@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (vasprintf, int,
Packit Service a2ae7a
                  (char **result, const char *format, va_list args)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (vasprintf, int,
Packit Service a2ae7a
                  (char **result, const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (vasprintf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_VDPRINTF@
Packit Service a2ae7a
# if @REPLACE_VDPRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define vdprintf rpl_vdprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args)
Packit Service a2ae7a
                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_VDPRINTF@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args)
Packit Service a2ae7a
                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
/* Need to cast, because on Solaris, the third parameter will likely be
Packit Service a2ae7a
                                                    __va_list args.  */
Packit Service a2ae7a
_GL_CXXALIAS_SYS_CAST (vdprintf, int,
Packit Service a2ae7a
                       (int fd, const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (vdprintf);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef vdprintf
Packit Service a2ae7a
# if HAVE_RAW_DECL_VDPRINTF
Packit Service a2ae7a
_GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - "
Packit Service a2ae7a
                 "use gnulib module vdprintf for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@
Packit Service a2ae7a
# if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \
Packit Service a2ae7a
     || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define vfprintf rpl_vfprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
#  define GNULIB_overrides_vfprintf 1
Packit Service a2ae7a
#  if @GNULIB_VFPRINTF_POSIX@
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
Packit Service a2ae7a
                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  else
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
Packit Service a2ae7a
                                 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0)
Packit Service a2ae7a
                                 _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
/* Need to cast, because on Solaris, the third parameter is
Packit Service a2ae7a
                                                      __va_list args
Packit Service a2ae7a
   and GCC's fixincludes did not change this to __gnuc_va_list.  */
Packit Service a2ae7a
_GL_CXXALIAS_SYS_CAST (vfprintf, int,
Packit Service a2ae7a
                       (FILE *fp, const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (vfprintf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# if !GNULIB_overrides_vfprintf
Packit Service a2ae7a
#  undef vfprintf
Packit Service a2ae7a
# endif
Packit Service a2ae7a
/* Assume vfprintf is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module vfprintf-posix for portable "
Packit Service a2ae7a
                      "POSIX compliance");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_VFSCANF@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef vfscanf
Packit Service a2ae7a
#   define vfscanf rpl_vfscanf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vfscanf, int,
Packit Service a2ae7a
                  (FILE *stream, const char *format, va_list args)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (vfscanf, int,
Packit Service a2ae7a
                  (FILE *stream, const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (vfscanf, int,
Packit Service a2ae7a
                  (FILE *stream, const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (vfscanf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@
Packit Service a2ae7a
# if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \
Packit Service a2ae7a
     || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define vprintf rpl_vprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
#  define GNULIB_overrides_vprintf 1
Packit Service a2ae7a
#  if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
Packit Service a2ae7a
                                _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0)
Packit Service a2ae7a
                                _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
#  else
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
Packit Service a2ae7a
                                _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0)
Packit Service a2ae7a
                                _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
/* Need to cast, because on Solaris, the second parameter is
Packit Service a2ae7a
                                                          __va_list args
Packit Service a2ae7a
   and GCC's fixincludes did not change this to __gnuc_va_list.  */
Packit Service a2ae7a
_GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (vprintf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# if !GNULIB_overrides_vprintf
Packit Service a2ae7a
#  undef vprintf
Packit Service a2ae7a
# endif
Packit Service a2ae7a
/* Assume vprintf is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module vprintf-posix for portable "
Packit Service a2ae7a
                 "POSIX compliance");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_VSCANF@
Packit Service a2ae7a
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   undef vscanf
Packit Service a2ae7a
#   define vscanf rpl_vscanf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args)
Packit Service a2ae7a
                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0)
Packit Service a2ae7a
                               _GL_ARG_NONNULL ((1)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
_GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (vscanf);
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_VSNPRINTF@
Packit Service a2ae7a
# if @REPLACE_VSNPRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define vsnprintf rpl_vsnprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vsnprintf, int,
Packit Service a2ae7a
                  (char *str, size_t size, const char *format, va_list args)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((3)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (vsnprintf, int,
Packit Service a2ae7a
                  (char *str, size_t size, const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
#  if !@HAVE_DECL_VSNPRINTF@
Packit Service a2ae7a
_GL_FUNCDECL_SYS (vsnprintf, int,
Packit Service a2ae7a
                  (char *str, size_t size, const char *format, va_list args)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((3)));
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_CXXALIAS_SYS (vsnprintf, int,
Packit Service a2ae7a
                  (char *str, size_t size, const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (vsnprintf);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef vsnprintf
Packit Service a2ae7a
# if HAVE_RAW_DECL_VSNPRINTF
Packit Service a2ae7a
_GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - "
Packit Service a2ae7a
                 "use gnulib module vsnprintf for portability");
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#if @GNULIB_VSPRINTF_POSIX@
Packit Service a2ae7a
# if @REPLACE_VSPRINTF@
Packit Service a2ae7a
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit Service a2ae7a
#   define vsprintf rpl_vsprintf
Packit Service a2ae7a
#  endif
Packit Service a2ae7a
_GL_FUNCDECL_RPL (vsprintf, int,
Packit Service a2ae7a
                  (char *str, const char *format, va_list args)
Packit Service a2ae7a
                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
Packit Service a2ae7a
                  _GL_ARG_NONNULL ((1, 2)));
Packit Service a2ae7a
_GL_CXXALIAS_RPL (vsprintf, int,
Packit Service a2ae7a
                  (char *str, const char *format, va_list args));
Packit Service a2ae7a
# else
Packit Service a2ae7a
/* Need to cast, because on Solaris, the third parameter is
Packit Service a2ae7a
                                                       __va_list args
Packit Service a2ae7a
   and GCC's fixincludes did not change this to __gnuc_va_list.  */
Packit Service a2ae7a
_GL_CXXALIAS_SYS_CAST (vsprintf, int,
Packit Service a2ae7a
                       (char *str, const char *format, va_list args));
Packit Service a2ae7a
# endif
Packit Service a2ae7a
_GL_CXXALIASWARN (vsprintf);
Packit Service a2ae7a
#elif defined GNULIB_POSIXCHECK
Packit Service a2ae7a
# undef vsprintf
Packit Service a2ae7a
/* Assume vsprintf is always declared.  */
Packit Service a2ae7a
_GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - "
Packit Service a2ae7a
                 "use gnulib module vsprintf-posix for portable "
Packit Service a2ae7a
                      "POSIX compliance");
Packit Service a2ae7a
#endif
Packit Service a2ae7a
Packit Service a2ae7a
#endif /* _@GUARD_PREFIX@_STDIO_H */
Packit Service a2ae7a
#endif /* _@GUARD_PREFIX@_STDIO_H */
Packit Service a2ae7a
#endif