sys_uio: Protect definition of 'struct iovec'.
authorBruno Haible <bruno@clisp.org>
Sat, 30 Apr 2011 11:19:55 +0000 (13:19 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 30 Apr 2011 11:19:55 +0000 (13:19 +0200)
* lib/sys_uio.in.h (struct iovec): Avoid redefinition. In C++, define
it as a C struct.

ChangeLog
lib/sys_uio.in.h

index 6a9857e7678482c16d71d8b9999b5f9ac7c2f4a4..b567940fb755fc7c40888d544c4863b0796651a2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-30  Bruno Haible  <bruno@clisp.org>
+
+       sys_uio: Protect definition of 'struct iovec'.
+       * lib/sys_uio.in.h (struct iovec): Avoid redefinition. In C++, define
+       it as a C struct.
+
 2011-04-30  Bruno Haible  <bruno@clisp.org>
 
        manywarnings: fix indentation
index 175ee0fb6df7abfb40c7aad8920be17c316b08c0..faad3de206980443183bb5486a8f8dc5ca5077cd 100644 (file)
 /* Get 'ssize_t'.  */
 # include <sys/types.h>
 
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# if !GNULIB_defined_struct_iovec
 /* All known platforms that lack <sys/uio.h> also lack any declaration
    of struct iovec in any other header.  */
 struct iovec {
   void *iov_base;
   size_t iov_len;
 };
+#  define GNULIB_defined_struct_iovec 1
+# endif
+
+# ifdef __cplusplus
+}
+# endif
+
 #endif
 
 #endif /* _GL_SYS_UIO_H */