Mercurial > hg > octave-nkf > gnulib-hg
changeset 8902:eb07e44564a4
Split the double-inclusion guard. Fixes a problem with #include_next.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Wed, 30 May 2007 02:16:51 +0000 |
parents | 220e79620e7a |
children | 33db9cbd68d7 |
files | ChangeLog lib/dirent_.h lib/fcntl_.h lib/float_.h lib/iconv_.h lib/inttypes_.h lib/locale_.h lib/math_.h lib/netinet_in_.h lib/search_.h lib/signal_.h lib/stdint_.h lib/stdio_.h lib/stdlib_.h lib/string_.h lib/sys_select_.h lib/sys_socket_.h lib/sys_stat_.h lib/sys_time_.h lib/sysexits_.h lib/time_.h lib/unistd_.h lib/wchar_.h lib/wctype_.h |
diffstat | 24 files changed, 226 insertions(+), 118 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,30 @@ +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
--- a/lib/dirent_.h +++ b/lib/dirent_.h @@ -16,14 +16,18 @@ 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 @@ -43,3 +47,4 @@ #endif /* _GL_DIRENT_H */ +#endif /* _GL_DIRENT_H */
--- a/lib/fcntl_.h +++ b/lib/fcntl_.h @@ -1,6 +1,6 @@ /* 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 @@ -19,17 +19,20 @@ /* 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. */ @@ -117,4 +120,6 @@ # define O_TEXT 0 #endif -#endif + +#endif /* _GL_FCNTL_H */ +#endif /* _GL_FCNTL_H */
--- a/lib/float_.h +++ b/lib/float_.h @@ -17,14 +17,17 @@ 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. */ @@ -57,3 +60,4 @@ #endif #endif /* _GL_FLOAT_H */ +#endif /* _GL_FLOAT_H */
--- a/lib/iconv_.h +++ b/lib/iconv_.h @@ -17,14 +17,17 @@ 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 @@ -42,4 +45,5 @@ } #endif -#endif +#endif /* _GL_ICONV_H */ +#endif /* _GL_ICONV_H */
--- a/lib/inttypes_.h +++ b/lib/inttypes_.h @@ -16,9 +16,15 @@ 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@ @@ -32,11 +38,6 @@ #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. */
--- a/lib/locale_.h +++ b/lib/locale_.h @@ -16,14 +16,17 @@ 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 @@ -31,3 +34,4 @@ #endif #endif /* _GL_LOCALE_H */ +#endif /* _GL_LOCALE_H */
--- a/lib/math_.h +++ b/lib/math_.h @@ -16,17 +16,18 @@ 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. */ @@ -264,4 +265,5 @@ } #endif -#endif +#endif /* _GL_MATH_H */ +#endif /* _GL_MATH_H */
--- a/lib/netinet_in_.h +++ b/lib/netinet_in_.h @@ -16,20 +16,26 @@ 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> -# 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>. */ @@ -38,3 +44,4 @@ #endif #endif /* _GL_NETINET_IN_H */ +#endif /* _GL_NETINET_IN_H */
--- a/lib/search_.h +++ b/lib/search_.h @@ -17,8 +17,8 @@ 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> @@ -27,6 +27,9 @@ # endif #endif +#ifndef _GL_SEARCH_H +#define _GL_SEARCH_H + /* The definition of GL_LINK_WARNING is copied here. */ @@ -112,4 +115,5 @@ } #endif -#endif +#endif /* _GL_SEARCH_H */ +#endif /* _GL_SEARCH_H */
--- a/lib/signal_.h +++ b/lib/signal_.h @@ -29,14 +29,17 @@ /* 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. */ @@ -99,4 +102,5 @@ #endif #endif /* _GL_SIGNAL_H */ +#endif /* _GL_SIGNAL_H */ #endif
--- a/lib/stdint_.h +++ b/lib/stdint_.h @@ -16,14 +16,13 @@ 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 @@ -42,7 +41,8 @@ /* 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 @@ -50,6 +50,9 @@ # 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. @@ -506,3 +509,4 @@ #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ #endif /* _GL_STDINT_H */ +#endif /* _GL_STDINT_H */
--- a/lib/stdio_.h +++ b/lib/stdio_.h @@ -28,17 +28,18 @@ #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> @@ -315,4 +316,5 @@ #endif #endif /* _GL_STDIO_H */ +#endif /* _GL_STDIO_H */ #endif
--- a/lib/stdlib_.h +++ b/lib/stdlib_.h @@ -28,17 +28,18 @@ #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. */ @@ -135,4 +136,5 @@ #endif #endif /* _GL_STDLIB_H */ +#endif /* _GL_STDLIB_H */ #endif
--- a/lib/string_.h +++ b/lib/string_.h @@ -16,17 +16,18 @@ 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. */ @@ -541,4 +542,5 @@ } #endif -#endif +#endif /* _GL_STRING_H */ +#endif /* _GL_STRING_H */
--- a/lib/sys_select_.h +++ b/lib/sys_select_.h @@ -16,22 +16,26 @@ 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>. */ @@ -40,3 +44,4 @@ #endif #endif /* _GL_SYS_SELECT_H */ +#endif /* _GL_SYS_SELECT_H */
--- a/lib/sys_socket_.h +++ b/lib/sys_socket_.h @@ -16,28 +16,32 @@ 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>. @@ -88,3 +92,4 @@ #endif /* HAVE_SYS_SOCKET_H */ #endif /* _GL_SYS_SOCKET_H */ +#endif /* _GL_SYS_SOCKET_H */
--- a/lib/sys_stat_.h +++ b/lib/sys_stat_.h @@ -17,19 +17,22 @@ /* 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 @@ -278,3 +281,4 @@ #endif #endif /* _GL_SYS_STAT_H */ +#endif /* _GL_SYS_STAT_H */
--- a/lib/sys_time_.h +++ b/lib/sys_time_.h @@ -19,8 +19,8 @@ /* 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> @@ -31,6 +31,9 @@ # include <time.h> #endif +#ifndef _GL_SYS_TIME_H +#define _GL_SYS_TIME_H + #if ! @HAVE_STRUCT_TIMEVAL@ struct timeval { @@ -46,3 +49,4 @@ #endif #endif /* _GL_SYS_TIME_H */ +#endif /* _GL_SYS_TIME_H */
--- a/lib/sysexits_.h +++ b/lib/sysexits_.h @@ -18,7 +18,6 @@ /* Written by Simon Josefsson based on sysexits(3) man page */ #ifndef _GL_SYSEXITS_H -#define _GL_SYSEXITS_H #if @HAVE_SYSEXITS_H@ @@ -30,6 +29,7 @@ # undef EX_OK # endif +/* The include_next requires a split double-inclusion guard. */ # if @HAVE_INCLUDE_NEXT@ # include_next <sysexits.h> # else @@ -41,7 +41,12 @@ # 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 */ @@ -64,3 +69,4 @@ #endif #endif /* _GL_SYSEXITS_H */ +#endif /* _GL_SYSEXITS_H */
--- a/lib/time_.h +++ b/lib/time_.h @@ -30,94 +30,96 @@ #else /* Normal invocation convention. */ -# if @HAVE_INCLUDE_NEXT@ -# include_next <time.h> -# endif +# if ! defined _GL_TIME_H -# 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
--- a/lib/unistd_.h +++ b/lib/unistd_.h @@ -16,8 +16,8 @@ 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> @@ -26,6 +26,9 @@ # 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> @@ -236,3 +239,4 @@ #endif /* _GL_UNISTD_H */ +#endif /* _GL_UNISTD_H */
--- a/lib/wchar_.h +++ b/lib/wchar_.h @@ -25,13 +25,7 @@ * 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>. @@ -42,8 +36,15 @@ #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 */
--- a/lib/wctype_.h +++ b/lib/wctype_.h @@ -26,6 +26,8 @@ * 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 @@ -38,23 +40,20 @@ # 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 @@ -163,3 +162,4 @@ # endif /* ! HAVE_ISWCNTRL */ #endif /* _GL_WCTYPE_H */ +#endif /* _GL_WCTYPE_H */