1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #if __GNUC__ >= 3
19 @PRAGMA_SYSTEM_HEADER@
20 #endif
21 @PRAGMA_COLUMNS@
22
23 #if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H
24
25
26
27
28
29
30
31
32 #@INCLUDE_NEXT@ @NEXT_STDIO_H@
33
34 #else
35
36
37 #ifndef _@GUARD_PREFIX@_STDIO_H
38
39 #define _GL_ALREADY_INCLUDING_STDIO_H
40
41
42 #@INCLUDE_NEXT@ @NEXT_STDIO_H@
43
44 #undef _GL_ALREADY_INCLUDING_STDIO_H
45
46 #ifndef _@GUARD_PREFIX@_STDIO_H
47 #define _@GUARD_PREFIX@_STDIO_H
48
49
50 #include <stdarg.h>
51
52 #include <stddef.h>
53
54
55
56
57 #include <sys/types.h>
58
59
60
61 #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \
62 && ! defined __GLIBC__
63 # include <unistd.h>
64 #endif
65
66
67
68 #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
69 && ! defined __GLIBC__
70 # include <sys/stat.h>
71 #endif
72
73
74
75
76 #if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \
77 && (defined _WIN32 && ! defined __CYGWIN__) \
78 && ! defined __GLIBC__
79 # include <stdlib.h>
80 #endif
81
82
83
84
85
86
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
95
96
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
105
106
107
108
109
110
111 #ifndef _GL_ATTRIBUTE_FORMAT
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)
116 # endif
117 #endif
118
119
120
121
122
123
124 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
125 # define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__
126 #else
127 # define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__
128 #endif
129
130
131
132
133
134
135
136
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
144
145
146
147 #define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \
148 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument))
149
150
151
152
153
154 #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
155 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, formatstring_parameter, first_argument))
156
157
158
159
160
161 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
162 # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
163 _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument))
164 #else
165 # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
166 _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
167 #endif
168
169
170
171
172
173 #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \
174 _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
175
176
177
178
179
180
181
182
183 #define _GL_STDIO_STRINGIZE(token) #token
184 #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token)
185
186
187
188
189
190
191 #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
192 && defined __GNUC__ && defined __STDC__)
193 # undef putc_unlocked
194 #endif
195
196 #if @GNULIB_DPRINTF@
197 # if @REPLACE_DPRINTF@
198 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
199 # define dprintf rpl_dprintf
200 # endif
201 _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...)
202 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
203 _GL_ARG_NONNULL ((2)));
204 _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...));
205 # else
206 # if !@HAVE_DPRINTF@
207 _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...)
208 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
209 _GL_ARG_NONNULL ((2)));
210 # endif
211 _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...));
212 # endif
213 _GL_CXXALIASWARN (dprintf);
214 #elif defined GNULIB_POSIXCHECK
215 # undef dprintf
216 # if HAVE_RAW_DECL_DPRINTF
217 _GL_WARN_ON_USE (dprintf, "dprintf is unportable - "
218 "use gnulib module dprintf for portability");
219 # endif
220 #endif
221
222 #if @GNULIB_FCLOSE@
223
224 # if @REPLACE_FCLOSE@
225 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
226 # define fclose rpl_fclose
227 # endif
228 _GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
229 _GL_CXXALIAS_RPL (fclose, int, (FILE *stream));
230 # else
231 _GL_CXXALIAS_SYS (fclose, int, (FILE *stream));
232 # endif
233 # if __GLIBC__ >= 2
234 _GL_CXXALIASWARN (fclose);
235 # endif
236 #elif defined GNULIB_POSIXCHECK
237 # undef fclose
238
239 _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - "
240 "use gnulib module fclose for portable POSIX compliance");
241 #endif
242
243 #if @GNULIB_MDA_FCLOSEALL@
244
245
246
247
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
268 #if @GNULIB_FDOPEN@
269 # if @REPLACE_FDOPEN@
270 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
271 # undef fdopen
272 # define fdopen rpl_fdopen
273 # endif
274 _GL_FUNCDECL_RPL (fdopen, FILE *,
275 (int fd, const char *mode)
276 _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1));
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));
284 # else
285 # if __GNUC__ >= 11
286
287 _GL_FUNCDECL_SYS (fdopen, FILE *,
288 (int fd, const char *mode)
289 _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1));
290 # endif
291 _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
292 # endif
293 _GL_CXXALIASWARN (fdopen);
294 #else
295 # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fdopen
296
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
303
304 _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - "
305 "use gnulib module fdopen for portability");
306 # elif @GNULIB_MDA_FDOPEN@
307
308
309
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
321 #endif
322
323 #if @GNULIB_FFLUSH@
324
325
326
327
328
329
330 # if @REPLACE_FFLUSH@
331 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
332 # define fflush rpl_fflush
333 # endif
334 _GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream));
335 _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream));
336 # else
337 _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream));
338 # endif
339 # if __GLIBC__ >= 2
340 _GL_CXXALIASWARN (fflush);
341 # endif
342 #elif defined GNULIB_POSIXCHECK
343 # undef fflush
344
345 _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
346 "use gnulib module fflush for portable POSIX compliance");
347 #endif
348
349 #if @GNULIB_FGETC@
350 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
351 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
352 # undef fgetc
353 # define fgetc rpl_fgetc
354 # endif
355 _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
356 _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream));
357 # else
358 _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream));
359 # endif
360 # if __GLIBC__ >= 2
361 _GL_CXXALIASWARN (fgetc);
362 # endif
363 #endif
364
365 #if @GNULIB_FGETS@
366 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
367 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
368 # undef fgets
369 # define fgets rpl_fgets
370 # endif
371 _GL_FUNCDECL_RPL (fgets, char *,
372 (char *restrict s, int n, FILE *restrict stream)
373 _GL_ARG_NONNULL ((1, 3)));
374 _GL_CXXALIAS_RPL (fgets, char *,
375 (char *restrict s, int n, FILE *restrict stream));
376 # else
377 _GL_CXXALIAS_SYS (fgets, char *,
378 (char *restrict s, int n, FILE *restrict stream));
379 # endif
380 # if __GLIBC__ >= 2
381 _GL_CXXALIASWARN (fgets);
382 # endif
383 #endif
384
385 #if @GNULIB_MDA_FILENO@
386
387
388
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);
399 #endif
400
401 #if @GNULIB_FOPEN@
402 # if @REPLACE_FOPEN@
403 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
404 # undef fopen
405 # define fopen rpl_fopen
406 # endif
407 _GL_FUNCDECL_RPL (fopen, FILE *,
408 (const char *restrict filename, const char *restrict mode)
409 _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1));
410 _GL_CXXALIAS_RPL (fopen, FILE *,
411 (const char *restrict filename, const char *restrict mode));
412 # else
413 # if __GNUC__ >= 11
414
415 _GL_FUNCDECL_SYS (fopen, FILE *,
416 (const char *restrict filename, const char *restrict mode)
417 _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1));
418 # endif
419 _GL_CXXALIAS_SYS (fopen, FILE *,
420 (const char *restrict filename, const char *restrict mode));
421 # endif
422 # if __GLIBC__ >= 2
423 _GL_CXXALIASWARN (fopen);
424 # endif
425 #else
426 # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fopen
427
428 _GL_FUNCDECL_SYS (fopen, FILE *,
429 (const char *restrict filename, const char *restrict mode)
430 _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1));
431 # endif
432 # if defined GNULIB_POSIXCHECK
433 # undef fopen
434
435 _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - "
436 "use gnulib module fopen for portability");
437 # endif
438 #endif
439
440 #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@
441 # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \
442 || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
443 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
444 # define fprintf rpl_fprintf
445 # endif
446 # define GNULIB_overrides_fprintf 1
447 # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
448 _GL_FUNCDECL_RPL (fprintf, int,
449 (FILE *restrict fp, const char *restrict format, ...)
450 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
451 _GL_ARG_NONNULL ((1, 2)));
452 # else
453 _GL_FUNCDECL_RPL (fprintf, int,
454 (FILE *restrict fp, const char *restrict format, ...)
455 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3)
456 _GL_ARG_NONNULL ((1, 2)));
457 # endif
458 _GL_CXXALIAS_RPL (fprintf, int,
459 (FILE *restrict fp, const char *restrict format, ...));
460 # else
461 _GL_CXXALIAS_SYS (fprintf, int,
462 (FILE *restrict fp, const char *restrict format, ...));
463 # endif
464 # if __GLIBC__ >= 2
465 _GL_CXXALIASWARN (fprintf);
466 # endif
467 #endif
468 #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
469 # if !GNULIB_overrides_fprintf
470 # undef fprintf
471 # endif
472
473 _GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - "
474 "use gnulib module fprintf-posix for portable "
475 "POSIX compliance");
476 #endif
477
478 #if @GNULIB_FPURGE@
479
480
481
482
483
484
485 # if @REPLACE_FPURGE@
486 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
487 # define fpurge rpl_fpurge
488 # endif
489 _GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1)));
490 _GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream));
491 # else
492 # if !@HAVE_DECL_FPURGE@
493 _GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1)));
494 # endif
495 _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream));
496 # endif
497 _GL_CXXALIASWARN (fpurge);
498 #elif defined GNULIB_POSIXCHECK
499 # undef fpurge
500 # if HAVE_RAW_DECL_FPURGE
501 _GL_WARN_ON_USE (fpurge, "fpurge is not always present - "
502 "use gnulib module fpurge for portability");
503 # endif
504 #endif
505
506 #if @GNULIB_FPUTC@
507 # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
508 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
509 # undef fputc
510 # define fputc rpl_fputc
511 # endif
512 _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2)));
513 _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream));
514 # else
515 _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream));
516 # endif
517 # if __GLIBC__ >= 2
518 _GL_CXXALIASWARN (fputc);
519 # endif
520 #endif
521
522 #if @GNULIB_FPUTS@
523 # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
524 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
525 # undef fputs
526 # define fputs rpl_fputs
527 # endif
528 _GL_FUNCDECL_RPL (fputs, int,
529 (const char *restrict string, FILE *restrict stream)
530 _GL_ARG_NONNULL ((1, 2)));
531 _GL_CXXALIAS_RPL (fputs, int,
532 (const char *restrict string, FILE *restrict stream));
533 # else
534 _GL_CXXALIAS_SYS (fputs, int,
535 (const char *restrict string, FILE *restrict stream));
536 # endif
537 # if __GLIBC__ >= 2
538 _GL_CXXALIASWARN (fputs);
539 # endif
540 #endif
541
542 #if @GNULIB_FREAD@
543 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
544 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
545 # undef fread
546 # define fread rpl_fread
547 # endif
548 _GL_FUNCDECL_RPL (fread, size_t,
549 (void *restrict ptr, size_t s, size_t n,
550 FILE *restrict stream)
551 _GL_ARG_NONNULL ((4)));
552 _GL_CXXALIAS_RPL (fread, size_t,
553 (void *restrict ptr, size_t s, size_t n,
554 FILE *restrict stream));
555 # else
556 _GL_CXXALIAS_SYS (fread, size_t,
557 (void *restrict ptr, size_t s, size_t n,
558 FILE *restrict stream));
559 # endif
560 # if __GLIBC__ >= 2
561 _GL_CXXALIASWARN (fread);
562 # endif
563 #endif
564
565 #if @GNULIB_FREOPEN@
566 # if @REPLACE_FREOPEN@
567 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
568 # undef freopen
569 # define freopen rpl_freopen
570 # endif
571 _GL_FUNCDECL_RPL (freopen, FILE *,
572 (const char *restrict filename, const char *restrict mode,
573 FILE *restrict stream)
574 _GL_ARG_NONNULL ((2, 3)));
575 _GL_CXXALIAS_RPL (freopen, FILE *,
576 (const char *restrict filename, const char *restrict mode,
577 FILE *restrict stream));
578 # else
579 _GL_CXXALIAS_SYS (freopen, FILE *,
580 (const char *restrict filename, const char *restrict mode,
581 FILE *restrict stream));
582 # endif
583 # if __GLIBC__ >= 2
584 _GL_CXXALIASWARN (freopen);
585 # endif
586 #elif defined GNULIB_POSIXCHECK
587 # undef freopen
588
589 _GL_WARN_ON_USE (freopen,
590 "freopen on native Windows platforms is not POSIX compliant - "
591 "use gnulib module freopen for portability");
592 #endif
593
594 #if @GNULIB_FSCANF@
595 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
596 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
597 # undef fscanf
598 # define fscanf rpl_fscanf
599 # endif
600 _GL_FUNCDECL_RPL (fscanf, int,
601 (FILE *restrict stream, const char *restrict format, ...)
602 _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3)
603 _GL_ARG_NONNULL ((1, 2)));
604 _GL_CXXALIAS_RPL (fscanf, int,
605 (FILE *restrict stream, const char *restrict format, ...));
606 # else
607 _GL_CXXALIAS_SYS (fscanf, int,
608 (FILE *restrict stream, const char *restrict format, ...));
609 # endif
610 # if __GLIBC__ >= 2
611 _GL_CXXALIASWARN (fscanf);
612 # endif
613 #endif
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647 #if @GNULIB_FSEEK@
648 # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES
649 # define _GL_FSEEK_WARN
650 # undef fseek
651 # endif
652 # if @REPLACE_FSEEK@
653 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
654 # undef fseek
655 # define fseek rpl_fseek
656 # endif
657 _GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence)
658 _GL_ARG_NONNULL ((1)));
659 _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence));
660 # else
661 _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence));
662 # endif
663 # if __GLIBC__ >= 2
664 _GL_CXXALIASWARN (fseek);
665 # endif
666 #endif
667
668 #if @GNULIB_FSEEKO@
669 # if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES
670 # define _GL_FSEEK_WARN
671 # undef fseek
672 # endif
673 # if @REPLACE_FSEEKO@
674
675
676 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
677 # undef fseeko
678 # define fseeko rpl_fseeko
679 # endif
680 _GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)
681 _GL_ARG_NONNULL ((1)));
682 _GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence));
683 # else
684 # if ! @HAVE_DECL_FSEEKO@
685 _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)
686 _GL_ARG_NONNULL ((1)));
687 # endif
688 _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence));
689 # endif
690 _GL_CXXALIASWARN (fseeko);
691 #elif defined GNULIB_POSIXCHECK
692 # define _GL_FSEEK_WARN
693 # undef fseek
694 # undef fseeko
695 # if HAVE_RAW_DECL_FSEEKO
696 _GL_WARN_ON_USE (fseeko, "fseeko is unportable - "
697 "use gnulib module fseeko for portability");
698 # endif
699 #endif
700
701 #ifdef _GL_FSEEK_WARN
702 # undef _GL_FSEEK_WARN
703
704
705 _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB "
706 "on 32-bit platforms - "
707 "use fseeko function for handling of large files");
708 #endif
709
710
711
712
713 #if @GNULIB_FTELL@
714 # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES
715 # define _GL_FTELL_WARN
716 # undef ftell
717 # endif
718 # if @REPLACE_FTELL@
719 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
720 # undef ftell
721 # define ftell rpl_ftell
722 # endif
723 _GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1)));
724 _GL_CXXALIAS_RPL (ftell, long, (FILE *fp));
725 # else
726 _GL_CXXALIAS_SYS (ftell, long, (FILE *fp));
727 # endif
728 # if __GLIBC__ >= 2
729 _GL_CXXALIASWARN (ftell);
730 # endif
731 #endif
732
733 #if @GNULIB_FTELLO@
734 # if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES
735 # define _GL_FTELL_WARN
736 # undef ftell
737 # endif
738 # if @REPLACE_FTELLO@
739 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
740 # undef ftello
741 # define ftello rpl_ftello
742 # endif
743 _GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
744 _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp));
745 # else
746 # if ! @HAVE_DECL_FTELLO@
747 _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
748 # endif
749 _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp));
750 # endif
751 _GL_CXXALIASWARN (ftello);
752 #elif defined GNULIB_POSIXCHECK
753 # define _GL_FTELL_WARN
754 # undef ftell
755 # undef ftello
756 # if HAVE_RAW_DECL_FTELLO
757 _GL_WARN_ON_USE (ftello, "ftello is unportable - "
758 "use gnulib module ftello for portability");
759 # endif
760 #endif
761
762 #ifdef _GL_FTELL_WARN
763 # undef _GL_FTELL_WARN
764
765
766 _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB "
767 "on 32-bit platforms - "
768 "use ftello function for handling of large files");
769 #endif
770
771
772 #if @GNULIB_FWRITE@
773 # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
774 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
775 # undef fwrite
776 # define fwrite rpl_fwrite
777 # endif
778 _GL_FUNCDECL_RPL (fwrite, size_t,
779 (const void *restrict ptr, size_t s, size_t n,
780 FILE *restrict stream)
781 _GL_ARG_NONNULL ((1, 4)));
782 _GL_CXXALIAS_RPL (fwrite, size_t,
783 (const void *restrict ptr, size_t s, size_t n,
784 FILE *restrict stream));
785 # else
786 _GL_CXXALIAS_SYS (fwrite, size_t,
787 (const void *restrict ptr, size_t s, size_t n,
788 FILE *restrict stream));
789
790
791
792
793
794
795 # if (0 < __USE_FORTIFY_LEVEL \
796 && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \
797 && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \
798 && !defined __cplusplus)
799 # undef fwrite
800 # undef fwrite_unlocked
801 extern size_t __REDIRECT (rpl_fwrite,
802 (const void *__restrict, size_t, size_t,
803 FILE *__restrict),
804 fwrite);
805 extern size_t __REDIRECT (rpl_fwrite_unlocked,
806 (const void *__restrict, size_t, size_t,
807 FILE *__restrict),
808 fwrite_unlocked);
809 # define fwrite rpl_fwrite
810 # define fwrite_unlocked rpl_fwrite_unlocked
811 # endif
812 # endif
813 # if __GLIBC__ >= 2
814 _GL_CXXALIASWARN (fwrite);
815 # endif
816 #endif
817
818 #if @GNULIB_GETC@
819 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
820 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
821 # undef getc
822 # define getc rpl_fgetc
823 # endif
824 _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
825 _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream));
826 # else
827 _GL_CXXALIAS_SYS (getc, int, (FILE *stream));
828 # endif
829 # if __GLIBC__ >= 2
830 _GL_CXXALIASWARN (getc);
831 # endif
832 #endif
833
834 #if @GNULIB_GETCHAR@
835 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
836 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
837 # undef getchar
838 # define getchar rpl_getchar
839 # endif
840 _GL_FUNCDECL_RPL (getchar, int, (void));
841 _GL_CXXALIAS_RPL (getchar, int, (void));
842 # else
843 _GL_CXXALIAS_SYS (getchar, int, (void));
844 # endif
845 # if __GLIBC__ >= 2
846 _GL_CXXALIASWARN (getchar);
847 # endif
848 #endif
849
850 #if @GNULIB_GETDELIM@
851
852
853
854
855
856
857 # if @REPLACE_GETDELIM@
858 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
859 # undef getdelim
860 # define getdelim rpl_getdelim
861 # endif
862 _GL_FUNCDECL_RPL (getdelim, ssize_t,
863 (char **restrict lineptr, size_t *restrict linesize,
864 int delimiter,
865 FILE *restrict stream)
866 _GL_ARG_NONNULL ((1, 2, 4)));
867 _GL_CXXALIAS_RPL (getdelim, ssize_t,
868 (char **restrict lineptr, size_t *restrict linesize,
869 int delimiter,
870 FILE *restrict stream));
871 # else
872 # if !@HAVE_DECL_GETDELIM@
873 _GL_FUNCDECL_SYS (getdelim, ssize_t,
874 (char **restrict lineptr, size_t *restrict linesize,
875 int delimiter,
876 FILE *restrict stream)
877 _GL_ARG_NONNULL ((1, 2, 4)));
878 # endif
879 _GL_CXXALIAS_SYS (getdelim, ssize_t,
880 (char **restrict lineptr, size_t *restrict linesize,
881 int delimiter,
882 FILE *restrict stream));
883 # endif
884 _GL_CXXALIASWARN (getdelim);
885 #elif defined GNULIB_POSIXCHECK
886 # undef getdelim
887 # if HAVE_RAW_DECL_GETDELIM
888 _GL_WARN_ON_USE (getdelim, "getdelim is unportable - "
889 "use gnulib module getdelim for portability");
890 # endif
891 #endif
892
893 #if @GNULIB_GETLINE@
894
895
896
897
898
899
900 # if @REPLACE_GETLINE@
901 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
902 # undef getline
903 # define getline rpl_getline
904 # endif
905 _GL_FUNCDECL_RPL (getline, ssize_t,
906 (char **restrict lineptr, size_t *restrict linesize,
907 FILE *restrict stream)
908 _GL_ARG_NONNULL ((1, 2, 3)));
909 _GL_CXXALIAS_RPL (getline, ssize_t,
910 (char **restrict lineptr, size_t *restrict linesize,
911 FILE *restrict stream));
912 # else
913 # if !@HAVE_DECL_GETLINE@
914 _GL_FUNCDECL_SYS (getline, ssize_t,
915 (char **restrict lineptr, size_t *restrict linesize,
916 FILE *restrict stream)
917 _GL_ARG_NONNULL ((1, 2, 3)));
918 # endif
919 _GL_CXXALIAS_SYS (getline, ssize_t,
920 (char **restrict lineptr, size_t *restrict linesize,
921 FILE *restrict stream));
922 # endif
923 # if @HAVE_DECL_GETLINE@
924 _GL_CXXALIASWARN (getline);
925 # endif
926 #elif defined GNULIB_POSIXCHECK
927 # undef getline
928 # if HAVE_RAW_DECL_GETLINE
929 _GL_WARN_ON_USE (getline, "getline is unportable - "
930 "use gnulib module getline for portability");
931 # endif
932 #endif
933
934
935
936
937 #undef gets
938 #if HAVE_RAW_DECL_GETS && !defined __cplusplus
939 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
940 #endif
941
942 #if @GNULIB_MDA_GETW@
943
944
945
946 # if defined _WIN32 && !defined __CYGWIN__
947 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
948 # undef getw
949 # define getw _getw
950 # endif
951 _GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream));
952 # else
953 _GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream));
954 # endif
955 _GL_CXXALIASWARN (getw);
956 #endif
957
958 #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
959 struct obstack;
960
961
962
963
964
965 # if @REPLACE_OBSTACK_PRINTF@
966 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
967 # define obstack_printf rpl_obstack_printf
968 # endif
969 _GL_FUNCDECL_RPL (obstack_printf, int,
970 (struct obstack *obs, const char *format, ...)
971 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
972 _GL_ARG_NONNULL ((1, 2)));
973 _GL_CXXALIAS_RPL (obstack_printf, int,
974 (struct obstack *obs, const char *format, ...));
975 # else
976 # if !@HAVE_DECL_OBSTACK_PRINTF@
977 _GL_FUNCDECL_SYS (obstack_printf, int,
978 (struct obstack *obs, const char *format, ...)
979 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
980 _GL_ARG_NONNULL ((1, 2)));
981 # endif
982 _GL_CXXALIAS_SYS (obstack_printf, int,
983 (struct obstack *obs, const char *format, ...));
984 # endif
985 _GL_CXXALIASWARN (obstack_printf);
986 # if @REPLACE_OBSTACK_PRINTF@
987 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
988 # define obstack_vprintf rpl_obstack_vprintf
989 # endif
990 _GL_FUNCDECL_RPL (obstack_vprintf, int,
991 (struct obstack *obs, const char *format, va_list args)
992 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
993 _GL_ARG_NONNULL ((1, 2)));
994 _GL_CXXALIAS_RPL (obstack_vprintf, int,
995 (struct obstack *obs, const char *format, va_list args));
996 # else
997 # if !@HAVE_DECL_OBSTACK_PRINTF@
998 _GL_FUNCDECL_SYS (obstack_vprintf, int,
999 (struct obstack *obs, const char *format, va_list args)
1000 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
1001 _GL_ARG_NONNULL ((1, 2)));
1002 # endif
1003 _GL_CXXALIAS_SYS (obstack_vprintf, int,
1004 (struct obstack *obs, const char *format, va_list args));
1005 # endif
1006 _GL_CXXALIASWARN (obstack_vprintf);
1007 #endif
1008
1009 #if @GNULIB_PCLOSE@
1010 # if !@HAVE_PCLOSE@
1011 _GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
1012 # endif
1013 _GL_CXXALIAS_SYS (pclose, int, (FILE *stream));
1014 _GL_CXXALIASWARN (pclose);
1015 #elif defined GNULIB_POSIXCHECK
1016 # undef pclose
1017 # if HAVE_RAW_DECL_PCLOSE
1018 _GL_WARN_ON_USE (pclose, "pclose is unportable - "
1019 "use gnulib module pclose for more portability");
1020 # endif
1021 #endif
1022
1023 #if @GNULIB_PERROR@
1024
1025
1026
1027 # if @REPLACE_PERROR@
1028 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1029 # define perror rpl_perror
1030 # endif
1031 _GL_FUNCDECL_RPL (perror, void, (const char *string));
1032 _GL_CXXALIAS_RPL (perror, void, (const char *string));
1033 # else
1034 _GL_CXXALIAS_SYS (perror, void, (const char *string));
1035 # endif
1036 # if __GLIBC__ >= 2
1037 _GL_CXXALIASWARN (perror);
1038 # endif
1039 #elif defined GNULIB_POSIXCHECK
1040 # undef perror
1041
1042 _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - "
1043 "use gnulib module perror for portability");
1044 #endif
1045
1046 #if @GNULIB_POPEN@
1047 # if @REPLACE_POPEN@
1048 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1049 # undef popen
1050 # define popen rpl_popen
1051 # endif
1052 _GL_FUNCDECL_RPL (popen, FILE *,
1053 (const char *cmd, const char *mode)
1054 _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1));
1055 _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode));
1056 # else
1057 # if !@HAVE_POPEN@ || __GNUC__ >= 11
1058 _GL_FUNCDECL_SYS (popen, FILE *,
1059 (const char *cmd, const char *mode)
1060 _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1));
1061 # endif
1062 _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode));
1063 # endif
1064 _GL_CXXALIASWARN (popen);
1065 #else
1066 # if @GNULIB_PCLOSE@ && __GNUC__ >= 11 && !defined popen
1067
1068 _GL_FUNCDECL_SYS (popen, FILE *,
1069 (const char *cmd, const char *mode)
1070 _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1));
1071 # endif
1072 # if defined GNULIB_POSIXCHECK
1073 # undef popen
1074 # if HAVE_RAW_DECL_POPEN
1075 _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - "
1076 "use gnulib module popen or pipe for more portability");
1077 # endif
1078 # endif
1079 #endif
1080
1081 #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@
1082 # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \
1083 || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
1084 # if defined __GNUC__ || defined __clang__
1085 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1086
1087 # define printf __printf__
1088 # endif
1089 # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
1090 _GL_FUNCDECL_RPL_1 (__printf__, int,
1091 (const char *restrict format, ...)
1092 __asm__ (@ASM_SYMBOL_PREFIX@
1093 _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
1094 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2)
1095 _GL_ARG_NONNULL ((1)));
1096 # else
1097 _GL_FUNCDECL_RPL_1 (__printf__, int,
1098 (const char *restrict format, ...)
1099 __asm__ (@ASM_SYMBOL_PREFIX@
1100 _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
1101 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2)
1102 _GL_ARG_NONNULL ((1)));
1103 # endif
1104 _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...));
1105 # else
1106 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1107 # define printf rpl_printf
1108 # endif
1109 _GL_FUNCDECL_RPL (printf, int,
1110 (const char *restrict format, ...)
1111 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2)
1112 _GL_ARG_NONNULL ((1)));
1113 _GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...));
1114 # endif
1115 # define GNULIB_overrides_printf 1
1116 # else
1117 _GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...));
1118 # endif
1119 # if __GLIBC__ >= 2
1120 _GL_CXXALIASWARN (printf);
1121 # endif
1122 #endif
1123 #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK
1124 # if !GNULIB_overrides_printf
1125 # undef printf
1126 # endif
1127
1128 _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - "
1129 "use gnulib module printf-posix for portable "
1130 "POSIX compliance");
1131 #endif
1132
1133 #if @GNULIB_PUTC@
1134 # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
1135 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1136 # undef putc
1137 # define putc rpl_fputc
1138 # endif
1139 _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2)));
1140 _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream));
1141 # else
1142 _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream));
1143 # endif
1144 # if __GLIBC__ >= 2
1145 _GL_CXXALIASWARN (putc);
1146 # endif
1147 #endif
1148
1149 #if @GNULIB_PUTCHAR@
1150 # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
1151 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1152 # undef putchar
1153 # define putchar rpl_putchar
1154 # endif
1155 _GL_FUNCDECL_RPL (putchar, int, (int c));
1156 _GL_CXXALIAS_RPL (putchar, int, (int c));
1157 # else
1158 _GL_CXXALIAS_SYS (putchar, int, (int c));
1159 # endif
1160 # if __GLIBC__ >= 2
1161 _GL_CXXALIASWARN (putchar);
1162 # endif
1163 #endif
1164
1165 #if @GNULIB_PUTS@
1166 # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
1167 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1168 # undef puts
1169 # define puts rpl_puts
1170 # endif
1171 _GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1)));
1172 _GL_CXXALIAS_RPL (puts, int, (const char *string));
1173 # else
1174 _GL_CXXALIAS_SYS (puts, int, (const char *string));
1175 # endif
1176 # if __GLIBC__ >= 2
1177 _GL_CXXALIASWARN (puts);
1178 # endif
1179 #endif
1180
1181 #if @GNULIB_MDA_PUTW@
1182
1183
1184
1185 # if defined _WIN32 && !defined __CYGWIN__
1186 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1187 # undef putw
1188 # define putw _putw
1189 # endif
1190 _GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream));
1191 # else
1192 _GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream));
1193 # endif
1194 _GL_CXXALIASWARN (putw);
1195 #endif
1196
1197 #if @GNULIB_REMOVE@
1198 # if @REPLACE_REMOVE@
1199 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1200 # undef remove
1201 # define remove rpl_remove
1202 # endif
1203 _GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1)));
1204 _GL_CXXALIAS_RPL (remove, int, (const char *name));
1205 # else
1206 _GL_CXXALIAS_SYS (remove, int, (const char *name));
1207 # endif
1208 # if __GLIBC__ >= 2
1209 _GL_CXXALIASWARN (remove);
1210 # endif
1211 #elif defined GNULIB_POSIXCHECK
1212 # undef remove
1213
1214 _GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - "
1215 "use gnulib module remove for more portability");
1216 #endif
1217
1218 #if @GNULIB_RENAME@
1219 # if @REPLACE_RENAME@
1220 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1221 # undef rename
1222 # define rename rpl_rename
1223 # endif
1224 _GL_FUNCDECL_RPL (rename, int,
1225 (const char *old_filename, const char *new_filename)
1226 _GL_ARG_NONNULL ((1, 2)));
1227 _GL_CXXALIAS_RPL (rename, int,
1228 (const char *old_filename, const char *new_filename));
1229 # else
1230 _GL_CXXALIAS_SYS (rename, int,
1231 (const char *old_filename, const char *new_filename));
1232 # endif
1233 # if __GLIBC__ >= 2
1234 _GL_CXXALIASWARN (rename);
1235 # endif
1236 #elif defined GNULIB_POSIXCHECK
1237 # undef rename
1238
1239 _GL_WARN_ON_USE (rename, "rename is buggy on some platforms - "
1240 "use gnulib module rename for more portability");
1241 #endif
1242
1243 #if @GNULIB_RENAMEAT@
1244 # if @REPLACE_RENAMEAT@
1245 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1246 # undef renameat
1247 # define renameat rpl_renameat
1248 # endif
1249 _GL_FUNCDECL_RPL (renameat, int,
1250 (int fd1, char const *file1, int fd2, char const *file2)
1251 _GL_ARG_NONNULL ((2, 4)));
1252 _GL_CXXALIAS_RPL (renameat, int,
1253 (int fd1, char const *file1, int fd2, char const *file2));
1254 # else
1255 # if !@HAVE_RENAMEAT@
1256 _GL_FUNCDECL_SYS (renameat, int,
1257 (int fd1, char const *file1, int fd2, char const *file2)
1258 _GL_ARG_NONNULL ((2, 4)));
1259 # endif
1260 _GL_CXXALIAS_SYS (renameat, int,
1261 (int fd1, char const *file1, int fd2, char const *file2));
1262 # endif
1263 _GL_CXXALIASWARN (renameat);
1264 #elif defined GNULIB_POSIXCHECK
1265 # undef renameat
1266 # if HAVE_RAW_DECL_RENAMEAT
1267 _GL_WARN_ON_USE (renameat, "renameat is not portable - "
1268 "use gnulib module renameat for portability");
1269 # endif
1270 #endif
1271
1272 #if @GNULIB_SCANF@
1273 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
1274 # if defined __GNUC__ || defined __clang__
1275 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1276 # undef scanf
1277
1278 # define scanf __scanf__
1279 # endif
1280 _GL_FUNCDECL_RPL_1 (__scanf__, int,
1281 (const char *restrict format, ...)
1282 __asm__ (@ASM_SYMBOL_PREFIX@
1283 _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf))
1284 _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
1285 _GL_ARG_NONNULL ((1)));
1286 _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...));
1287 # else
1288 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1289 # undef scanf
1290 # define scanf rpl_scanf
1291 # endif
1292 _GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...)
1293 _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
1294 _GL_ARG_NONNULL ((1)));
1295 _GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...));
1296 # endif
1297 # else
1298 _GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...));
1299 # endif
1300 # if __GLIBC__ >= 2
1301 _GL_CXXALIASWARN (scanf);
1302 # endif
1303 #endif
1304
1305 #if @GNULIB_SNPRINTF@
1306 # if @REPLACE_SNPRINTF@
1307 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1308 # define snprintf rpl_snprintf
1309 # endif
1310 # define GNULIB_overrides_snprintf 1
1311 _GL_FUNCDECL_RPL (snprintf, int,
1312 (char *restrict str, size_t size,
1313 const char *restrict format, ...)
1314 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4)
1315 _GL_ARG_NONNULL ((3)));
1316 _GL_CXXALIAS_RPL (snprintf, int,
1317 (char *restrict str, size_t size,
1318 const char *restrict format, ...));
1319 # else
1320 # if !@HAVE_DECL_SNPRINTF@
1321 _GL_FUNCDECL_SYS (snprintf, int,
1322 (char *restrict str, size_t size,
1323 const char *restrict format, ...)
1324 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4)
1325 _GL_ARG_NONNULL ((3)));
1326 # endif
1327 _GL_CXXALIAS_SYS (snprintf, int,
1328 (char *restrict str, size_t size,
1329 const char *restrict format, ...));
1330 # endif
1331 # if __GLIBC__ >= 2
1332 _GL_CXXALIASWARN (snprintf);
1333 # endif
1334 #elif defined GNULIB_POSIXCHECK
1335 # undef snprintf
1336 # if HAVE_RAW_DECL_SNPRINTF
1337 _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
1338 "use gnulib module snprintf for portability");
1339 # endif
1340 #endif
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351 #if @GNULIB_SPRINTF_POSIX@
1352 # if @REPLACE_SPRINTF@
1353 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1354 # define sprintf rpl_sprintf
1355 # endif
1356 # define GNULIB_overrides_sprintf 1
1357 _GL_FUNCDECL_RPL (sprintf, int,
1358 (char *restrict str, const char *restrict format, ...)
1359 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
1360 _GL_ARG_NONNULL ((1, 2)));
1361 _GL_CXXALIAS_RPL (sprintf, int,
1362 (char *restrict str, const char *restrict format, ...));
1363 # else
1364 _GL_CXXALIAS_SYS (sprintf, int,
1365 (char *restrict str, const char *restrict format, ...));
1366 # endif
1367 # if __GLIBC__ >= 2
1368 _GL_CXXALIASWARN (sprintf);
1369 # endif
1370 #elif defined GNULIB_POSIXCHECK
1371 # undef sprintf
1372
1373 _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - "
1374 "use gnulib module sprintf-posix for portable "
1375 "POSIX compliance");
1376 #endif
1377
1378 #if @GNULIB_MDA_TEMPNAM@
1379
1380
1381
1382 # if defined _WIN32 && !defined __CYGWIN__
1383 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1384 # undef tempnam
1385 # define tempnam _tempnam
1386 # endif
1387 _GL_CXXALIAS_MDA (tempnam, char *, (const char *dir, const char *prefix));
1388 # else
1389 _GL_CXXALIAS_SYS (tempnam, char *, (const char *dir, const char *prefix));
1390 # endif
1391 _GL_CXXALIASWARN (tempnam);
1392 #endif
1393
1394 #if @GNULIB_TMPFILE@
1395 # if @REPLACE_TMPFILE@
1396 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1397 # define tmpfile rpl_tmpfile
1398 # endif
1399 _GL_FUNCDECL_RPL (tmpfile, FILE *, (void)
1400 _GL_ATTRIBUTE_DEALLOC (fclose, 1));
1401 _GL_CXXALIAS_RPL (tmpfile, FILE *, (void));
1402 # else
1403 # if __GNUC__ >= 11
1404
1405 _GL_FUNCDECL_SYS (tmpfile, FILE *, (void)
1406 _GL_ATTRIBUTE_DEALLOC (fclose, 1));
1407 # endif
1408 _GL_CXXALIAS_SYS (tmpfile, FILE *, (void));
1409 # endif
1410 # if __GLIBC__ >= 2
1411 _GL_CXXALIASWARN (tmpfile);
1412 # endif
1413 #else
1414 # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined tmpfile
1415
1416 _GL_FUNCDECL_SYS (tmpfile, FILE *, (void)
1417 _GL_ATTRIBUTE_DEALLOC (fclose, 1));
1418 # endif
1419 # if defined GNULIB_POSIXCHECK
1420 # undef tmpfile
1421 # if HAVE_RAW_DECL_TMPFILE
1422 _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - "
1423 "use gnulib module tmpfile for portability");
1424 # endif
1425 # endif
1426 #endif
1427
1428 #if @GNULIB_VASPRINTF@
1429
1430
1431
1432
1433 # if @REPLACE_VASPRINTF@
1434 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1435 # define asprintf rpl_asprintf
1436 # endif
1437 # define GNULIB_overrides_asprintf
1438 _GL_FUNCDECL_RPL (asprintf, int,
1439 (char **result, const char *format, ...)
1440 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
1441 _GL_ARG_NONNULL ((1, 2)));
1442 _GL_CXXALIAS_RPL (asprintf, int,
1443 (char **result, const char *format, ...));
1444 # else
1445 # if !@HAVE_VASPRINTF@
1446 _GL_FUNCDECL_SYS (asprintf, int,
1447 (char **result, const char *format, ...)
1448 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
1449 _GL_ARG_NONNULL ((1, 2)));
1450 # endif
1451 _GL_CXXALIAS_SYS (asprintf, int,
1452 (char **result, const char *format, ...));
1453 # endif
1454 _GL_CXXALIASWARN (asprintf);
1455 # if @REPLACE_VASPRINTF@
1456 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1457 # define vasprintf rpl_vasprintf
1458 # endif
1459 # define GNULIB_overrides_vasprintf 1
1460 _GL_FUNCDECL_RPL (vasprintf, int,
1461 (char **result, const char *format, va_list args)
1462 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
1463 _GL_ARG_NONNULL ((1, 2)));
1464 _GL_CXXALIAS_RPL (vasprintf, int,
1465 (char **result, const char *format, va_list args));
1466 # else
1467 # if !@HAVE_VASPRINTF@
1468 _GL_FUNCDECL_SYS (vasprintf, int,
1469 (char **result, const char *format, va_list args)
1470 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
1471 _GL_ARG_NONNULL ((1, 2)));
1472 # endif
1473 _GL_CXXALIAS_SYS (vasprintf, int,
1474 (char **result, const char *format, va_list args));
1475 # endif
1476 _GL_CXXALIASWARN (vasprintf);
1477 #endif
1478
1479 #if @GNULIB_VDPRINTF@
1480 # if @REPLACE_VDPRINTF@
1481 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1482 # define vdprintf rpl_vdprintf
1483 # endif
1484 _GL_FUNCDECL_RPL (vdprintf, int,
1485 (int fd, const char *restrict format, va_list args)
1486 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
1487 _GL_ARG_NONNULL ((2)));
1488 _GL_CXXALIAS_RPL (vdprintf, int,
1489 (int fd, const char *restrict format, va_list args));
1490 # else
1491 # if !@HAVE_VDPRINTF@
1492 _GL_FUNCDECL_SYS (vdprintf, int,
1493 (int fd, const char *restrict format, va_list args)
1494 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
1495 _GL_ARG_NONNULL ((2)));
1496 # endif
1497
1498
1499 _GL_CXXALIAS_SYS_CAST (vdprintf, int,
1500 (int fd, const char *restrict format, va_list args));
1501 # endif
1502 # if __GLIBC__ >= 2
1503 _GL_CXXALIASWARN (vdprintf);
1504 # endif
1505 #elif defined GNULIB_POSIXCHECK
1506 # undef vdprintf
1507 # if HAVE_RAW_DECL_VDPRINTF
1508 _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - "
1509 "use gnulib module vdprintf for portability");
1510 # endif
1511 #endif
1512
1513 #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@
1514 # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \
1515 || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
1516 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1517 # define vfprintf rpl_vfprintf
1518 # endif
1519 # define GNULIB_overrides_vfprintf 1
1520 # if @GNULIB_VFPRINTF_POSIX@
1521 _GL_FUNCDECL_RPL (vfprintf, int,
1522 (FILE *restrict fp,
1523 const char *restrict format, va_list args)
1524 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
1525 _GL_ARG_NONNULL ((1, 2)));
1526 # else
1527 _GL_FUNCDECL_RPL (vfprintf, int,
1528 (FILE *restrict fp,
1529 const char *restrict format, va_list args)
1530 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0)
1531 _GL_ARG_NONNULL ((1, 2)));
1532 # endif
1533 _GL_CXXALIAS_RPL (vfprintf, int,
1534 (FILE *restrict fp,
1535 const char *restrict format, va_list args));
1536 # else
1537
1538
1539
1540 _GL_CXXALIAS_SYS_CAST (vfprintf, int,
1541 (FILE *restrict fp,
1542 const char *restrict format, va_list args));
1543 # endif
1544 # if __GLIBC__ >= 2
1545 _GL_CXXALIASWARN (vfprintf);
1546 # endif
1547 #endif
1548 #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
1549 # if !GNULIB_overrides_vfprintf
1550 # undef vfprintf
1551 # endif
1552
1553 _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - "
1554 "use gnulib module vfprintf-posix for portable "
1555 "POSIX compliance");
1556 #endif
1557
1558 #if @GNULIB_VFSCANF@
1559 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
1560 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1561 # undef vfscanf
1562 # define vfscanf rpl_vfscanf
1563 # endif
1564 _GL_FUNCDECL_RPL (vfscanf, int,
1565 (FILE *restrict stream,
1566 const char *restrict format, va_list args)
1567 _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0)
1568 _GL_ARG_NONNULL ((1, 2)));
1569 _GL_CXXALIAS_RPL (vfscanf, int,
1570 (FILE *restrict stream,
1571 const char *restrict format, va_list args));
1572 # else
1573 _GL_CXXALIAS_SYS (vfscanf, int,
1574 (FILE *restrict stream,
1575 const char *restrict format, va_list args));
1576 # endif
1577 # if __GLIBC__ >= 2
1578 _GL_CXXALIASWARN (vfscanf);
1579 # endif
1580 #endif
1581
1582 #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@
1583 # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \
1584 || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
1585 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1586 # define vprintf rpl_vprintf
1587 # endif
1588 # define GNULIB_overrides_vprintf 1
1589 # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
1590 _GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args)
1591 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0)
1592 _GL_ARG_NONNULL ((1)));
1593 # else
1594 _GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args)
1595 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0)
1596 _GL_ARG_NONNULL ((1)));
1597 # endif
1598 _GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args));
1599 # else
1600
1601
1602
1603 _GL_CXXALIAS_SYS_CAST (vprintf, int,
1604 (const char *restrict format, va_list args));
1605 # endif
1606 # if __GLIBC__ >= 2
1607 _GL_CXXALIASWARN (vprintf);
1608 # endif
1609 #endif
1610 #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
1611 # if !GNULIB_overrides_vprintf
1612 # undef vprintf
1613 # endif
1614
1615 _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - "
1616 "use gnulib module vprintf-posix for portable "
1617 "POSIX compliance");
1618 #endif
1619
1620 #if @GNULIB_VSCANF@
1621 # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
1622 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1623 # undef vscanf
1624 # define vscanf rpl_vscanf
1625 # endif
1626 _GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args)
1627 _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0)
1628 _GL_ARG_NONNULL ((1)));
1629 _GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args));
1630 # else
1631 _GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args));
1632 # endif
1633 # if __GLIBC__ >= 2
1634 _GL_CXXALIASWARN (vscanf);
1635 # endif
1636 #endif
1637
1638 #if @GNULIB_VSNPRINTF@
1639 # if @REPLACE_VSNPRINTF@
1640 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1641 # define vsnprintf rpl_vsnprintf
1642 # endif
1643 # define GNULIB_overrides_vsnprintf 1
1644 _GL_FUNCDECL_RPL (vsnprintf, int,
1645 (char *restrict str, size_t size,
1646 const char *restrict format, va_list args)
1647 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0)
1648 _GL_ARG_NONNULL ((3)));
1649 _GL_CXXALIAS_RPL (vsnprintf, int,
1650 (char *restrict str, size_t size,
1651 const char *restrict format, va_list args));
1652 # else
1653 # if !@HAVE_DECL_VSNPRINTF@
1654 _GL_FUNCDECL_SYS (vsnprintf, int,
1655 (char *restrict str, size_t size,
1656 const char *restrict format, va_list args)
1657 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0)
1658 _GL_ARG_NONNULL ((3)));
1659 # endif
1660 _GL_CXXALIAS_SYS (vsnprintf, int,
1661 (char *restrict str, size_t size,
1662 const char *restrict format, va_list args));
1663 # endif
1664 # if __GLIBC__ >= 2
1665 _GL_CXXALIASWARN (vsnprintf);
1666 # endif
1667 #elif defined GNULIB_POSIXCHECK
1668 # undef vsnprintf
1669 # if HAVE_RAW_DECL_VSNPRINTF
1670 _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - "
1671 "use gnulib module vsnprintf for portability");
1672 # endif
1673 #endif
1674
1675 #if @GNULIB_VSPRINTF_POSIX@
1676 # if @REPLACE_VSPRINTF@
1677 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1678 # define vsprintf rpl_vsprintf
1679 # endif
1680 # define GNULIB_overrides_vsprintf 1
1681 _GL_FUNCDECL_RPL (vsprintf, int,
1682 (char *restrict str,
1683 const char *restrict format, va_list args)
1684 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
1685 _GL_ARG_NONNULL ((1, 2)));
1686 _GL_CXXALIAS_RPL (vsprintf, int,
1687 (char *restrict str,
1688 const char *restrict format, va_list args));
1689 # else
1690
1691
1692
1693 _GL_CXXALIAS_SYS_CAST (vsprintf, int,
1694 (char *restrict str,
1695 const char *restrict format, va_list args));
1696 # endif
1697 # if __GLIBC__ >= 2
1698 _GL_CXXALIASWARN (vsprintf);
1699 # endif
1700 #elif defined GNULIB_POSIXCHECK
1701 # undef vsprintf
1702
1703 _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - "
1704 "use gnulib module vsprintf-posix for portable "
1705 "POSIX compliance");
1706 #endif
1707
1708 #endif
1709 #endif
1710 #endif