summaryrefslogtreecommitdiff
path: root/tests/stdio.in.h
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2025-10-18 19:06:52 +0200
committerJörg Frings-Fürst <debian@jff.email>2025-10-18 19:06:52 +0200
commit27dae84ed92f1ef0300263091972338d12e78348 (patch)
tree7c52931f474fafb8a4bd4fd15ca3461c77cdecc2 /tests/stdio.in.h
parent4682deeb62247d34de87f8e777f99e2d337fd377 (diff)
New upstream version 1.4.1upstream/1.4.1upstream
Diffstat (limited to 'tests/stdio.in.h')
-rw-r--r--tests/stdio.in.h73
1 files changed, 58 insertions, 15 deletions
diff --git a/tests/stdio.in.h b/tests/stdio.in.h
index e77798d9..f3ab7969 100644
--- a/tests/stdio.in.h
+++ b/tests/stdio.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <stdio.h>.
- Copyright (C) 2004, 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007-2025 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -20,14 +20,9 @@
#endif
@PRAGMA_COLUMNS@
-#if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H
+#if defined __need_FILE || defined __need___FILE || defined _@GUARD_PREFIX@_ALREADY_INCLUDING_STDIO_H || defined _GL_SKIP_GNULIB_STDIO_H
/* Special invocation convention:
- - Inside glibc header files.
- - On OSF/1 5.1 we have a sequence of nested includes
- <stdio.h> -> <getopt.h> -> <ctype.h> -> <sys/localedef.h> ->
- <sys/lc_core.h> -> <nl_types.h> -> <mesg.h> -> <stdio.h>.
- In this situation, the functions are not yet declared, therefore we cannot
- provide the C++ aliases. */
+ - Inside glibc header files. */
#@INCLUDE_NEXT@ @NEXT_STDIO_H@
@@ -48,12 +43,12 @@
# endif
#endif
-#define _GL_ALREADY_INCLUDING_STDIO_H
+#define _@GUARD_PREFIX@_ALREADY_INCLUDING_STDIO_H
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STDIO_H@
-#undef _GL_ALREADY_INCLUDING_STDIO_H
+#undef _@GUARD_PREFIX@_ALREADY_INCLUDING_STDIO_H
#ifdef _GL_DEFINED__POSIX_C_SOURCE
# undef _GL_DEFINED__POSIX_C_SOURCE
@@ -269,10 +264,6 @@
- with MSVC ucrt: "[-]nan" or "[-]nan(ind)" or "[-]nan(snan)",
- with mingw: "[-]1.#IND" or "[-]1.#QNAN". */
# define _PRINTF_NAN_LEN_MAX 10
-# elif defined __sgi
-/* On IRIX, the output typically is "[-]nan0xNNNNNNNN" with 8 hexadecimal
- digits. */
-# define _PRINTF_NAN_LEN_MAX 14
# else
/* We don't know, but 32 should be a safe maximum. */
# define _PRINTF_NAN_LEN_MAX 32
@@ -280,6 +271,33 @@
#endif
+#if (defined _WIN32 && !defined __CYGWIN__) && !defined _UCRT
+/* Workarounds against msvcrt bugs. */
+_GL_FUNCDECL_SYS (gl_consolesafe_fwrite, size_t,
+ (const void *ptr, size_t size, size_t nmemb, FILE *fp),
+ _GL_ARG_NONNULL ((1, 4)));
+# if defined __MINGW32__
+_GL_FUNCDECL_SYS (gl_consolesafe_fprintf, int,
+ (FILE *restrict fp, const char *restrict format, ...),
+ _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_FUNCDECL_SYS (gl_consolesafe_printf, int,
+ (const char *restrict format, ...),
+ _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2)
+ _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (gl_consolesafe_vfprintf, int,
+ (FILE *restrict fp,
+ const char *restrict format, va_list args),
+ _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_FUNCDECL_SYS (gl_consolesafe_vprintf, int,
+ (const char *restrict format, va_list args),
+ _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0)
+ _GL_ARG_NONNULL ((1)));
+# endif
+#endif
+
+
#if @GNULIB_DZPRINTF@
/* Prints formatted output to file descriptor FD.
Returns the number of bytes written to the file descriptor. Upon
@@ -616,6 +634,11 @@ _GL_CXXALIAS_SYS (fprintf, int,
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (fprintf);
# endif
+#elif defined __MINGW32__ && !defined _UCRT && __USE_MINGW_ANSI_STDIO
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef fprintf
+# define fprintf gl_consolesafe_fprintf
+# endif
#endif
#if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
# if !GNULIB_overrides_fprintf
@@ -945,7 +968,7 @@ _GL_CXXALIAS_SYS (fwrite, size_t,
FILE *restrict stream));
/* Work around bug 11959 when fortifying glibc 2.4 through 2.15
- <https://sourceware.org/bugzilla/show_bug.cgi?id=11959>,
+ <https://sourceware.org/PR11959>,
which sometimes causes an unwanted diagnostic for fwrite calls.
This affects only function declaration attributes under certain
versions of gcc and clang, and is not needed for C++. */
@@ -970,6 +993,11 @@ _GL_EXTERN_C size_t __REDIRECT (rpl_fwrite_unlocked,
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (fwrite);
# endif
+#elif (defined _WIN32 && !defined __CYGWIN__) && !defined _UCRT
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef fwrite
+# define fwrite gl_consolesafe_fwrite
+# endif
#endif
#if @GNULIB_GETC@
@@ -1333,6 +1361,11 @@ _GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...));
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (printf);
# endif
+#elif defined __MINGW32__ && !defined _UCRT && __USE_MINGW_ANSI_STDIO
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef printf
+# define printf gl_consolesafe_printf
+# endif
#endif
#if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK
# if !GNULIB_overrides_printf
@@ -1885,6 +1918,11 @@ _GL_CXXALIAS_SYS_CAST (vfprintf, int,
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (vfprintf);
# endif
+#elif defined __MINGW32__ && !defined _UCRT && __USE_MINGW_ANSI_STDIO
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef vfprintf
+# define vfprintf gl_consolesafe_vfprintf
+# endif
#endif
#if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
# if !GNULIB_overrides_vfprintf
@@ -1966,6 +2004,11 @@ _GL_CXXALIAS_SYS_CAST (vprintf, int,
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (vprintf);
# endif
+#elif defined __MINGW32__ && !defined _UCRT && __USE_MINGW_ANSI_STDIO
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef vprintf
+# define vprintf gl_consolesafe_vprintf
+# endif
#endif
#if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
# if !GNULIB_overrides_vprintf