diff lib/stdio.in.h @ 15734:7adcf631d56b

New module 'fdopen'. * lib/stdio.in.h (fdopen): New declaration. * lib/fdopen.c: New file. * m4/fdopen.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FDOPEN, REPLACE_FDOPEN. * modules/stdio (Makefile.am): Substitute GNULIB_FDOPEN, REPLACE_FDOPEN. * modules/fdopen: New file. * modules/stdio-tests (Depends-on): Remove fdopen-tests. * tests/test-stdio-c++.cc: Check signature of fdopen. * doc/posix-functions/fdopen.texi: Mention the new module.
author Bruno Haible <bruno@clisp.org>
date Wed, 21 Sep 2011 21:16:45 +0200 (2011-09-21)
parents fe99cfdb102f
children 8250f2777afc
line wrap: on
line diff
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -170,6 +170,26 @@
                  "use gnulib module fclose for portable POSIX compliance");
 #endif
 
+#if @GNULIB_FDOPEN@
+# if @REPLACE_FDOPEN@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fdopen
+#   define fdopen rpl_fdopen
+#  endif
+_GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode)
+                                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode));
+# else
+_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
+# endif
+_GL_CXXALIASWARN (fdopen);
+#elif defined GNULIB_POSIXCHECK
+# undef fdopen
+/* Assume fdopen is always declared.  */
+_GL_WARN_ON_USE (fdopen, "fdopen on Win32 platforms is not POSIX compatible - "
+                 "use gnulib module fdopen for portability");
+#endif
+
 #if @GNULIB_FFLUSH@
 /* Flush all pending data on STREAM according to POSIX rules.  Both
    output and seekable input streams are supported.