+2007-05-29 Bruno Haible <bruno@clisp.org>
+
+ Fix a problem with #include_next.
+ * lib/dirent_.h: Split the double-inclusion guard.
+ * lib/fcntl_.h: Likewise.
+ * lib/float_.h: Likewise.
+ * lib/iconv_.h: Likewise.
+ * lib/inttypes_.h: Likewise.
+ * lib/locale_.h: Likewise.
+ * lib/math_.h: Likewise.
+ * lib/netinet_in_.h: Likewise.
+ * lib/search_.h: Likewise.
+ * lib/signal_.h: Likewise.
+ * lib/stdint_.h: Likewise.
+ * lib/stdio_.h: Likewise.
+ * lib/stdlib_.h: Likewise.
+ * lib/string_.h: Likewise.
+ * lib/sys_select_.h: Likewise.
+ * lib/sys_socket_.h: Likewise.
+ * lib/sys_stat_.h: Likewise.
+ * lib/sys_time_.h: Likewise.
+ * lib/sysexits_.h: Likewise.
+ * lib/time_.h: Likewise.
+ * lib/unistd_.h: Likewise.
+ * lib/wchar_.h: Likewise.
+ * lib/wctype_.h: Likewise.
+
2007-05-29 Bruno Haible <bruno@clisp.org>
* tests/test-unistd.c: Disable the tests for useconds_t and intptr_t
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_DIRENT_H
-#define _GL_DIRENT_H
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <dirent.h>
#else
# include @ABSOLUTE_DIRENT_H@
#endif
+#ifndef _GL_DIRENT_H
+#define _GL_DIRENT_H
+
+
/* Declare overridden functions. */
#ifdef __cplusplus
#endif /* _GL_DIRENT_H */
+#endif /* _GL_DIRENT_H */
/* Like <fcntl.h>, but with non-working flags defined to 0.
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006-2007 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/* written by Paul Eggert */
#ifndef _GL_FCNTL_H
-#define _GL_FCNTL_H
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <fcntl.h>
#else
# include @ABSOLUTE_FCNTL_H@
#endif
+#ifndef _GL_FCNTL_H
+#define _GL_FCNTL_H
+
/* Declare overridden functions. */
# define O_TEXT 0
#endif
-#endif
+
+#endif /* _GL_FCNTL_H */
+#endif /* _GL_FCNTL_H */
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_FLOAT_H
-#define _GL_FLOAT_H
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <float.h>
#else
# include @ABSOLUTE_FLOAT_H@
#endif
+#ifndef _GL_FLOAT_H
+#define _GL_FLOAT_H
+
/* 'long double' properties. */
#if defined __i386__ && defined __BEOS__
/* Number of mantissa units, in base FLT_RADIX. */
#endif
#endif /* _GL_FLOAT_H */
+#endif /* _GL_FLOAT_H */
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_ICONV_H
-#define _GL_ICONV_H
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <iconv.h>
#else
# include @ABSOLUTE_ICONV_H@
#endif
+#ifndef _GL_ICONV_H
+#define _GL_ICONV_H
+
#ifdef __cplusplus
extern "C" {
#endif
}
#endif
-#endif
+#endif /* _GL_ICONV_H */
+#endif /* _GL_ICONV_H */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+/*
+ * ISO C 99 <inttypes.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/inttypes.h.html>
+ */
+
/* Include the original <inttypes.h> if it exists, and if this file
has not been included yet or if this file includes gnulib stdint.h
- which in turn includes this file. */
+ which in turn includes this file.
+ The include_next requires a split double-inclusion guard. */
#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
# if @HAVE_INTTYPES_H@
# if @HAVE_INCLUDE_NEXT@
#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
#define INTTYPES_H
-/*
- * ISO C 99 <inttypes.h> for platforms that lack it.
- * <http://www.opengroup.org/susv3xbd/inttypes.h.html>
- */
-
/* Include <stdint.h> or the gnulib replacement. */
#include <stdint.h>
/* Get CHAR_BIT. */
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_LOCALE_H
-#define _GL_LOCALE_H
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <locale.h>
#else
# include @ABSOLUTE_LOCALE_H@
#endif
+#ifndef _GL_LOCALE_H
+#define _GL_LOCALE_H
+
/* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C.
On systems that don't define it, use the same value as GNU libintl. */
#if !defined LC_MESSAGES
#endif
#endif /* _GL_LOCALE_H */
+#endif /* _GL_LOCALE_H */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+#ifndef _GL_MATH_H
+
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <math.h>
+#else
+# include @ABSOLUTE_MATH_H@
#endif
#ifndef _GL_MATH_H
#define _GL_MATH_H
-#if ! @HAVE_INCLUDE_NEXT@
-# include @ABSOLUTE_MATH_H@
-#endif
-
/* The definition of GL_LINK_WARNING is copied here. */
}
#endif
-#endif
+#endif /* _GL_MATH_H */
+#endif /* _GL_MATH_H */
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_NETINET_IN_H
-#define _GL_NETINET_IN_H
#if @HAVE_NETINET_IN_H@
/* On many platforms, <netinet/in.h> assumes prior inclusion of
<sys/types.h>. */
-
# include <sys/types.h>
+
+/* The include_next requires a split double-inclusion guard. */
# if @HAVE_INCLUDE_NEXT@
# include_next <netinet/in.h>
# else
# include @ABSOLUTE_NETINET_IN_H@
# endif
-#else
+
+#endif
+
+#ifndef _GL_NETINET_IN_H
+#define _GL_NETINET_IN_H
+
+#if !@HAVE_NETINET_IN_H@
/* A platform that lacks <netinet/in.h>. */
#endif
#endif /* _GL_NETINET_IN_H */
+#endif /* _GL_NETINET_IN_H */
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_SEARCH_H
-#define _GL_SEARCH_H
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_SEARCH_H@
# if @HAVE_INCLUDE_NEXT@
# include_next <search.h>
# endif
#endif
+#ifndef _GL_SEARCH_H
+#define _GL_SEARCH_H
+
/* The definition of GL_LINK_WARNING is copied here. */
}
#endif
-#endif
+#endif /* _GL_SEARCH_H */
+#endif /* _GL_SEARCH_H */
/* Normal invocation convention. */
#ifndef _GL_SIGNAL_H
-#define _GL_SIGNAL_H
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <signal.h>
#else
# include @ABSOLUTE_SIGNAL_H@
#endif
+#ifndef _GL_SIGNAL_H
+#define _GL_SIGNAL_H
+
/* The definition of GL_LINK_WARNING is copied here. */
}
#endif
+#endif /* _GL_SIGNAL_H */
#endif /* _GL_SIGNAL_H */
#endif
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_STDINT_H
-#define _GL_STDINT_H
-
/*
* ISO C 99 <stdint.h> for platforms that lack it.
* <http://www.opengroup.org/susv3xbd/stdint.h.html>
*/
+#ifndef _GL_STDINT_H
+
/* Get those types that are already defined in other system include
files, so that we can "#define int8_t signed char" below without
worrying about a later system include file containing a "typedef
/* Other systems may have an incomplete or buggy <stdint.h>.
Include it before <inttypes.h>, since any "#include <stdint.h>"
in <inttypes.h> would reinclude us, skipping our contents because
- _GL_STDINT_H is defined. */
+ _GL_STDINT_H is defined.
+ The include_next requires a split double-inclusion guard. */
# if @HAVE_INCLUDE_NEXT@
# include_next <stdint.h>
# else
# endif
#endif
+#ifndef _GL_STDINT_H
+#define _GL_STDINT_H
+
/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
AIX 5.2 <sys/types.h> isn't needed and causes troubles.
#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
#endif /* _GL_STDINT_H */
+#endif /* _GL_STDINT_H */
#else
/* Normal invocation convention. */
+#ifndef _GL_STDIO_H
+
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <stdio.h>
+#else
+# include @ABSOLUTE_STDIO_H@
#endif
#ifndef _GL_STDIO_H
#define _GL_STDIO_H
-#if ! @HAVE_INCLUDE_NEXT@
-# include @ABSOLUTE_STDIO_H@
-#endif
-
#include <stdarg.h>
#include <stddef.h>
}
#endif
+#endif /* _GL_STDIO_H */
#endif /* _GL_STDIO_H */
#endif
#else
/* Normal invocation convention. */
+#ifndef _GL_STDLIB_H
+
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <stdlib.h>
+#else
+# include @ABSOLUTE_STDLIB_H@
#endif
#ifndef _GL_STDLIB_H
#define _GL_STDLIB_H
-#if ! @HAVE_INCLUDE_NEXT@
-# include @ABSOLUTE_STDLIB_H@
-#endif
-
/* The definition of GL_LINK_WARNING is copied here. */
}
#endif
+#endif /* _GL_STDLIB_H */
#endif /* _GL_STDLIB_H */
#endif
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+#ifndef _GL_STRING_H
+
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <string.h>
+#else
+# include @ABSOLUTE_STRING_H@
#endif
#ifndef _GL_STRING_H
#define _GL_STRING_H
-#if ! @HAVE_INCLUDE_NEXT@
-# include @ABSOLUTE_STRING_H@
-#endif
-
/* The definition of GL_LINK_WARNING is copied here. */
}
#endif
-#endif
+#endif /* _GL_STRING_H */
+#endif /* _GL_STRING_H */
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_SYS_SELECT_H
-#define _GL_SYS_SELECT_H
#if @HAVE_SYS_SELECT_H@
/* On many platforms, <sys/select.h> assumes prior inclusion of
<sys/types.h>. */
-
# include <sys/types.h>
+/* The include_next requires a split double-inclusion guard. */
# if @HAVE_INCLUDE_NEXT@
# include_next <sys/select.h>
# else
# include @ABSOLUTE_SYS_SELECT_H@
# endif
-#else
+#endif
+
+#ifndef _GL_SYS_SELECT_H
+#define _GL_SYS_SELECT_H
+
+#if !@HAVE_SYS_SELECT_H@
/* A platform that lacks <sys/select.h>. */
#endif
#endif /* _GL_SYS_SELECT_H */
+#endif /* _GL_SYS_SELECT_H */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_SYS_SOCKET_H
-#define _GL_SYS_SOCKET_H
-
/* This file is supposed to be used on platforms that lack <sys/socket.h>
and on platforms where <sys/socket.h> cannot be included standalone.
It is intended to provide definitions and prototypes needed by an
application. */
+#ifndef _GL_SYS_SOCKET_H
+
#if @HAVE_SYS_SOCKET_H@
/* On many platforms, <sys/socket.h> assumes prior inclusion of
<sys/types.h>. */
-
# include <sys/types.h>
+/* The include_next requires a split double-inclusion guard. */
# if @HAVE_INCLUDE_NEXT@
# include_next <sys/socket.h>
# else
# include @ABSOLUTE_SYS_SOCKET_H@
# endif
-#else
+#endif
+
+#ifndef _GL_SYS_SOCKET_H
+#define _GL_SYS_SOCKET_H
+
+#if !@HAVE_SYS_SOCKET_H@
/* A platform that lacks <sys/socket.h>.
#endif /* HAVE_SYS_SOCKET_H */
#endif /* _GL_SYS_SOCKET_H */
+#endif /* _GL_SYS_SOCKET_H */
/* Written by Eric Blake, Paul Eggert, and Jim Meyering. */
-#ifndef _GL_SYS_STAT_H
-#define _GL_SYS_STAT_H
-
/* This file is supposed to be used on platforms where <sys/stat.h> is
incomplete. It is intended to provide definitions and prototypes
needed by an application. Start with what the system provides. */
+#ifndef _GL_SYS_STAT_H
+
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_INCLUDE_NEXT@
# include_next <sys/stat.h>
#else
# include @ABSOLUTE_SYS_STAT_H@
#endif
+#ifndef _GL_SYS_STAT_H
+#define _GL_SYS_STAT_H
+
#ifndef S_IFMT
# define S_IFMT 0170000
#endif
#endif
#endif /* _GL_SYS_STAT_H */
+#endif /* _GL_SYS_STAT_H */
/* Written by Paul Eggert. */
#ifndef _GL_SYS_TIME_H
-#define _GL_SYS_TIME_H
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_SYS_TIME_H@
# if @HAVE_INCLUDE_NEXT@
# include_next <sys/time.h>
# include <time.h>
#endif
+#ifndef _GL_SYS_TIME_H
+#define _GL_SYS_TIME_H
+
#if ! @HAVE_STRUCT_TIMEVAL@
struct timeval
{
#endif
#endif /* _GL_SYS_TIME_H */
+#endif /* _GL_SYS_TIME_H */
/* Written by Simon Josefsson based on sysexits(3) man page */
#ifndef _GL_SYSEXITS_H
-#define _GL_SYSEXITS_H
#if @HAVE_SYSEXITS_H@
# undef EX_OK
# endif
+/* The include_next requires a split double-inclusion guard. */
# if @HAVE_INCLUDE_NEXT@
# include_next <sysexits.h>
# else
# define EX_CONFIG 78
# endif
-#else
+#endif
+
+#ifndef _GL_SYSEXITS_H
+#define _GL_SYSEXITS_H
+
+#if !@HAVE_SYSEXITS_H@
# define EX_OK 0 /* same value as EXIT_SUCCESS */
#endif
#endif /* _GL_SYSEXITS_H */
+#endif /* _GL_SYSEXITS_H */
#else
/* Normal invocation convention. */
-# if @HAVE_INCLUDE_NEXT@
-# include_next <time.h>
-# endif
-
# if ! defined _GL_TIME_H
-# define _GL_TIME_H
-# if ! @HAVE_INCLUDE_NEXT@
+/* The include_next requires a split double-inclusion guard. */
+# if @HAVE_INCLUDE_NEXT@
+# include_next <time.h>
+# else
# include @ABSOLUTE_TIME_H@
# endif
-# ifdef __cplusplus
+# if ! defined _GL_TIME_H
+# define _GL_TIME_H
+
+# ifdef __cplusplus
extern "C" {
-# endif
+# endif
/* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3).
Or they define it with the wrong member names or define it in <sys/time.h>
(e.g., FreeBSD circa 1997). */
-# if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@
-# if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-# include <sys/time.h>
-# else
-# undef timespec
-# define timespec rpl_timespec
+# if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@
+# if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
+# include <sys/time.h>
+# else
+# undef timespec
+# define timespec rpl_timespec
struct timespec
{
time_t tv_sec;
long int tv_nsec;
};
+# endif
# endif
-# endif
/* Sleep for at least RQTP seconds unless interrupted, If interrupted,
return -1 and store the remaining time into RMTP. See
<http://www.opengroup.org/susv3xsh/nanosleep.html>. */
-# if @REPLACE_NANOSLEEP@
-# define nanosleep rpl_nanosleep
+# if @REPLACE_NANOSLEEP@
+# define nanosleep rpl_nanosleep
int nanosleep (struct timespec const *__rqtp, struct timespec *__rmtp);
-# endif
+# endif
/* Convert TIMER to RESULT, assuming local time and UTC respectively. See
<http://www.opengroup.org/susv3xsh/localtime_r.html> and
<http://www.opengroup.org/susv3xsh/gmtime_r.html>. */
-# if @REPLACE_LOCALTIME_R@
-# undef localtime_r
-# define localtime_r rpl_localtime_r
-# undef gmtime_r
-# define gmtime_r rpl_gmtime_r
+# if @REPLACE_LOCALTIME_R@
+# undef localtime_r
+# define localtime_r rpl_localtime_r
+# undef gmtime_r
+# define gmtime_r rpl_gmtime_r
struct tm *localtime_r (time_t const *restrict __timer,
struct tm *restrict __result);
struct tm *gmtime_r (time_t const *restrict __timer,
struct tm *restrict __result);
-# endif
+# endif
/* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store
the resulting broken-down time into TM. See
<http://www.opengroup.org/susv3xsh/strptime.html>. */
-# if @REPLACE_STRPTIME@
-# undef strptime
-# define strptime rpl_strptime
+# if @REPLACE_STRPTIME@
+# undef strptime
+# define strptime rpl_strptime
char *strptime (char const *restrict __buf, char const *restrict __format,
struct tm *restrict __tm);
-# endif
+# endif
/* Convert TM to a time_t value, assuming UTC. */
-# if @REPLACE_TIMEGM@
-# undef timegm
-# define timegm rpl_timegm
+# if @REPLACE_TIMEGM@
+# undef timegm
+# define timegm rpl_timegm
time_t timegm (struct tm *__tm);
-# endif
+# endif
/* Encourage applications to avoid unsafe functions that can overrun
buffers when given outlandish struct tm values. Portable
applications should use strftime (or even sprintf) instead. */
-# if GNULIB_PORTCHECK
-# undef asctime
-# define asctime eschew_asctime
-# undef asctime_r
-# define asctime_r eschew_asctime_r
-# undef ctime
-# define ctime eschew_ctime
-# undef ctime_r
-# define ctime_r eschew_ctime_r
-# endif
+# if GNULIB_PORTCHECK
+# undef asctime
+# define asctime eschew_asctime
+# undef asctime_r
+# define asctime_r eschew_asctime_r
+# undef ctime
+# define ctime eschew_ctime
+# undef ctime_r
+# define ctime_r eschew_ctime_r
+# endif
-# ifdef __cplusplus
+# ifdef __cplusplus
}
-# endif
+# endif
-# endif
+# endif /* _GL_TIME_H */
+# endif /* _GL_TIME_H */
#endif
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_UNISTD_H
-#define _GL_UNISTD_H
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_UNISTD_H@
# if @HAVE_INCLUDE_NEXT@
# include_next <unistd.h>
# endif
#endif
+#ifndef _GL_UNISTD_H
+#define _GL_UNISTD_H
+
/* mingw doesn't define the SEEK_* macros in <unistd.h>. */
#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET)
# include <stdio.h>
#endif /* _GL_UNISTD_H */
+#endif /* _GL_UNISTD_H */
* For now, this just ensures proper prerequisite inclusion order.
*/
-#if @HAVE_INCLUDE_NEXT@
-# include <stdio.h>
-# include_next <wchar.h>
-#endif
-
#ifndef _GL_WCHAR_H
-#define _GL_WCHAR_H
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
<wchar.h>.
#include <time.h>
/* Include the original <wchar.h>. */
-#if ! @HAVE_INCLUDE_NEXT@
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_INCLUDE_NEXT@
+# include_next <wchar.h>
+#else
# include @ABSOLUTE_WCHAR_H@
#endif
+#ifndef _GL_WCHAR_H
+#define _GL_WCHAR_H
+
+#endif /* _GL_WCHAR_H */
#endif /* _GL_WCHAR_H */
* wctrans_t, and wctype_t are not yet implemented.
*/
+#ifndef _GL_WCTYPE_H
+
#if @HAVE_WINT_T@
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
# include <wchar.h>
#endif
+/* Include the original <wctype.h> if it exists.
+ BeOS 5 has the functions but no <wctype.h>. */
+/* The include_next requires a split double-inclusion guard. */
#if @HAVE_WCTYPE_H@
# if @HAVE_INCLUDE_NEXT@
# include_next <wctype.h>
+# else
+# include @ABSOLUTE_WCTYPE_H@
# endif
#endif
#ifndef _GL_WCTYPE_H
#define _GL_WCTYPE_H
-/* Include the original <wctype.h> if it exists.
- BeOS 5 has the functions but no <wctype.h>. */
-#if @HAVE_WCTYPE_H@
-# if ! @HAVE_INCLUDE_NEXT@
-# include @ABSOLUTE_WCTYPE_H@
-# endif
-#endif
-
#if @HAVE_WINT_T@
typedef wint_t __wctype_wint_t;
#else
# endif /* ! HAVE_ISWCNTRL */
#endif /* _GL_WCTYPE_H */
+#endif /* _GL_WCTYPE_H */