diff options
Diffstat (limited to 'gl/stdio.in.h')
| -rw-r--r-- | gl/stdio.in.h | 715 |
1 files changed, 541 insertions, 174 deletions
diff --git a/gl/stdio.in.h b/gl/stdio.in.h index 06cbad00..59cbea3d 100644 --- a/gl/stdio.in.h +++ b/gl/stdio.in.h | |||
| @@ -1,19 +1,19 @@ | |||
| 1 | /* A GNU-like <stdio.h>. | 1 | /* A GNU-like <stdio.h>. |
| 2 | 2 | ||
| 3 | Copyright (C) 2004, 2007-2013 Free Software Foundation, Inc. | 3 | Copyright (C) 2004, 2007-2023 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This program is free software; you can redistribute it and/or modify | 5 | This file is free software: you can redistribute it and/or modify |
| 6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU Lesser General Public License as |
| 7 | the Free Software Foundation; either version 3, or (at your option) | 7 | published by the Free Software Foundation; either version 2.1 of the |
| 8 | any later version. | 8 | License, or (at your option) any later version. |
| 9 | 9 | ||
| 10 | This program is distributed in the hope that it will be useful, | 10 | This file is distributed in the hope that it will be useful, |
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 | GNU General Public License for more details. | 13 | GNU Lesser General Public License for more details. |
| 14 | 14 | ||
| 15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU Lesser General Public License |
| 16 | along with this program; if not, see <http://www.gnu.org/licenses/>. */ | 16 | along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
| 17 | 17 | ||
| 18 | #if __GNUC__ >= 3 | 18 | #if __GNUC__ >= 3 |
| 19 | @PRAGMA_SYSTEM_HEADER@ | 19 | @PRAGMA_SYSTEM_HEADER@ |
| @@ -56,36 +56,103 @@ | |||
| 56 | May also define off_t to a 64-bit type on native Windows. */ | 56 | May also define off_t to a 64-bit type on native Windows. */ |
| 57 | #include <sys/types.h> | 57 | #include <sys/types.h> |
| 58 | 58 | ||
| 59 | /* Solaris 10 and NetBSD 7.0 declare renameat in <unistd.h>, not in <stdio.h>. */ | ||
| 60 | /* But in any case avoid namespace pollution on glibc systems. */ | ||
| 61 | #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ | ||
| 62 | && ! defined __GLIBC__ | ||
| 63 | # include <unistd.h> | ||
| 64 | #endif | ||
| 65 | |||
| 66 | /* Android 4.3 declares renameat in <sys/stat.h>, not in <stdio.h>. */ | ||
| 67 | /* But in any case avoid namespace pollution on glibc systems. */ | ||
| 68 | #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ | ||
| 69 | && ! defined __GLIBC__ | ||
| 70 | # include <sys/stat.h> | ||
| 71 | #endif | ||
| 72 | |||
| 73 | /* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>. We must include | ||
| 74 | it before we #define perror rpl_perror. */ | ||
| 75 | /* But in any case avoid namespace pollution on glibc systems. */ | ||
| 76 | #if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ | ||
| 77 | && (defined _WIN32 && ! defined __CYGWIN__) \ | ||
| 78 | && ! defined __GLIBC__ | ||
| 79 | # include <stdlib.h> | ||
| 80 | #endif | ||
| 81 | |||
| 82 | /* MSVC declares 'remove' in <io.h>, not in <stdio.h>. We must include | ||
| 83 | it before we #define remove rpl_remove. */ | ||
| 84 | /* MSVC declares 'rename' in <io.h>, not in <stdio.h>. We must include | ||
| 85 | it before we #define rename rpl_rename. */ | ||
| 86 | /* But in any case avoid namespace pollution on glibc systems. */ | ||
| 87 | #if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ | ||
| 88 | && (defined _WIN32 && ! defined __CYGWIN__) \ | ||
| 89 | && ! defined __GLIBC__ | ||
| 90 | # include <io.h> | ||
| 91 | #endif | ||
| 92 | |||
| 93 | |||
| 94 | /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers | ||
| 95 | that can be freed by passing them as the Ith argument to the | ||
| 96 | function F. */ | ||
| 97 | #ifndef _GL_ATTRIBUTE_DEALLOC | ||
| 98 | # if __GNUC__ >= 11 | ||
| 99 | # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) | ||
| 100 | # else | ||
| 101 | # define _GL_ATTRIBUTE_DEALLOC(f, i) | ||
| 102 | # endif | ||
| 103 | #endif | ||
| 104 | |||
| 59 | /* The __attribute__ feature is available in gcc versions 2.5 and later. | 105 | /* The __attribute__ feature is available in gcc versions 2.5 and later. |
| 60 | The __-protected variants of the attributes 'format' and 'printf' are | 106 | The __-protected variants of the attributes 'format' and 'printf' are |
| 61 | accepted by gcc versions 2.6.4 (effectively 2.7) and later. | 107 | accepted by gcc versions 2.6.4 (effectively 2.7) and later. |
| 62 | We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because | 108 | We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because |
| 63 | gnulib and libintl do '#define printf __printf__' when they override | 109 | gnulib and libintl do '#define printf __printf__' when they override |
| 64 | the 'printf' function. */ | 110 | the 'printf' function. */ |
| 65 | #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) | 111 | #ifndef _GL_ATTRIBUTE_FORMAT |
| 66 | # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) | 112 | # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || defined __clang__ |
| 113 | # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) | ||
| 114 | # else | ||
| 115 | # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ | ||
| 116 | # endif | ||
| 117 | #endif | ||
| 118 | |||
| 119 | /* An __attribute__ __format__ specifier for a function that takes a format | ||
| 120 | string and arguments, where the format string directives are the ones | ||
| 121 | standardized by ISO C99 and POSIX. | ||
| 122 | _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD */ | ||
| 123 | /* __gnu_printf__ is supported in GCC >= 4.4. */ | ||
| 124 | #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) | ||
| 125 | # define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__ | ||
| 67 | #else | 126 | #else |
| 68 | # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ | 127 | # define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__ |
| 69 | #endif | 128 | #endif |
| 70 | 129 | ||
| 71 | /* _GL_ATTRIBUTE_FORMAT_PRINTF | 130 | /* An __attribute__ __format__ specifier for a function that takes a format |
| 131 | string and arguments, where the format string directives are the ones of the | ||
| 132 | system printf(), rather than the ones standardized by ISO C99 and POSIX. | ||
| 133 | _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM */ | ||
| 134 | /* On mingw, Gnulib sets __USE_MINGW_ANSI_STDIO in order to get closer to | ||
| 135 | the standards. The macro GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU indicates | ||
| 136 | whether this change is effective. On older mingw, it is not. */ | ||
| 137 | #if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU | ||
| 138 | # define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD | ||
| 139 | #else | ||
| 140 | # define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM __printf__ | ||
| 141 | #endif | ||
| 142 | |||
| 143 | /* _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD | ||
| 72 | indicates to GCC that the function takes a format string and arguments, | 144 | indicates to GCC that the function takes a format string and arguments, |
| 73 | where the format string directives are the ones standardized by ISO C99 | 145 | where the format string directives are the ones standardized by ISO C99 |
| 74 | and POSIX. */ | 146 | and POSIX. */ |
| 75 | #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) | 147 | #define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \ |
| 76 | # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ | 148 | _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument)) |
| 77 | _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument)) | ||
| 78 | #else | ||
| 79 | # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ | ||
| 80 | _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) | ||
| 81 | #endif | ||
| 82 | 149 | ||
| 83 | /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF, | 150 | /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD, |
| 84 | except that it indicates to GCC that the supported format string directives | 151 | except that it indicates to GCC that the supported format string directives |
| 85 | are the ones of the system printf(), rather than the ones standardized by | 152 | are the ones of the system printf(), rather than the ones standardized by |
| 86 | ISO C99 and POSIX. */ | 153 | ISO C99 and POSIX. */ |
| 87 | #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ | 154 | #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ |
| 88 | _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) | 155 | _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, formatstring_parameter, first_argument)) |
| 89 | 156 | ||
| 90 | /* _GL_ATTRIBUTE_FORMAT_SCANF | 157 | /* _GL_ATTRIBUTE_FORMAT_SCANF |
| 91 | indicates to GCC that the function takes a format string and arguments, | 158 | indicates to GCC that the function takes a format string and arguments, |
| @@ -106,14 +173,6 @@ | |||
| 106 | #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ | 173 | #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ |
| 107 | _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) | 174 | _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) |
| 108 | 175 | ||
| 109 | /* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>. */ | ||
| 110 | /* But in any case avoid namespace pollution on glibc systems. */ | ||
| 111 | #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \ | ||
| 112 | && ! defined __GLIBC__ | ||
| 113 | # include <unistd.h> | ||
| 114 | #endif | ||
| 115 | |||
| 116 | |||
| 117 | /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ | 176 | /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ |
| 118 | 177 | ||
| 119 | /* The definition of _GL_ARG_NONNULL is copied here. */ | 178 | /* The definition of _GL_ARG_NONNULL is copied here. */ |
| @@ -124,23 +183,32 @@ | |||
| 124 | #define _GL_STDIO_STRINGIZE(token) #token | 183 | #define _GL_STDIO_STRINGIZE(token) #token |
| 125 | #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) | 184 | #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) |
| 126 | 185 | ||
| 186 | /* When also using extern inline, suppress the use of static inline in | ||
| 187 | standard headers of problematic Apple configurations, as Libc at | ||
| 188 | least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., | ||
| 189 | <https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>. | ||
| 190 | Perhaps Apple will fix this some day. */ | ||
| 191 | #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ | ||
| 192 | && defined __GNUC__ && defined __STDC__) | ||
| 193 | # undef putc_unlocked | ||
| 194 | #endif | ||
| 127 | 195 | ||
| 128 | #if @GNULIB_DPRINTF@ | 196 | #if @GNULIB_DPRINTF@ |
| 129 | # if @REPLACE_DPRINTF@ | 197 | # if @REPLACE_DPRINTF@ |
| 130 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 198 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 131 | # define dprintf rpl_dprintf | 199 | # define dprintf rpl_dprintf |
| 132 | # endif | 200 | # endif |
| 133 | _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) | 201 | _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...) |
| 134 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) | 202 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) |
| 135 | _GL_ARG_NONNULL ((2))); | 203 | _GL_ARG_NONNULL ((2))); |
| 136 | _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); | 204 | _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...)); |
| 137 | # else | 205 | # else |
| 138 | # if !@HAVE_DPRINTF@ | 206 | # if !@HAVE_DPRINTF@ |
| 139 | _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) | 207 | _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...) |
| 140 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) | 208 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) |
| 141 | _GL_ARG_NONNULL ((2))); | 209 | _GL_ARG_NONNULL ((2))); |
| 142 | # endif | 210 | # endif |
| 143 | _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); | 211 | _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...)); |
| 144 | # endif | 212 | # endif |
| 145 | _GL_CXXALIASWARN (dprintf); | 213 | _GL_CXXALIASWARN (dprintf); |
| 146 | #elif defined GNULIB_POSIXCHECK | 214 | #elif defined GNULIB_POSIXCHECK |
| @@ -162,7 +230,9 @@ _GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); | |||
| 162 | # else | 230 | # else |
| 163 | _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); | 231 | _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); |
| 164 | # endif | 232 | # endif |
| 233 | # if __GLIBC__ >= 2 | ||
| 165 | _GL_CXXALIASWARN (fclose); | 234 | _GL_CXXALIASWARN (fclose); |
| 235 | # endif | ||
| 166 | #elif defined GNULIB_POSIXCHECK | 236 | #elif defined GNULIB_POSIXCHECK |
| 167 | # undef fclose | 237 | # undef fclose |
| 168 | /* Assume fclose is always declared. */ | 238 | /* Assume fclose is always declared. */ |
| @@ -170,24 +240,84 @@ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " | |||
| 170 | "use gnulib module fclose for portable POSIX compliance"); | 240 | "use gnulib module fclose for portable POSIX compliance"); |
| 171 | #endif | 241 | #endif |
| 172 | 242 | ||
| 243 | #if @GNULIB_MDA_FCLOSEALL@ | ||
| 244 | /* On native Windows, map 'fcloseall' to '_fcloseall', so that -loldnames is | ||
| 245 | not required. In C++ with GNULIB_NAMESPACE, avoid differences between | ||
| 246 | platforms by defining GNULIB_NAMESPACE::fcloseall on all platforms that have | ||
| 247 | it. */ | ||
| 248 | # if defined _WIN32 && !defined __CYGWIN__ | ||
| 249 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
| 250 | # undef fcloseall | ||
| 251 | # define fcloseall _fcloseall | ||
| 252 | # endif | ||
| 253 | _GL_CXXALIAS_MDA (fcloseall, int, (void)); | ||
| 254 | # else | ||
| 255 | # if @HAVE_DECL_FCLOSEALL@ | ||
| 256 | # if defined __FreeBSD__ || defined __DragonFly__ | ||
| 257 | _GL_CXXALIAS_SYS (fcloseall, void, (void)); | ||
| 258 | # else | ||
| 259 | _GL_CXXALIAS_SYS (fcloseall, int, (void)); | ||
| 260 | # endif | ||
| 261 | # endif | ||
| 262 | # endif | ||
| 263 | # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCLOSEALL@ | ||
| 264 | _GL_CXXALIASWARN (fcloseall); | ||
| 265 | # endif | ||
| 266 | #endif | ||
| 267 | |||
| 173 | #if @GNULIB_FDOPEN@ | 268 | #if @GNULIB_FDOPEN@ |
| 174 | # if @REPLACE_FDOPEN@ | 269 | # if @REPLACE_FDOPEN@ |
| 175 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 270 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 176 | # undef fdopen | 271 | # undef fdopen |
| 177 | # define fdopen rpl_fdopen | 272 | # define fdopen rpl_fdopen |
| 178 | # endif | 273 | # endif |
| 179 | _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) | 274 | _GL_FUNCDECL_RPL (fdopen, FILE *, |
| 180 | _GL_ARG_NONNULL ((2))); | 275 | (int fd, const char *mode) |
| 276 | _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); | ||
| 181 | _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); | 277 | _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); |
| 278 | # elif defined _WIN32 && !defined __CYGWIN__ | ||
| 279 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
| 280 | # undef fdopen | ||
| 281 | # define fdopen _fdopen | ||
| 282 | # endif | ||
| 283 | _GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); | ||
| 182 | # else | 284 | # else |
| 285 | # if __GNUC__ >= 11 | ||
| 286 | /* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ | ||
| 287 | _GL_FUNCDECL_SYS (fdopen, FILE *, | ||
| 288 | (int fd, const char *mode) | ||
| 289 | _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); | ||
| 290 | # endif | ||
| 183 | _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); | 291 | _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); |
| 184 | # endif | 292 | # endif |
| 185 | _GL_CXXALIASWARN (fdopen); | 293 | _GL_CXXALIASWARN (fdopen); |
| 186 | #elif defined GNULIB_POSIXCHECK | 294 | #else |
| 187 | # undef fdopen | 295 | # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fdopen |
| 296 | /* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ | ||
| 297 | _GL_FUNCDECL_SYS (fdopen, FILE *, | ||
| 298 | (int fd, const char *mode) | ||
| 299 | _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); | ||
| 300 | # endif | ||
| 301 | # if defined GNULIB_POSIXCHECK | ||
| 302 | # undef fdopen | ||
| 188 | /* Assume fdopen is always declared. */ | 303 | /* Assume fdopen is always declared. */ |
| 189 | _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " | 304 | _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " |
| 190 | "use gnulib module fdopen for portability"); | 305 | "use gnulib module fdopen for portability"); |
| 306 | # elif @GNULIB_MDA_FDOPEN@ | ||
| 307 | /* On native Windows, map 'fdopen' to '_fdopen', so that -loldnames is not | ||
| 308 | required. In C++ with GNULIB_NAMESPACE, avoid differences between | ||
| 309 | platforms by defining GNULIB_NAMESPACE::fdopen always. */ | ||
| 310 | # if defined _WIN32 && !defined __CYGWIN__ | ||
| 311 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
| 312 | # undef fdopen | ||
| 313 | # define fdopen _fdopen | ||
| 314 | # endif | ||
| 315 | _GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); | ||
| 316 | # else | ||
| 317 | _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); | ||
| 318 | # endif | ||
| 319 | _GL_CXXALIASWARN (fdopen); | ||
| 320 | # endif | ||
| 191 | #endif | 321 | #endif |
| 192 | 322 | ||
| 193 | #if @GNULIB_FFLUSH@ | 323 | #if @GNULIB_FFLUSH@ |
| @@ -206,7 +336,9 @@ _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); | |||
| 206 | # else | 336 | # else |
| 207 | _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); | 337 | _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); |
| 208 | # endif | 338 | # endif |
| 339 | # if __GLIBC__ >= 2 | ||
| 209 | _GL_CXXALIASWARN (fflush); | 340 | _GL_CXXALIASWARN (fflush); |
| 341 | # endif | ||
| 210 | #elif defined GNULIB_POSIXCHECK | 342 | #elif defined GNULIB_POSIXCHECK |
| 211 | # undef fflush | 343 | # undef fflush |
| 212 | /* Assume fflush is always declared. */ | 344 | /* Assume fflush is always declared. */ |
| @@ -225,7 +357,9 @@ _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); | |||
| 225 | # else | 357 | # else |
| 226 | _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); | 358 | _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); |
| 227 | # endif | 359 | # endif |
| 360 | # if __GLIBC__ >= 2 | ||
| 228 | _GL_CXXALIASWARN (fgetc); | 361 | _GL_CXXALIASWARN (fgetc); |
| 362 | # endif | ||
| 229 | #endif | 363 | #endif |
| 230 | 364 | ||
| 231 | #if @GNULIB_FGETS@ | 365 | #if @GNULIB_FGETS@ |
| @@ -234,33 +368,74 @@ _GL_CXXALIASWARN (fgetc); | |||
| 234 | # undef fgets | 368 | # undef fgets |
| 235 | # define fgets rpl_fgets | 369 | # define fgets rpl_fgets |
| 236 | # endif | 370 | # endif |
| 237 | _GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream) | 371 | _GL_FUNCDECL_RPL (fgets, char *, |
| 238 | _GL_ARG_NONNULL ((1, 3))); | 372 | (char *restrict s, int n, FILE *restrict stream) |
| 239 | _GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream)); | 373 | _GL_ARG_NONNULL ((1, 3))); |
| 374 | _GL_CXXALIAS_RPL (fgets, char *, | ||
| 375 | (char *restrict s, int n, FILE *restrict stream)); | ||
| 240 | # else | 376 | # else |
| 241 | _GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream)); | 377 | _GL_CXXALIAS_SYS (fgets, char *, |
| 378 | (char *restrict s, int n, FILE *restrict stream)); | ||
| 242 | # endif | 379 | # endif |
| 380 | # if __GLIBC__ >= 2 | ||
| 243 | _GL_CXXALIASWARN (fgets); | 381 | _GL_CXXALIASWARN (fgets); |
| 382 | # endif | ||
| 383 | #endif | ||
| 384 | |||
| 385 | #if @GNULIB_MDA_FILENO@ | ||
| 386 | /* On native Windows, map 'fileno' to '_fileno', so that -loldnames is not | ||
| 387 | required. In C++ with GNULIB_NAMESPACE, avoid differences between | ||
| 388 | platforms by defining GNULIB_NAMESPACE::fileno always. */ | ||
| 389 | # if defined _WIN32 && !defined __CYGWIN__ | ||
| 390 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
| 391 | # undef fileno | ||
| 392 | # define fileno _fileno | ||
| 393 | # endif | ||
| 394 | _GL_CXXALIAS_MDA (fileno, int, (FILE *restrict stream)); | ||
| 395 | # else | ||
| 396 | _GL_CXXALIAS_SYS (fileno, int, (FILE *restrict stream)); | ||
| 397 | # endif | ||
| 398 | _GL_CXXALIASWARN (fileno); | ||
| 244 | #endif | 399 | #endif |
| 245 | 400 | ||
| 246 | #if @GNULIB_FOPEN@ | 401 | #if @GNULIB_FOPEN@ |
| 247 | # if @REPLACE_FOPEN@ | 402 | # if (@GNULIB_FOPEN@ && @REPLACE_FOPEN@) \ |
| 403 | || (@GNULIB_FOPEN_GNU@ && @REPLACE_FOPEN_FOR_FOPEN_GNU@) | ||
| 248 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 404 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 249 | # undef fopen | 405 | # undef fopen |
| 250 | # define fopen rpl_fopen | 406 | # define fopen rpl_fopen |
| 251 | # endif | 407 | # endif |
| 252 | _GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode) | 408 | _GL_FUNCDECL_RPL (fopen, FILE *, |
| 253 | _GL_ARG_NONNULL ((1, 2))); | 409 | (const char *restrict filename, const char *restrict mode) |
| 254 | _GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode)); | 410 | _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); |
| 411 | _GL_CXXALIAS_RPL (fopen, FILE *, | ||
| 412 | (const char *restrict filename, const char *restrict mode)); | ||
| 255 | # else | 413 | # else |
| 256 | _GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode)); | 414 | # if __GNUC__ >= 11 |
| 415 | /* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ | ||
| 416 | _GL_FUNCDECL_SYS (fopen, FILE *, | ||
| 417 | (const char *restrict filename, const char *restrict mode) | ||
| 418 | _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); | ||
| 419 | # endif | ||
| 420 | _GL_CXXALIAS_SYS (fopen, FILE *, | ||
| 421 | (const char *restrict filename, const char *restrict mode)); | ||
| 257 | # endif | 422 | # endif |
| 423 | # if __GLIBC__ >= 2 | ||
| 258 | _GL_CXXALIASWARN (fopen); | 424 | _GL_CXXALIASWARN (fopen); |
| 259 | #elif defined GNULIB_POSIXCHECK | 425 | # endif |
| 260 | # undef fopen | 426 | #else |
| 427 | # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fopen | ||
| 428 | /* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ | ||
| 429 | _GL_FUNCDECL_SYS (fopen, FILE *, | ||
| 430 | (const char *restrict filename, const char *restrict mode) | ||
| 431 | _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); | ||
| 432 | # endif | ||
| 433 | # if defined GNULIB_POSIXCHECK | ||
| 434 | # undef fopen | ||
| 261 | /* Assume fopen is always declared. */ | 435 | /* Assume fopen is always declared. */ |
| 262 | _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " | 436 | _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " |
| 263 | "use gnulib module fopen for portability"); | 437 | "use gnulib module fopen for portability"); |
| 438 | # endif | ||
| 264 | #endif | 439 | #endif |
| 265 | 440 | ||
| 266 | #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ | 441 | #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ |
| @@ -271,19 +446,25 @@ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX complian | |||
| 271 | # endif | 446 | # endif |
| 272 | # define GNULIB_overrides_fprintf 1 | 447 | # define GNULIB_overrides_fprintf 1 |
| 273 | # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ | 448 | # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ |
| 274 | _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) | 449 | _GL_FUNCDECL_RPL (fprintf, int, |
| 275 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) | 450 | (FILE *restrict fp, const char *restrict format, ...) |
| 276 | _GL_ARG_NONNULL ((1, 2))); | 451 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) |
| 452 | _GL_ARG_NONNULL ((1, 2))); | ||
| 277 | # else | 453 | # else |
| 278 | _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) | 454 | _GL_FUNCDECL_RPL (fprintf, int, |
| 279 | _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) | 455 | (FILE *restrict fp, const char *restrict format, ...) |
| 280 | _GL_ARG_NONNULL ((1, 2))); | 456 | _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) |
| 457 | _GL_ARG_NONNULL ((1, 2))); | ||
| 281 | # endif | 458 | # endif |
| 282 | _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); | 459 | _GL_CXXALIAS_RPL (fprintf, int, |
| 460 | (FILE *restrict fp, const char *restrict format, ...)); | ||
| 283 | # else | 461 | # else |
| 284 | _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); | 462 | _GL_CXXALIAS_SYS (fprintf, int, |
| 463 | (FILE *restrict fp, const char *restrict format, ...)); | ||
| 285 | # endif | 464 | # endif |
| 465 | # if __GLIBC__ >= 2 | ||
| 286 | _GL_CXXALIASWARN (fprintf); | 466 | _GL_CXXALIASWARN (fprintf); |
| 467 | # endif | ||
| 287 | #endif | 468 | #endif |
| 288 | #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK | 469 | #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK |
| 289 | # if !GNULIB_overrides_fprintf | 470 | # if !GNULIB_overrides_fprintf |
| @@ -334,7 +515,9 @@ _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); | |||
| 334 | # else | 515 | # else |
| 335 | _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); | 516 | _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); |
| 336 | # endif | 517 | # endif |
| 518 | # if __GLIBC__ >= 2 | ||
| 337 | _GL_CXXALIASWARN (fputc); | 519 | _GL_CXXALIASWARN (fputc); |
| 520 | # endif | ||
| 338 | #endif | 521 | #endif |
| 339 | 522 | ||
| 340 | #if @GNULIB_FPUTS@ | 523 | #if @GNULIB_FPUTS@ |
| @@ -343,13 +526,18 @@ _GL_CXXALIASWARN (fputc); | |||
| 343 | # undef fputs | 526 | # undef fputs |
| 344 | # define fputs rpl_fputs | 527 | # define fputs rpl_fputs |
| 345 | # endif | 528 | # endif |
| 346 | _GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream) | 529 | _GL_FUNCDECL_RPL (fputs, int, |
| 347 | _GL_ARG_NONNULL ((1, 2))); | 530 | (const char *restrict string, FILE *restrict stream) |
| 348 | _GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream)); | 531 | _GL_ARG_NONNULL ((1, 2))); |
| 532 | _GL_CXXALIAS_RPL (fputs, int, | ||
| 533 | (const char *restrict string, FILE *restrict stream)); | ||
| 349 | # else | 534 | # else |
| 350 | _GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream)); | 535 | _GL_CXXALIAS_SYS (fputs, int, |
| 536 | (const char *restrict string, FILE *restrict stream)); | ||
| 351 | # endif | 537 | # endif |
| 538 | # if __GLIBC__ >= 2 | ||
| 352 | _GL_CXXALIASWARN (fputs); | 539 | _GL_CXXALIASWARN (fputs); |
| 540 | # endif | ||
| 353 | #endif | 541 | #endif |
| 354 | 542 | ||
| 355 | #if @GNULIB_FREAD@ | 543 | #if @GNULIB_FREAD@ |
| @@ -358,13 +546,21 @@ _GL_CXXALIASWARN (fputs); | |||
| 358 | # undef fread | 546 | # undef fread |
| 359 | # define fread rpl_fread | 547 | # define fread rpl_fread |
| 360 | # endif | 548 | # endif |
| 361 | _GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream) | 549 | _GL_FUNCDECL_RPL (fread, size_t, |
| 362 | _GL_ARG_NONNULL ((4))); | 550 | (void *restrict ptr, size_t s, size_t n, |
| 363 | _GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); | 551 | FILE *restrict stream) |
| 552 | _GL_ARG_NONNULL ((4))); | ||
| 553 | _GL_CXXALIAS_RPL (fread, size_t, | ||
| 554 | (void *restrict ptr, size_t s, size_t n, | ||
| 555 | FILE *restrict stream)); | ||
| 364 | # else | 556 | # else |
| 365 | _GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); | 557 | _GL_CXXALIAS_SYS (fread, size_t, |
| 558 | (void *restrict ptr, size_t s, size_t n, | ||
| 559 | FILE *restrict stream)); | ||
| 366 | # endif | 560 | # endif |
| 561 | # if __GLIBC__ >= 2 | ||
| 367 | _GL_CXXALIASWARN (fread); | 562 | _GL_CXXALIASWARN (fread); |
| 563 | # endif | ||
| 368 | #endif | 564 | #endif |
| 369 | 565 | ||
| 370 | #if @GNULIB_FREOPEN@ | 566 | #if @GNULIB_FREOPEN@ |
| @@ -374,15 +570,20 @@ _GL_CXXALIASWARN (fread); | |||
| 374 | # define freopen rpl_freopen | 570 | # define freopen rpl_freopen |
| 375 | # endif | 571 | # endif |
| 376 | _GL_FUNCDECL_RPL (freopen, FILE *, | 572 | _GL_FUNCDECL_RPL (freopen, FILE *, |
| 377 | (const char *filename, const char *mode, FILE *stream) | 573 | (const char *restrict filename, const char *restrict mode, |
| 574 | FILE *restrict stream) | ||
| 378 | _GL_ARG_NONNULL ((2, 3))); | 575 | _GL_ARG_NONNULL ((2, 3))); |
| 379 | _GL_CXXALIAS_RPL (freopen, FILE *, | 576 | _GL_CXXALIAS_RPL (freopen, FILE *, |
| 380 | (const char *filename, const char *mode, FILE *stream)); | 577 | (const char *restrict filename, const char *restrict mode, |
| 578 | FILE *restrict stream)); | ||
| 381 | # else | 579 | # else |
| 382 | _GL_CXXALIAS_SYS (freopen, FILE *, | 580 | _GL_CXXALIAS_SYS (freopen, FILE *, |
| 383 | (const char *filename, const char *mode, FILE *stream)); | 581 | (const char *restrict filename, const char *restrict mode, |
| 582 | FILE *restrict stream)); | ||
| 384 | # endif | 583 | # endif |
| 584 | # if __GLIBC__ >= 2 | ||
| 385 | _GL_CXXALIASWARN (freopen); | 585 | _GL_CXXALIASWARN (freopen); |
| 586 | # endif | ||
| 386 | #elif defined GNULIB_POSIXCHECK | 587 | #elif defined GNULIB_POSIXCHECK |
| 387 | # undef freopen | 588 | # undef freopen |
| 388 | /* Assume freopen is always declared. */ | 589 | /* Assume freopen is always declared. */ |
| @@ -397,14 +598,19 @@ _GL_WARN_ON_USE (freopen, | |||
| 397 | # undef fscanf | 598 | # undef fscanf |
| 398 | # define fscanf rpl_fscanf | 599 | # define fscanf rpl_fscanf |
| 399 | # endif | 600 | # endif |
| 400 | _GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...) | 601 | _GL_FUNCDECL_RPL (fscanf, int, |
| 401 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) | 602 | (FILE *restrict stream, const char *restrict format, ...) |
| 402 | _GL_ARG_NONNULL ((1, 2))); | 603 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) |
| 403 | _GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...)); | 604 | _GL_ARG_NONNULL ((1, 2))); |
| 605 | _GL_CXXALIAS_RPL (fscanf, int, | ||
| 606 | (FILE *restrict stream, const char *restrict format, ...)); | ||
| 404 | # else | 607 | # else |
| 405 | _GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...)); | 608 | _GL_CXXALIAS_SYS (fscanf, int, |
| 609 | (FILE *restrict stream, const char *restrict format, ...)); | ||
| 406 | # endif | 610 | # endif |
| 611 | # if __GLIBC__ >= 2 | ||
| 407 | _GL_CXXALIASWARN (fscanf); | 612 | _GL_CXXALIASWARN (fscanf); |
| 613 | # endif | ||
| 408 | #endif | 614 | #endif |
| 409 | 615 | ||
| 410 | 616 | ||
| @@ -455,7 +661,9 @@ _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); | |||
| 455 | # else | 661 | # else |
| 456 | _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); | 662 | _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); |
| 457 | # endif | 663 | # endif |
| 664 | # if __GLIBC__ >= 2 | ||
| 458 | _GL_CXXALIASWARN (fseek); | 665 | _GL_CXXALIASWARN (fseek); |
| 666 | # endif | ||
| 459 | #endif | 667 | #endif |
| 460 | 668 | ||
| 461 | #if @GNULIB_FSEEKO@ | 669 | #if @GNULIB_FSEEKO@ |
| @@ -518,7 +726,9 @@ _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); | |||
| 518 | # else | 726 | # else |
| 519 | _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); | 727 | _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); |
| 520 | # endif | 728 | # endif |
| 729 | # if __GLIBC__ >= 2 | ||
| 521 | _GL_CXXALIASWARN (ftell); | 730 | _GL_CXXALIASWARN (ftell); |
| 731 | # endif | ||
| 522 | #endif | 732 | #endif |
| 523 | 733 | ||
| 524 | #if @GNULIB_FTELLO@ | 734 | #if @GNULIB_FTELLO@ |
| @@ -567,16 +777,19 @@ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " | |||
| 567 | # define fwrite rpl_fwrite | 777 | # define fwrite rpl_fwrite |
| 568 | # endif | 778 | # endif |
| 569 | _GL_FUNCDECL_RPL (fwrite, size_t, | 779 | _GL_FUNCDECL_RPL (fwrite, size_t, |
| 570 | (const void *ptr, size_t s, size_t n, FILE *stream) | 780 | (const void *restrict ptr, size_t s, size_t n, |
| 781 | FILE *restrict stream) | ||
| 571 | _GL_ARG_NONNULL ((1, 4))); | 782 | _GL_ARG_NONNULL ((1, 4))); |
| 572 | _GL_CXXALIAS_RPL (fwrite, size_t, | 783 | _GL_CXXALIAS_RPL (fwrite, size_t, |
| 573 | (const void *ptr, size_t s, size_t n, FILE *stream)); | 784 | (const void *restrict ptr, size_t s, size_t n, |
| 785 | FILE *restrict stream)); | ||
| 574 | # else | 786 | # else |
| 575 | _GL_CXXALIAS_SYS (fwrite, size_t, | 787 | _GL_CXXALIAS_SYS (fwrite, size_t, |
| 576 | (const void *ptr, size_t s, size_t n, FILE *stream)); | 788 | (const void *restrict ptr, size_t s, size_t n, |
| 789 | FILE *restrict stream)); | ||
| 577 | 790 | ||
| 578 | /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 | 791 | /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 |
| 579 | <http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>, | 792 | <https://sourceware.org/bugzilla/show_bug.cgi?id=11959>, |
| 580 | which sometimes causes an unwanted diagnostic for fwrite calls. | 793 | which sometimes causes an unwanted diagnostic for fwrite calls. |
| 581 | This affects only function declaration attributes under certain | 794 | This affects only function declaration attributes under certain |
| 582 | versions of gcc and clang, and is not needed for C++. */ | 795 | versions of gcc and clang, and is not needed for C++. */ |
| @@ -598,7 +811,9 @@ extern size_t __REDIRECT (rpl_fwrite_unlocked, | |||
| 598 | # define fwrite_unlocked rpl_fwrite_unlocked | 811 | # define fwrite_unlocked rpl_fwrite_unlocked |
| 599 | # endif | 812 | # endif |
| 600 | # endif | 813 | # endif |
| 814 | # if __GLIBC__ >= 2 | ||
| 601 | _GL_CXXALIASWARN (fwrite); | 815 | _GL_CXXALIASWARN (fwrite); |
| 816 | # endif | ||
| 602 | #endif | 817 | #endif |
| 603 | 818 | ||
| 604 | #if @GNULIB_GETC@ | 819 | #if @GNULIB_GETC@ |
| @@ -612,7 +827,9 @@ _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); | |||
| 612 | # else | 827 | # else |
| 613 | _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); | 828 | _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); |
| 614 | # endif | 829 | # endif |
| 830 | # if __GLIBC__ >= 2 | ||
| 615 | _GL_CXXALIASWARN (getc); | 831 | _GL_CXXALIASWARN (getc); |
| 832 | # endif | ||
| 616 | #endif | 833 | #endif |
| 617 | 834 | ||
| 618 | #if @GNULIB_GETCHAR@ | 835 | #if @GNULIB_GETCHAR@ |
| @@ -626,7 +843,9 @@ _GL_CXXALIAS_RPL (getchar, int, (void)); | |||
| 626 | # else | 843 | # else |
| 627 | _GL_CXXALIAS_SYS (getchar, int, (void)); | 844 | _GL_CXXALIAS_SYS (getchar, int, (void)); |
| 628 | # endif | 845 | # endif |
| 846 | # if __GLIBC__ >= 2 | ||
| 629 | _GL_CXXALIASWARN (getchar); | 847 | _GL_CXXALIASWARN (getchar); |
| 848 | # endif | ||
| 630 | #endif | 849 | #endif |
| 631 | 850 | ||
| 632 | #if @GNULIB_GETDELIM@ | 851 | #if @GNULIB_GETDELIM@ |
| @@ -642,22 +861,26 @@ _GL_CXXALIASWARN (getchar); | |||
| 642 | # define getdelim rpl_getdelim | 861 | # define getdelim rpl_getdelim |
| 643 | # endif | 862 | # endif |
| 644 | _GL_FUNCDECL_RPL (getdelim, ssize_t, | 863 | _GL_FUNCDECL_RPL (getdelim, ssize_t, |
| 645 | (char **lineptr, size_t *linesize, int delimiter, | 864 | (char **restrict lineptr, size_t *restrict linesize, |
| 646 | FILE *stream) | 865 | int delimiter, |
| 866 | FILE *restrict stream) | ||
| 647 | _GL_ARG_NONNULL ((1, 2, 4))); | 867 | _GL_ARG_NONNULL ((1, 2, 4))); |
| 648 | _GL_CXXALIAS_RPL (getdelim, ssize_t, | 868 | _GL_CXXALIAS_RPL (getdelim, ssize_t, |
| 649 | (char **lineptr, size_t *linesize, int delimiter, | 869 | (char **restrict lineptr, size_t *restrict linesize, |
| 650 | FILE *stream)); | 870 | int delimiter, |
| 871 | FILE *restrict stream)); | ||
| 651 | # else | 872 | # else |
| 652 | # if !@HAVE_DECL_GETDELIM@ | 873 | # if !@HAVE_DECL_GETDELIM@ |
| 653 | _GL_FUNCDECL_SYS (getdelim, ssize_t, | 874 | _GL_FUNCDECL_SYS (getdelim, ssize_t, |
| 654 | (char **lineptr, size_t *linesize, int delimiter, | 875 | (char **restrict lineptr, size_t *restrict linesize, |
| 655 | FILE *stream) | 876 | int delimiter, |
| 877 | FILE *restrict stream) | ||
| 656 | _GL_ARG_NONNULL ((1, 2, 4))); | 878 | _GL_ARG_NONNULL ((1, 2, 4))); |
| 657 | # endif | 879 | # endif |
| 658 | _GL_CXXALIAS_SYS (getdelim, ssize_t, | 880 | _GL_CXXALIAS_SYS (getdelim, ssize_t, |
| 659 | (char **lineptr, size_t *linesize, int delimiter, | 881 | (char **restrict lineptr, size_t *restrict linesize, |
| 660 | FILE *stream)); | 882 | int delimiter, |
| 883 | FILE *restrict stream)); | ||
| 661 | # endif | 884 | # endif |
| 662 | _GL_CXXALIASWARN (getdelim); | 885 | _GL_CXXALIASWARN (getdelim); |
| 663 | #elif defined GNULIB_POSIXCHECK | 886 | #elif defined GNULIB_POSIXCHECK |
| @@ -681,18 +904,22 @@ _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " | |||
| 681 | # define getline rpl_getline | 904 | # define getline rpl_getline |
| 682 | # endif | 905 | # endif |
| 683 | _GL_FUNCDECL_RPL (getline, ssize_t, | 906 | _GL_FUNCDECL_RPL (getline, ssize_t, |
| 684 | (char **lineptr, size_t *linesize, FILE *stream) | 907 | (char **restrict lineptr, size_t *restrict linesize, |
| 908 | FILE *restrict stream) | ||
| 685 | _GL_ARG_NONNULL ((1, 2, 3))); | 909 | _GL_ARG_NONNULL ((1, 2, 3))); |
| 686 | _GL_CXXALIAS_RPL (getline, ssize_t, | 910 | _GL_CXXALIAS_RPL (getline, ssize_t, |
| 687 | (char **lineptr, size_t *linesize, FILE *stream)); | 911 | (char **restrict lineptr, size_t *restrict linesize, |
| 912 | FILE *restrict stream)); | ||
| 688 | # else | 913 | # else |
| 689 | # if !@HAVE_DECL_GETLINE@ | 914 | # if !@HAVE_DECL_GETLINE@ |
| 690 | _GL_FUNCDECL_SYS (getline, ssize_t, | 915 | _GL_FUNCDECL_SYS (getline, ssize_t, |
| 691 | (char **lineptr, size_t *linesize, FILE *stream) | 916 | (char **restrict lineptr, size_t *restrict linesize, |
| 917 | FILE *restrict stream) | ||
| 692 | _GL_ARG_NONNULL ((1, 2, 3))); | 918 | _GL_ARG_NONNULL ((1, 2, 3))); |
| 693 | # endif | 919 | # endif |
| 694 | _GL_CXXALIAS_SYS (getline, ssize_t, | 920 | _GL_CXXALIAS_SYS (getline, ssize_t, |
| 695 | (char **lineptr, size_t *linesize, FILE *stream)); | 921 | (char **restrict lineptr, size_t *restrict linesize, |
| 922 | FILE *restrict stream)); | ||
| 696 | # endif | 923 | # endif |
| 697 | # if @HAVE_DECL_GETLINE@ | 924 | # if @HAVE_DECL_GETLINE@ |
| 698 | _GL_CXXALIASWARN (getline); | 925 | _GL_CXXALIASWARN (getline); |
| @@ -709,10 +936,25 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " | |||
| 709 | so any use of gets warrants an unconditional warning; besides, C11 | 936 | so any use of gets warrants an unconditional warning; besides, C11 |
| 710 | removed it. */ | 937 | removed it. */ |
| 711 | #undef gets | 938 | #undef gets |
| 712 | #if HAVE_RAW_DECL_GETS | 939 | #if HAVE_RAW_DECL_GETS && !defined __cplusplus |
| 713 | _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); | 940 | _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); |
| 714 | #endif | 941 | #endif |
| 715 | 942 | ||
| 943 | #if @GNULIB_MDA_GETW@ | ||
| 944 | /* On native Windows, map 'getw' to '_getw', so that -loldnames is not | ||
| 945 | required. In C++ with GNULIB_NAMESPACE, avoid differences between | ||
| 946 | platforms by defining GNULIB_NAMESPACE::getw always. */ | ||
| 947 | # if defined _WIN32 && !defined __CYGWIN__ | ||
| 948 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
| 949 | # undef getw | ||
| 950 | # define getw _getw | ||
| 951 | # endif | ||
| 952 | _GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream)); | ||
| 953 | # else | ||
| 954 | _GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream)); | ||
| 955 | # endif | ||
| 956 | _GL_CXXALIASWARN (getw); | ||
| 957 | #endif | ||
| 716 | 958 | ||
| 717 | #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ | 959 | #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ |
| 718 | struct obstack; | 960 | struct obstack; |
| @@ -727,7 +969,7 @@ struct obstack; | |||
| 727 | # endif | 969 | # endif |
| 728 | _GL_FUNCDECL_RPL (obstack_printf, int, | 970 | _GL_FUNCDECL_RPL (obstack_printf, int, |
| 729 | (struct obstack *obs, const char *format, ...) | 971 | (struct obstack *obs, const char *format, ...) |
| 730 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) | 972 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) |
| 731 | _GL_ARG_NONNULL ((1, 2))); | 973 | _GL_ARG_NONNULL ((1, 2))); |
| 732 | _GL_CXXALIAS_RPL (obstack_printf, int, | 974 | _GL_CXXALIAS_RPL (obstack_printf, int, |
| 733 | (struct obstack *obs, const char *format, ...)); | 975 | (struct obstack *obs, const char *format, ...)); |
| @@ -735,7 +977,7 @@ _GL_CXXALIAS_RPL (obstack_printf, int, | |||
| 735 | # if !@HAVE_DECL_OBSTACK_PRINTF@ | 977 | # if !@HAVE_DECL_OBSTACK_PRINTF@ |
| 736 | _GL_FUNCDECL_SYS (obstack_printf, int, | 978 | _GL_FUNCDECL_SYS (obstack_printf, int, |
| 737 | (struct obstack *obs, const char *format, ...) | 979 | (struct obstack *obs, const char *format, ...) |
| 738 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) | 980 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) |
| 739 | _GL_ARG_NONNULL ((1, 2))); | 981 | _GL_ARG_NONNULL ((1, 2))); |
| 740 | # endif | 982 | # endif |
| 741 | _GL_CXXALIAS_SYS (obstack_printf, int, | 983 | _GL_CXXALIAS_SYS (obstack_printf, int, |
| @@ -748,7 +990,7 @@ _GL_CXXALIASWARN (obstack_printf); | |||
| 748 | # endif | 990 | # endif |
| 749 | _GL_FUNCDECL_RPL (obstack_vprintf, int, | 991 | _GL_FUNCDECL_RPL (obstack_vprintf, int, |
| 750 | (struct obstack *obs, const char *format, va_list args) | 992 | (struct obstack *obs, const char *format, va_list args) |
| 751 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) | 993 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) |
| 752 | _GL_ARG_NONNULL ((1, 2))); | 994 | _GL_ARG_NONNULL ((1, 2))); |
| 753 | _GL_CXXALIAS_RPL (obstack_vprintf, int, | 995 | _GL_CXXALIAS_RPL (obstack_vprintf, int, |
| 754 | (struct obstack *obs, const char *format, va_list args)); | 996 | (struct obstack *obs, const char *format, va_list args)); |
| @@ -756,7 +998,7 @@ _GL_CXXALIAS_RPL (obstack_vprintf, int, | |||
| 756 | # if !@HAVE_DECL_OBSTACK_PRINTF@ | 998 | # if !@HAVE_DECL_OBSTACK_PRINTF@ |
| 757 | _GL_FUNCDECL_SYS (obstack_vprintf, int, | 999 | _GL_FUNCDECL_SYS (obstack_vprintf, int, |
| 758 | (struct obstack *obs, const char *format, va_list args) | 1000 | (struct obstack *obs, const char *format, va_list args) |
| 759 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) | 1001 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) |
| 760 | _GL_ARG_NONNULL ((1, 2))); | 1002 | _GL_ARG_NONNULL ((1, 2))); |
| 761 | # endif | 1003 | # endif |
| 762 | _GL_CXXALIAS_SYS (obstack_vprintf, int, | 1004 | _GL_CXXALIAS_SYS (obstack_vprintf, int, |
| @@ -792,7 +1034,9 @@ _GL_CXXALIAS_RPL (perror, void, (const char *string)); | |||
| 792 | # else | 1034 | # else |
| 793 | _GL_CXXALIAS_SYS (perror, void, (const char *string)); | 1035 | _GL_CXXALIAS_SYS (perror, void, (const char *string)); |
| 794 | # endif | 1036 | # endif |
| 1037 | # if __GLIBC__ >= 2 | ||
| 795 | _GL_CXXALIASWARN (perror); | 1038 | _GL_CXXALIASWARN (perror); |
| 1039 | # endif | ||
| 796 | #elif defined GNULIB_POSIXCHECK | 1040 | #elif defined GNULIB_POSIXCHECK |
| 797 | # undef perror | 1041 | # undef perror |
| 798 | /* Assume perror is always declared. */ | 1042 | /* Assume perror is always declared. */ |
| @@ -806,43 +1050,53 @@ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " | |||
| 806 | # undef popen | 1050 | # undef popen |
| 807 | # define popen rpl_popen | 1051 | # define popen rpl_popen |
| 808 | # endif | 1052 | # endif |
| 809 | _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) | 1053 | _GL_FUNCDECL_RPL (popen, FILE *, |
| 810 | _GL_ARG_NONNULL ((1, 2))); | 1054 | (const char *cmd, const char *mode) |
| 1055 | _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); | ||
| 811 | _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); | 1056 | _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); |
| 812 | # else | 1057 | # else |
| 813 | # if !@HAVE_POPEN@ | 1058 | # if !@HAVE_POPEN@ || __GNUC__ >= 11 |
| 814 | _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) | 1059 | _GL_FUNCDECL_SYS (popen, FILE *, |
| 815 | _GL_ARG_NONNULL ((1, 2))); | 1060 | (const char *cmd, const char *mode) |
| 1061 | _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); | ||
| 816 | # endif | 1062 | # endif |
| 817 | _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); | 1063 | _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); |
| 818 | # endif | 1064 | # endif |
| 819 | _GL_CXXALIASWARN (popen); | 1065 | _GL_CXXALIASWARN (popen); |
| 820 | #elif defined GNULIB_POSIXCHECK | 1066 | #else |
| 821 | # undef popen | 1067 | # if @GNULIB_PCLOSE@ && __GNUC__ >= 11 && !defined popen |
| 822 | # if HAVE_RAW_DECL_POPEN | 1068 | /* For -Wmismatched-dealloc: Associate popen with pclose or rpl_pclose. */ |
| 1069 | _GL_FUNCDECL_SYS (popen, FILE *, | ||
| 1070 | (const char *cmd, const char *mode) | ||
| 1071 | _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); | ||
| 1072 | # endif | ||
| 1073 | # if defined GNULIB_POSIXCHECK | ||
| 1074 | # undef popen | ||
| 1075 | # if HAVE_RAW_DECL_POPEN | ||
| 823 | _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " | 1076 | _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " |
| 824 | "use gnulib module popen or pipe for more portability"); | 1077 | "use gnulib module popen or pipe for more portability"); |
| 1078 | # endif | ||
| 825 | # endif | 1079 | # endif |
| 826 | #endif | 1080 | #endif |
| 827 | 1081 | ||
| 828 | #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ | 1082 | #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ |
| 829 | # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ | 1083 | # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ |
| 830 | || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) | 1084 | || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) |
| 831 | # if defined __GNUC__ | 1085 | # if defined __GNUC__ || defined __clang__ |
| 832 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1086 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 833 | /* Don't break __attribute__((format(printf,M,N))). */ | 1087 | /* Don't break __attribute__((format(printf,M,N))). */ |
| 834 | # define printf __printf__ | 1088 | # define printf __printf__ |
| 835 | # endif | 1089 | # endif |
| 836 | # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ | 1090 | # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ |
| 837 | _GL_FUNCDECL_RPL_1 (__printf__, int, | 1091 | _GL_FUNCDECL_RPL_1 (__printf__, int, |
| 838 | (const char *format, ...) | 1092 | (const char *restrict format, ...) |
| 839 | __asm__ (@ASM_SYMBOL_PREFIX@ | 1093 | __asm__ (@ASM_SYMBOL_PREFIX@ |
| 840 | _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) | 1094 | _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) |
| 841 | _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) | 1095 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) |
| 842 | _GL_ARG_NONNULL ((1))); | 1096 | _GL_ARG_NONNULL ((1))); |
| 843 | # else | 1097 | # else |
| 844 | _GL_FUNCDECL_RPL_1 (__printf__, int, | 1098 | _GL_FUNCDECL_RPL_1 (__printf__, int, |
| 845 | (const char *format, ...) | 1099 | (const char *restrict format, ...) |
| 846 | __asm__ (@ASM_SYMBOL_PREFIX@ | 1100 | __asm__ (@ASM_SYMBOL_PREFIX@ |
| 847 | _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) | 1101 | _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) |
| 848 | _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) | 1102 | _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) |
| @@ -854,16 +1108,18 @@ _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); | |||
| 854 | # define printf rpl_printf | 1108 | # define printf rpl_printf |
| 855 | # endif | 1109 | # endif |
| 856 | _GL_FUNCDECL_RPL (printf, int, | 1110 | _GL_FUNCDECL_RPL (printf, int, |
| 857 | (const char *format, ...) | 1111 | (const char *restrict format, ...) |
| 858 | _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) | 1112 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) |
| 859 | _GL_ARG_NONNULL ((1))); | 1113 | _GL_ARG_NONNULL ((1))); |
| 860 | _GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); | 1114 | _GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...)); |
| 861 | # endif | 1115 | # endif |
| 862 | # define GNULIB_overrides_printf 1 | 1116 | # define GNULIB_overrides_printf 1 |
| 863 | # else | 1117 | # else |
| 864 | _GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); | 1118 | _GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...)); |
| 865 | # endif | 1119 | # endif |
| 1120 | # if __GLIBC__ >= 2 | ||
| 866 | _GL_CXXALIASWARN (printf); | 1121 | _GL_CXXALIASWARN (printf); |
| 1122 | # endif | ||
| 867 | #endif | 1123 | #endif |
| 868 | #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK | 1124 | #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK |
| 869 | # if !GNULIB_overrides_printf | 1125 | # if !GNULIB_overrides_printf |
| @@ -886,7 +1142,9 @@ _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); | |||
| 886 | # else | 1142 | # else |
| 887 | _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); | 1143 | _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); |
| 888 | # endif | 1144 | # endif |
| 1145 | # if __GLIBC__ >= 2 | ||
| 889 | _GL_CXXALIASWARN (putc); | 1146 | _GL_CXXALIASWARN (putc); |
| 1147 | # endif | ||
| 890 | #endif | 1148 | #endif |
| 891 | 1149 | ||
| 892 | #if @GNULIB_PUTCHAR@ | 1150 | #if @GNULIB_PUTCHAR@ |
| @@ -900,7 +1158,9 @@ _GL_CXXALIAS_RPL (putchar, int, (int c)); | |||
| 900 | # else | 1158 | # else |
| 901 | _GL_CXXALIAS_SYS (putchar, int, (int c)); | 1159 | _GL_CXXALIAS_SYS (putchar, int, (int c)); |
| 902 | # endif | 1160 | # endif |
| 1161 | # if __GLIBC__ >= 2 | ||
| 903 | _GL_CXXALIASWARN (putchar); | 1162 | _GL_CXXALIASWARN (putchar); |
| 1163 | # endif | ||
| 904 | #endif | 1164 | #endif |
| 905 | 1165 | ||
| 906 | #if @GNULIB_PUTS@ | 1166 | #if @GNULIB_PUTS@ |
| @@ -914,7 +1174,25 @@ _GL_CXXALIAS_RPL (puts, int, (const char *string)); | |||
| 914 | # else | 1174 | # else |
| 915 | _GL_CXXALIAS_SYS (puts, int, (const char *string)); | 1175 | _GL_CXXALIAS_SYS (puts, int, (const char *string)); |
| 916 | # endif | 1176 | # endif |
| 1177 | # if __GLIBC__ >= 2 | ||
| 917 | _GL_CXXALIASWARN (puts); | 1178 | _GL_CXXALIASWARN (puts); |
| 1179 | # endif | ||
| 1180 | #endif | ||
| 1181 | |||
| 1182 | #if @GNULIB_MDA_PUTW@ | ||
| 1183 | /* On native Windows, map 'putw' to '_putw', so that -loldnames is not | ||
| 1184 | required. In C++ with GNULIB_NAMESPACE, avoid differences between | ||
| 1185 | platforms by defining GNULIB_NAMESPACE::putw always. */ | ||
| 1186 | # if defined _WIN32 && !defined __CYGWIN__ | ||
| 1187 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
| 1188 | # undef putw | ||
| 1189 | # define putw _putw | ||
| 1190 | # endif | ||
| 1191 | _GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream)); | ||
| 1192 | # else | ||
| 1193 | _GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream)); | ||
| 1194 | # endif | ||
| 1195 | _GL_CXXALIASWARN (putw); | ||
| 918 | #endif | 1196 | #endif |
| 919 | 1197 | ||
| 920 | #if @GNULIB_REMOVE@ | 1198 | #if @GNULIB_REMOVE@ |
| @@ -928,7 +1206,9 @@ _GL_CXXALIAS_RPL (remove, int, (const char *name)); | |||
| 928 | # else | 1206 | # else |
| 929 | _GL_CXXALIAS_SYS (remove, int, (const char *name)); | 1207 | _GL_CXXALIAS_SYS (remove, int, (const char *name)); |
| 930 | # endif | 1208 | # endif |
| 1209 | # if __GLIBC__ >= 2 | ||
| 931 | _GL_CXXALIASWARN (remove); | 1210 | _GL_CXXALIASWARN (remove); |
| 1211 | # endif | ||
| 932 | #elif defined GNULIB_POSIXCHECK | 1212 | #elif defined GNULIB_POSIXCHECK |
| 933 | # undef remove | 1213 | # undef remove |
| 934 | /* Assume remove is always declared. */ | 1214 | /* Assume remove is always declared. */ |
| @@ -951,7 +1231,9 @@ _GL_CXXALIAS_RPL (rename, int, | |||
| 951 | _GL_CXXALIAS_SYS (rename, int, | 1231 | _GL_CXXALIAS_SYS (rename, int, |
| 952 | (const char *old_filename, const char *new_filename)); | 1232 | (const char *old_filename, const char *new_filename)); |
| 953 | # endif | 1233 | # endif |
| 1234 | # if __GLIBC__ >= 2 | ||
| 954 | _GL_CXXALIASWARN (rename); | 1235 | _GL_CXXALIASWARN (rename); |
| 1236 | # endif | ||
| 955 | #elif defined GNULIB_POSIXCHECK | 1237 | #elif defined GNULIB_POSIXCHECK |
| 956 | # undef rename | 1238 | # undef rename |
| 957 | /* Assume rename is always declared. */ | 1239 | /* Assume rename is always declared. */ |
| @@ -990,33 +1272,35 @@ _GL_WARN_ON_USE (renameat, "renameat is not portable - " | |||
| 990 | 1272 | ||
| 991 | #if @GNULIB_SCANF@ | 1273 | #if @GNULIB_SCANF@ |
| 992 | # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ | 1274 | # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ |
| 993 | # if defined __GNUC__ | 1275 | # if defined __GNUC__ || defined __clang__ |
| 994 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1276 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 995 | # undef scanf | 1277 | # undef scanf |
| 996 | /* Don't break __attribute__((format(scanf,M,N))). */ | 1278 | /* Don't break __attribute__((format(scanf,M,N))). */ |
| 997 | # define scanf __scanf__ | 1279 | # define scanf __scanf__ |
| 998 | # endif | 1280 | # endif |
| 999 | _GL_FUNCDECL_RPL_1 (__scanf__, int, | 1281 | _GL_FUNCDECL_RPL_1 (__scanf__, int, |
| 1000 | (const char *format, ...) | 1282 | (const char *restrict format, ...) |
| 1001 | __asm__ (@ASM_SYMBOL_PREFIX@ | 1283 | __asm__ (@ASM_SYMBOL_PREFIX@ |
| 1002 | _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) | 1284 | _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) |
| 1003 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) | 1285 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) |
| 1004 | _GL_ARG_NONNULL ((1))); | 1286 | _GL_ARG_NONNULL ((1))); |
| 1005 | _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...)); | 1287 | _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); |
| 1006 | # else | 1288 | # else |
| 1007 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1289 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1008 | # undef scanf | 1290 | # undef scanf |
| 1009 | # define scanf rpl_scanf | 1291 | # define scanf rpl_scanf |
| 1010 | # endif | 1292 | # endif |
| 1011 | _GL_FUNCDECL_RPL (scanf, int, (const char *format, ...) | 1293 | _GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...) |
| 1012 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) | 1294 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) |
| 1013 | _GL_ARG_NONNULL ((1))); | 1295 | _GL_ARG_NONNULL ((1))); |
| 1014 | _GL_CXXALIAS_RPL (scanf, int, (const char *format, ...)); | 1296 | _GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...)); |
| 1015 | # endif | 1297 | # endif |
| 1016 | # else | 1298 | # else |
| 1017 | _GL_CXXALIAS_SYS (scanf, int, (const char *format, ...)); | 1299 | _GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...)); |
| 1018 | # endif | 1300 | # endif |
| 1301 | # if __GLIBC__ >= 2 | ||
| 1019 | _GL_CXXALIASWARN (scanf); | 1302 | _GL_CXXALIASWARN (scanf); |
| 1303 | # endif | ||
| 1020 | #endif | 1304 | #endif |
| 1021 | 1305 | ||
| 1022 | #if @GNULIB_SNPRINTF@ | 1306 | #if @GNULIB_SNPRINTF@ |
| @@ -1024,23 +1308,30 @@ _GL_CXXALIASWARN (scanf); | |||
| 1024 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1308 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1025 | # define snprintf rpl_snprintf | 1309 | # define snprintf rpl_snprintf |
| 1026 | # endif | 1310 | # endif |
| 1311 | # define GNULIB_overrides_snprintf 1 | ||
| 1027 | _GL_FUNCDECL_RPL (snprintf, int, | 1312 | _GL_FUNCDECL_RPL (snprintf, int, |
| 1028 | (char *str, size_t size, const char *format, ...) | 1313 | (char *restrict str, size_t size, |
| 1029 | _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) | 1314 | const char *restrict format, ...) |
| 1315 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) | ||
| 1030 | _GL_ARG_NONNULL ((3))); | 1316 | _GL_ARG_NONNULL ((3))); |
| 1031 | _GL_CXXALIAS_RPL (snprintf, int, | 1317 | _GL_CXXALIAS_RPL (snprintf, int, |
| 1032 | (char *str, size_t size, const char *format, ...)); | 1318 | (char *restrict str, size_t size, |
| 1319 | const char *restrict format, ...)); | ||
| 1033 | # else | 1320 | # else |
| 1034 | # if !@HAVE_DECL_SNPRINTF@ | 1321 | # if !@HAVE_DECL_SNPRINTF@ |
| 1035 | _GL_FUNCDECL_SYS (snprintf, int, | 1322 | _GL_FUNCDECL_SYS (snprintf, int, |
| 1036 | (char *str, size_t size, const char *format, ...) | 1323 | (char *restrict str, size_t size, |
| 1037 | _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) | 1324 | const char *restrict format, ...) |
| 1325 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) | ||
| 1038 | _GL_ARG_NONNULL ((3))); | 1326 | _GL_ARG_NONNULL ((3))); |
| 1039 | # endif | 1327 | # endif |
| 1040 | _GL_CXXALIAS_SYS (snprintf, int, | 1328 | _GL_CXXALIAS_SYS (snprintf, int, |
| 1041 | (char *str, size_t size, const char *format, ...)); | 1329 | (char *restrict str, size_t size, |
| 1330 | const char *restrict format, ...)); | ||
| 1042 | # endif | 1331 | # endif |
| 1332 | # if __GLIBC__ >= 2 | ||
| 1043 | _GL_CXXALIASWARN (snprintf); | 1333 | _GL_CXXALIASWARN (snprintf); |
| 1334 | # endif | ||
| 1044 | #elif defined GNULIB_POSIXCHECK | 1335 | #elif defined GNULIB_POSIXCHECK |
| 1045 | # undef snprintf | 1336 | # undef snprintf |
| 1046 | # if HAVE_RAW_DECL_SNPRINTF | 1337 | # if HAVE_RAW_DECL_SNPRINTF |
| @@ -1063,14 +1354,20 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " | |||
| 1063 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1354 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1064 | # define sprintf rpl_sprintf | 1355 | # define sprintf rpl_sprintf |
| 1065 | # endif | 1356 | # endif |
| 1066 | _GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) | 1357 | # define GNULIB_overrides_sprintf 1 |
| 1067 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) | 1358 | _GL_FUNCDECL_RPL (sprintf, int, |
| 1068 | _GL_ARG_NONNULL ((1, 2))); | 1359 | (char *restrict str, const char *restrict format, ...) |
| 1069 | _GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); | 1360 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) |
| 1361 | _GL_ARG_NONNULL ((1, 2))); | ||
| 1362 | _GL_CXXALIAS_RPL (sprintf, int, | ||
| 1363 | (char *restrict str, const char *restrict format, ...)); | ||
| 1070 | # else | 1364 | # else |
| 1071 | _GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...)); | 1365 | _GL_CXXALIAS_SYS (sprintf, int, |
| 1366 | (char *restrict str, const char *restrict format, ...)); | ||
| 1072 | # endif | 1367 | # endif |
| 1368 | # if __GLIBC__ >= 2 | ||
| 1073 | _GL_CXXALIASWARN (sprintf); | 1369 | _GL_CXXALIASWARN (sprintf); |
| 1370 | # endif | ||
| 1074 | #elif defined GNULIB_POSIXCHECK | 1371 | #elif defined GNULIB_POSIXCHECK |
| 1075 | # undef sprintf | 1372 | # undef sprintf |
| 1076 | /* Assume sprintf is always declared. */ | 1373 | /* Assume sprintf is always declared. */ |
| @@ -1079,22 +1376,53 @@ _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " | |||
| 1079 | "POSIX compliance"); | 1376 | "POSIX compliance"); |
| 1080 | #endif | 1377 | #endif |
| 1081 | 1378 | ||
| 1379 | #if @GNULIB_MDA_TEMPNAM@ | ||
| 1380 | /* On native Windows, map 'tempnam' to '_tempnam', so that -loldnames is not | ||
| 1381 | required. In C++ with GNULIB_NAMESPACE, avoid differences between | ||
| 1382 | platforms by defining GNULIB_NAMESPACE::tempnam always. */ | ||
| 1383 | # if defined _WIN32 && !defined __CYGWIN__ | ||
| 1384 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
| 1385 | # undef tempnam | ||
| 1386 | # define tempnam _tempnam | ||
| 1387 | # endif | ||
| 1388 | _GL_CXXALIAS_MDA (tempnam, char *, (const char *dir, const char *prefix)); | ||
| 1389 | # else | ||
| 1390 | _GL_CXXALIAS_SYS (tempnam, char *, (const char *dir, const char *prefix)); | ||
| 1391 | # endif | ||
| 1392 | _GL_CXXALIASWARN (tempnam); | ||
| 1393 | #endif | ||
| 1394 | |||
| 1082 | #if @GNULIB_TMPFILE@ | 1395 | #if @GNULIB_TMPFILE@ |
| 1083 | # if @REPLACE_TMPFILE@ | 1396 | # if @REPLACE_TMPFILE@ |
| 1084 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1397 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1085 | # define tmpfile rpl_tmpfile | 1398 | # define tmpfile rpl_tmpfile |
| 1086 | # endif | 1399 | # endif |
| 1087 | _GL_FUNCDECL_RPL (tmpfile, FILE *, (void)); | 1400 | _GL_FUNCDECL_RPL (tmpfile, FILE *, (void) |
| 1401 | _GL_ATTRIBUTE_DEALLOC (fclose, 1)); | ||
| 1088 | _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); | 1402 | _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); |
| 1089 | # else | 1403 | # else |
| 1404 | # if __GNUC__ >= 11 | ||
| 1405 | /* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ | ||
| 1406 | _GL_FUNCDECL_SYS (tmpfile, FILE *, (void) | ||
| 1407 | _GL_ATTRIBUTE_DEALLOC (fclose, 1)); | ||
| 1408 | # endif | ||
| 1090 | _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); | 1409 | _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); |
| 1091 | # endif | 1410 | # endif |
| 1411 | # if __GLIBC__ >= 2 | ||
| 1092 | _GL_CXXALIASWARN (tmpfile); | 1412 | _GL_CXXALIASWARN (tmpfile); |
| 1093 | #elif defined GNULIB_POSIXCHECK | 1413 | # endif |
| 1094 | # undef tmpfile | 1414 | #else |
| 1095 | # if HAVE_RAW_DECL_TMPFILE | 1415 | # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined tmpfile |
| 1416 | /* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ | ||
| 1417 | _GL_FUNCDECL_SYS (tmpfile, FILE *, (void) | ||
| 1418 | _GL_ATTRIBUTE_DEALLOC (fclose, 1)); | ||
| 1419 | # endif | ||
| 1420 | # if defined GNULIB_POSIXCHECK | ||
| 1421 | # undef tmpfile | ||
| 1422 | # if HAVE_RAW_DECL_TMPFILE | ||
| 1096 | _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " | 1423 | _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " |
| 1097 | "use gnulib module tmpfile for portability"); | 1424 | "use gnulib module tmpfile for portability"); |
| 1425 | # endif | ||
| 1098 | # endif | 1426 | # endif |
| 1099 | #endif | 1427 | #endif |
| 1100 | 1428 | ||
| @@ -1107,9 +1435,10 @@ _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " | |||
| 1107 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1435 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1108 | # define asprintf rpl_asprintf | 1436 | # define asprintf rpl_asprintf |
| 1109 | # endif | 1437 | # endif |
| 1438 | # define GNULIB_overrides_asprintf | ||
| 1110 | _GL_FUNCDECL_RPL (asprintf, int, | 1439 | _GL_FUNCDECL_RPL (asprintf, int, |
| 1111 | (char **result, const char *format, ...) | 1440 | (char **result, const char *format, ...) |
| 1112 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) | 1441 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) |
| 1113 | _GL_ARG_NONNULL ((1, 2))); | 1442 | _GL_ARG_NONNULL ((1, 2))); |
| 1114 | _GL_CXXALIAS_RPL (asprintf, int, | 1443 | _GL_CXXALIAS_RPL (asprintf, int, |
| 1115 | (char **result, const char *format, ...)); | 1444 | (char **result, const char *format, ...)); |
| @@ -1117,7 +1446,7 @@ _GL_CXXALIAS_RPL (asprintf, int, | |||
| 1117 | # if !@HAVE_VASPRINTF@ | 1446 | # if !@HAVE_VASPRINTF@ |
| 1118 | _GL_FUNCDECL_SYS (asprintf, int, | 1447 | _GL_FUNCDECL_SYS (asprintf, int, |
| 1119 | (char **result, const char *format, ...) | 1448 | (char **result, const char *format, ...) |
| 1120 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) | 1449 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) |
| 1121 | _GL_ARG_NONNULL ((1, 2))); | 1450 | _GL_ARG_NONNULL ((1, 2))); |
| 1122 | # endif | 1451 | # endif |
| 1123 | _GL_CXXALIAS_SYS (asprintf, int, | 1452 | _GL_CXXALIAS_SYS (asprintf, int, |
| @@ -1128,9 +1457,10 @@ _GL_CXXALIASWARN (asprintf); | |||
| 1128 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1457 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1129 | # define vasprintf rpl_vasprintf | 1458 | # define vasprintf rpl_vasprintf |
| 1130 | # endif | 1459 | # endif |
| 1460 | # define GNULIB_overrides_vasprintf 1 | ||
| 1131 | _GL_FUNCDECL_RPL (vasprintf, int, | 1461 | _GL_FUNCDECL_RPL (vasprintf, int, |
| 1132 | (char **result, const char *format, va_list args) | 1462 | (char **result, const char *format, va_list args) |
| 1133 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) | 1463 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) |
| 1134 | _GL_ARG_NONNULL ((1, 2))); | 1464 | _GL_ARG_NONNULL ((1, 2))); |
| 1135 | _GL_CXXALIAS_RPL (vasprintf, int, | 1465 | _GL_CXXALIAS_RPL (vasprintf, int, |
| 1136 | (char **result, const char *format, va_list args)); | 1466 | (char **result, const char *format, va_list args)); |
| @@ -1138,7 +1468,7 @@ _GL_CXXALIAS_RPL (vasprintf, int, | |||
| 1138 | # if !@HAVE_VASPRINTF@ | 1468 | # if !@HAVE_VASPRINTF@ |
| 1139 | _GL_FUNCDECL_SYS (vasprintf, int, | 1469 | _GL_FUNCDECL_SYS (vasprintf, int, |
| 1140 | (char **result, const char *format, va_list args) | 1470 | (char **result, const char *format, va_list args) |
| 1141 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) | 1471 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) |
| 1142 | _GL_ARG_NONNULL ((1, 2))); | 1472 | _GL_ARG_NONNULL ((1, 2))); |
| 1143 | # endif | 1473 | # endif |
| 1144 | _GL_CXXALIAS_SYS (vasprintf, int, | 1474 | _GL_CXXALIAS_SYS (vasprintf, int, |
| @@ -1152,22 +1482,27 @@ _GL_CXXALIASWARN (vasprintf); | |||
| 1152 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1482 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1153 | # define vdprintf rpl_vdprintf | 1483 | # define vdprintf rpl_vdprintf |
| 1154 | # endif | 1484 | # endif |
| 1155 | _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) | 1485 | _GL_FUNCDECL_RPL (vdprintf, int, |
| 1156 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) | 1486 | (int fd, const char *restrict format, va_list args) |
| 1157 | _GL_ARG_NONNULL ((2))); | 1487 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) |
| 1158 | _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); | 1488 | _GL_ARG_NONNULL ((2))); |
| 1489 | _GL_CXXALIAS_RPL (vdprintf, int, | ||
| 1490 | (int fd, const char *restrict format, va_list args)); | ||
| 1159 | # else | 1491 | # else |
| 1160 | # if !@HAVE_VDPRINTF@ | 1492 | # if !@HAVE_VDPRINTF@ |
| 1161 | _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) | 1493 | _GL_FUNCDECL_SYS (vdprintf, int, |
| 1162 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) | 1494 | (int fd, const char *restrict format, va_list args) |
| 1163 | _GL_ARG_NONNULL ((2))); | 1495 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) |
| 1496 | _GL_ARG_NONNULL ((2))); | ||
| 1164 | # endif | 1497 | # endif |
| 1165 | /* Need to cast, because on Solaris, the third parameter will likely be | 1498 | /* Need to cast, because on Solaris, the third parameter will likely be |
| 1166 | __va_list args. */ | 1499 | __va_list args. */ |
| 1167 | _GL_CXXALIAS_SYS_CAST (vdprintf, int, | 1500 | _GL_CXXALIAS_SYS_CAST (vdprintf, int, |
| 1168 | (int fd, const char *format, va_list args)); | 1501 | (int fd, const char *restrict format, va_list args)); |
| 1169 | # endif | 1502 | # endif |
| 1503 | # if __GLIBC__ >= 2 | ||
| 1170 | _GL_CXXALIASWARN (vdprintf); | 1504 | _GL_CXXALIASWARN (vdprintf); |
| 1505 | # endif | ||
| 1171 | #elif defined GNULIB_POSIXCHECK | 1506 | #elif defined GNULIB_POSIXCHECK |
| 1172 | # undef vdprintf | 1507 | # undef vdprintf |
| 1173 | # if HAVE_RAW_DECL_VDPRINTF | 1508 | # if HAVE_RAW_DECL_VDPRINTF |
| @@ -1184,23 +1519,32 @@ _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " | |||
| 1184 | # endif | 1519 | # endif |
| 1185 | # define GNULIB_overrides_vfprintf 1 | 1520 | # define GNULIB_overrides_vfprintf 1 |
| 1186 | # if @GNULIB_VFPRINTF_POSIX@ | 1521 | # if @GNULIB_VFPRINTF_POSIX@ |
| 1187 | _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) | 1522 | _GL_FUNCDECL_RPL (vfprintf, int, |
| 1188 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) | 1523 | (FILE *restrict fp, |
| 1189 | _GL_ARG_NONNULL ((1, 2))); | 1524 | const char *restrict format, va_list args) |
| 1525 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) | ||
| 1526 | _GL_ARG_NONNULL ((1, 2))); | ||
| 1190 | # else | 1527 | # else |
| 1191 | _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) | 1528 | _GL_FUNCDECL_RPL (vfprintf, int, |
| 1192 | _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) | 1529 | (FILE *restrict fp, |
| 1193 | _GL_ARG_NONNULL ((1, 2))); | 1530 | const char *restrict format, va_list args) |
| 1531 | _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) | ||
| 1532 | _GL_ARG_NONNULL ((1, 2))); | ||
| 1194 | # endif | 1533 | # endif |
| 1195 | _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); | 1534 | _GL_CXXALIAS_RPL (vfprintf, int, |
| 1535 | (FILE *restrict fp, | ||
| 1536 | const char *restrict format, va_list args)); | ||
| 1196 | # else | 1537 | # else |
| 1197 | /* Need to cast, because on Solaris, the third parameter is | 1538 | /* Need to cast, because on Solaris, the third parameter is |
| 1198 | __va_list args | 1539 | __va_list args |
| 1199 | and GCC's fixincludes did not change this to __gnuc_va_list. */ | 1540 | and GCC's fixincludes did not change this to __gnuc_va_list. */ |
| 1200 | _GL_CXXALIAS_SYS_CAST (vfprintf, int, | 1541 | _GL_CXXALIAS_SYS_CAST (vfprintf, int, |
| 1201 | (FILE *fp, const char *format, va_list args)); | 1542 | (FILE *restrict fp, |
| 1543 | const char *restrict format, va_list args)); | ||
| 1202 | # endif | 1544 | # endif |
| 1545 | # if __GLIBC__ >= 2 | ||
| 1203 | _GL_CXXALIASWARN (vfprintf); | 1546 | _GL_CXXALIASWARN (vfprintf); |
| 1547 | # endif | ||
| 1204 | #endif | 1548 | #endif |
| 1205 | #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK | 1549 | #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK |
| 1206 | # if !GNULIB_overrides_vfprintf | 1550 | # if !GNULIB_overrides_vfprintf |
| @@ -1219,16 +1563,21 @@ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " | |||
| 1219 | # define vfscanf rpl_vfscanf | 1563 | # define vfscanf rpl_vfscanf |
| 1220 | # endif | 1564 | # endif |
| 1221 | _GL_FUNCDECL_RPL (vfscanf, int, | 1565 | _GL_FUNCDECL_RPL (vfscanf, int, |
| 1222 | (FILE *stream, const char *format, va_list args) | 1566 | (FILE *restrict stream, |
| 1567 | const char *restrict format, va_list args) | ||
| 1223 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) | 1568 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) |
| 1224 | _GL_ARG_NONNULL ((1, 2))); | 1569 | _GL_ARG_NONNULL ((1, 2))); |
| 1225 | _GL_CXXALIAS_RPL (vfscanf, int, | 1570 | _GL_CXXALIAS_RPL (vfscanf, int, |
| 1226 | (FILE *stream, const char *format, va_list args)); | 1571 | (FILE *restrict stream, |
| 1572 | const char *restrict format, va_list args)); | ||
| 1227 | # else | 1573 | # else |
| 1228 | _GL_CXXALIAS_SYS (vfscanf, int, | 1574 | _GL_CXXALIAS_SYS (vfscanf, int, |
| 1229 | (FILE *stream, const char *format, va_list args)); | 1575 | (FILE *restrict stream, |
| 1576 | const char *restrict format, va_list args)); | ||
| 1230 | # endif | 1577 | # endif |
| 1578 | # if __GLIBC__ >= 2 | ||
| 1231 | _GL_CXXALIASWARN (vfscanf); | 1579 | _GL_CXXALIASWARN (vfscanf); |
| 1580 | # endif | ||
| 1232 | #endif | 1581 | #endif |
| 1233 | 1582 | ||
| 1234 | #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ | 1583 | #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ |
| @@ -1239,22 +1588,25 @@ _GL_CXXALIASWARN (vfscanf); | |||
| 1239 | # endif | 1588 | # endif |
| 1240 | # define GNULIB_overrides_vprintf 1 | 1589 | # define GNULIB_overrides_vprintf 1 |
| 1241 | # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ | 1590 | # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ |
| 1242 | _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) | 1591 | _GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) |
| 1243 | _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0) | 1592 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) |
| 1244 | _GL_ARG_NONNULL ((1))); | 1593 | _GL_ARG_NONNULL ((1))); |
| 1245 | # else | 1594 | # else |
| 1246 | _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) | 1595 | _GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) |
| 1247 | _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) | 1596 | _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) |
| 1248 | _GL_ARG_NONNULL ((1))); | 1597 | _GL_ARG_NONNULL ((1))); |
| 1249 | # endif | 1598 | # endif |
| 1250 | _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); | 1599 | _GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args)); |
| 1251 | # else | 1600 | # else |
| 1252 | /* Need to cast, because on Solaris, the second parameter is | 1601 | /* Need to cast, because on Solaris, the second parameter is |
| 1253 | __va_list args | 1602 | __va_list args |
| 1254 | and GCC's fixincludes did not change this to __gnuc_va_list. */ | 1603 | and GCC's fixincludes did not change this to __gnuc_va_list. */ |
| 1255 | _GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args)); | 1604 | _GL_CXXALIAS_SYS_CAST (vprintf, int, |
| 1605 | (const char *restrict format, va_list args)); | ||
| 1256 | # endif | 1606 | # endif |
| 1607 | # if __GLIBC__ >= 2 | ||
| 1257 | _GL_CXXALIASWARN (vprintf); | 1608 | _GL_CXXALIASWARN (vprintf); |
| 1609 | # endif | ||
| 1258 | #endif | 1610 | #endif |
| 1259 | #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK | 1611 | #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK |
| 1260 | # if !GNULIB_overrides_vprintf | 1612 | # if !GNULIB_overrides_vprintf |
| @@ -1272,14 +1624,16 @@ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " | |||
| 1272 | # undef vscanf | 1624 | # undef vscanf |
| 1273 | # define vscanf rpl_vscanf | 1625 | # define vscanf rpl_vscanf |
| 1274 | # endif | 1626 | # endif |
| 1275 | _GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args) | 1627 | _GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args) |
| 1276 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) | 1628 | _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) |
| 1277 | _GL_ARG_NONNULL ((1))); | 1629 | _GL_ARG_NONNULL ((1))); |
| 1278 | _GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args)); | 1630 | _GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args)); |
| 1279 | # else | 1631 | # else |
| 1280 | _GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args)); | 1632 | _GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args)); |
| 1281 | # endif | 1633 | # endif |
| 1634 | # if __GLIBC__ >= 2 | ||
| 1282 | _GL_CXXALIASWARN (vscanf); | 1635 | _GL_CXXALIASWARN (vscanf); |
| 1636 | # endif | ||
| 1283 | #endif | 1637 | #endif |
| 1284 | 1638 | ||
| 1285 | #if @GNULIB_VSNPRINTF@ | 1639 | #if @GNULIB_VSNPRINTF@ |
| @@ -1287,23 +1641,30 @@ _GL_CXXALIASWARN (vscanf); | |||
| 1287 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1641 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1288 | # define vsnprintf rpl_vsnprintf | 1642 | # define vsnprintf rpl_vsnprintf |
| 1289 | # endif | 1643 | # endif |
| 1644 | # define GNULIB_overrides_vsnprintf 1 | ||
| 1290 | _GL_FUNCDECL_RPL (vsnprintf, int, | 1645 | _GL_FUNCDECL_RPL (vsnprintf, int, |
| 1291 | (char *str, size_t size, const char *format, va_list args) | 1646 | (char *restrict str, size_t size, |
| 1292 | _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) | 1647 | const char *restrict format, va_list args) |
| 1648 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) | ||
| 1293 | _GL_ARG_NONNULL ((3))); | 1649 | _GL_ARG_NONNULL ((3))); |
| 1294 | _GL_CXXALIAS_RPL (vsnprintf, int, | 1650 | _GL_CXXALIAS_RPL (vsnprintf, int, |
| 1295 | (char *str, size_t size, const char *format, va_list args)); | 1651 | (char *restrict str, size_t size, |
| 1652 | const char *restrict format, va_list args)); | ||
| 1296 | # else | 1653 | # else |
| 1297 | # if !@HAVE_DECL_VSNPRINTF@ | 1654 | # if !@HAVE_DECL_VSNPRINTF@ |
| 1298 | _GL_FUNCDECL_SYS (vsnprintf, int, | 1655 | _GL_FUNCDECL_SYS (vsnprintf, int, |
| 1299 | (char *str, size_t size, const char *format, va_list args) | 1656 | (char *restrict str, size_t size, |
| 1300 | _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) | 1657 | const char *restrict format, va_list args) |
| 1658 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) | ||
| 1301 | _GL_ARG_NONNULL ((3))); | 1659 | _GL_ARG_NONNULL ((3))); |
| 1302 | # endif | 1660 | # endif |
| 1303 | _GL_CXXALIAS_SYS (vsnprintf, int, | 1661 | _GL_CXXALIAS_SYS (vsnprintf, int, |
| 1304 | (char *str, size_t size, const char *format, va_list args)); | 1662 | (char *restrict str, size_t size, |
| 1663 | const char *restrict format, va_list args)); | ||
| 1305 | # endif | 1664 | # endif |
| 1665 | # if __GLIBC__ >= 2 | ||
| 1306 | _GL_CXXALIASWARN (vsnprintf); | 1666 | _GL_CXXALIASWARN (vsnprintf); |
| 1667 | # endif | ||
| 1307 | #elif defined GNULIB_POSIXCHECK | 1668 | #elif defined GNULIB_POSIXCHECK |
| 1308 | # undef vsnprintf | 1669 | # undef vsnprintf |
| 1309 | # if HAVE_RAW_DECL_VSNPRINTF | 1670 | # if HAVE_RAW_DECL_VSNPRINTF |
| @@ -1317,20 +1678,26 @@ _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " | |||
| 1317 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 1678 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
| 1318 | # define vsprintf rpl_vsprintf | 1679 | # define vsprintf rpl_vsprintf |
| 1319 | # endif | 1680 | # endif |
| 1681 | # define GNULIB_overrides_vsprintf 1 | ||
| 1320 | _GL_FUNCDECL_RPL (vsprintf, int, | 1682 | _GL_FUNCDECL_RPL (vsprintf, int, |
| 1321 | (char *str, const char *format, va_list args) | 1683 | (char *restrict str, |
| 1322 | _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) | 1684 | const char *restrict format, va_list args) |
| 1685 | _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) | ||
| 1323 | _GL_ARG_NONNULL ((1, 2))); | 1686 | _GL_ARG_NONNULL ((1, 2))); |
| 1324 | _GL_CXXALIAS_RPL (vsprintf, int, | 1687 | _GL_CXXALIAS_RPL (vsprintf, int, |
| 1325 | (char *str, const char *format, va_list args)); | 1688 | (char *restrict str, |
| 1689 | const char *restrict format, va_list args)); | ||
| 1326 | # else | 1690 | # else |
| 1327 | /* Need to cast, because on Solaris, the third parameter is | 1691 | /* Need to cast, because on Solaris, the third parameter is |
| 1328 | __va_list args | 1692 | __va_list args |
| 1329 | and GCC's fixincludes did not change this to __gnuc_va_list. */ | 1693 | and GCC's fixincludes did not change this to __gnuc_va_list. */ |
| 1330 | _GL_CXXALIAS_SYS_CAST (vsprintf, int, | 1694 | _GL_CXXALIAS_SYS_CAST (vsprintf, int, |
| 1331 | (char *str, const char *format, va_list args)); | 1695 | (char *restrict str, |
| 1696 | const char *restrict format, va_list args)); | ||
| 1332 | # endif | 1697 | # endif |
| 1698 | # if __GLIBC__ >= 2 | ||
| 1333 | _GL_CXXALIASWARN (vsprintf); | 1699 | _GL_CXXALIASWARN (vsprintf); |
| 1700 | # endif | ||
| 1334 | #elif defined GNULIB_POSIXCHECK | 1701 | #elif defined GNULIB_POSIXCHECK |
| 1335 | # undef vsprintf | 1702 | # undef vsprintf |
| 1336 | /* Assume vsprintf is always declared. */ | 1703 | /* Assume vsprintf is always declared. */ |
