+2010-03-29 Bruno Haible <bruno@clisp.org>
+
+ Emit #pragma system_header after the inclusion guard, not before.
+ * lib/arpa_inet.in.h: Emit #pragma system_header after the inclusion
+ guard that spans the entire file, not before. This enables an
+ optimization in GCC's preprocessor.
+ * lib/ctype.in.h: Likewise.
+ * lib/dirent.in.h: Likewise.
+ * lib/errno.in.h: Likewise.
+ * lib/float.in.h: Likewise.
+ * lib/getopt.in.h: Likewise.
+ * lib/iconv.in.h: Likewise.
+ * lib/langinfo.in.h: Likewise.
+ * lib/locale.in.h: Likewise.
+ * lib/math.in.h: Likewise.
+ * lib/netdb.in.h: Likewise.
+ * lib/netinet_in.in.h: Likewise.
+ * lib/pty.in.h: Likewise.
+ * lib/sched.in.h: Likewise.
+ * lib/se-selinux.in.h: Likewise.
+ * lib/search.in.h: Likewise.
+ * lib/spawn.in.h: Likewise.
+ * lib/stdarg.in.h: Likewise.
+ * lib/stdint.in.h: Likewise.
+ * lib/string.in.h: Likewise.
+ * lib/strings.in.h: Likewise.
+ * lib/sys_file.in.h: Likewise.
+ * lib/sys_ioctl.in.h: Likewise.
+ * lib/sys_time.in.h: Likewise.
+ * lib/sys_times.in.h: Likewise.
+ * lib/sys_utsname.in.h: Likewise.
+ * lib/sys_wait.in.h: Likewise.
+ * lib/sysexits.in.h: Likewise.
+ * lib/wctype.in.h: Likewise.
+
2010-03-28 James Youngman <jay@gnu.org>
save-cwd: don't leak a file descriptor when the caller execs.
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-# if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-# endif
-
#ifndef _GL_ARPA_INET_H
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
/* Gnulib's sys/socket.h is responsible for pulling in winsock2.h etc
under MinGW.
But avoid namespace pollution on glibc systems. */
* <http://www.opengroup.org/onlinepubs/9699919799/basedefs/ctype.h.html>
*/
+#ifndef _GL_CTYPE_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_CTYPE_H
-
/* Include the original <ctype.h>. */
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_CTYPE_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef _GL_DIRENT_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_DIRENT_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_DIRENT_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_ERRNO_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_ERRNO_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_ERRNO_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef _GL_FLOAT_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_FLOAT_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_FLOAT_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef _GL_GETOPT_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_GETOPT_H
-
/* The include_next requires a split double-inclusion guard. We must
also inform the replacement unistd.h to not recursively use
<getopt.h>; our definitions will be present soon enough. */
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_ICONV_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_ICONV_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_ICONV_H@
* <http://www.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html>
*/
+#ifndef _GL_LANGINFO_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_LANGINFO_H
-
/* The include_next requires a split double-inclusion guard. */
#if @HAVE_LANGINFO_H@
# @INCLUDE_NEXT@ @NEXT_LANGINFO_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef _GL_LOCALE_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_LOCALE_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_LOCALE_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef _GL_MATH_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_MATH_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
It is intended to provide definitions and prototypes needed by an
application. */
-# if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-# endif
-
#ifndef _GL_NETDB_H
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
#if @HAVE_NETDB_H@
/* The include_next requires a split double-inclusion guard. */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-# if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-# endif
-
#ifndef _GL_NETINET_IN_H
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
#if @HAVE_NETINET_IN_H@
/* On many platforms, <netinet/in.h> assumes prior inclusion of
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_PTY_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_PTY_H
-
/* The include_next requires a split double-inclusion guard. */
#if @HAVE_PTY_H@
# @INCLUDE_NEXT@ @NEXT_PTY_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef _GL_SCHED_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_SCHED_H
-
/* The include_next requires a split double-inclusion guard. */
#if @HAVE_SCHED_H@
# @INCLUDE_NEXT@ @NEXT_SCHED_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-#endif
-
#ifndef _GL_SELINUX_SELINUX_H
# define _GL_SELINUX_SELINUX_H
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+
# if HAVE_SELINUX_SELINUX_H
#@INCLUDE_NEXT@ @NEXT_SELINUX_SELINUX_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef _GL_SEARCH_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_SEARCH_H
-
/* The include_next requires a split double-inclusion guard. */
#if @HAVE_SEARCH_H@
# @INCLUDE_NEXT@ @NEXT_SEARCH_H@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef _GL_SPAWN_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_SPAWN_H
-
/* The include_next requires a split double-inclusion guard. */
#if @HAVE_SPAWN_H@
# @INCLUDE_NEXT@ @NEXT_SPAWN_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_STDARG_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_STDARG_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STDARG_H@
* <http://www.opengroup.org/susv3xbd/stdint.h.html>
*/
-# if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-# endif
-
#ifndef _GL_STDINT_H
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
/* When including a system file that in turn includes <inttypes.h>,
use the system <inttypes.h>, not our substitute. This avoids
problems with (for example) VMS, whose <sys/bitypes.h> includes
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
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_STRING_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STRING_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_STRINGS_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_STRINGS_H
-
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STRINGS_H@
/* Written by Richard W.M. Jones. */
-# if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-# endif
-
#ifndef _GL_SYS_FILE_H
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
/* The include_next requires a split double-inclusion guard. */
-# if @HAVE_SYS_FILE_H@
-# @INCLUDE_NEXT@ @NEXT_SYS_FILE_H@
-# endif
+#if @HAVE_SYS_FILE_H@
+# @INCLUDE_NEXT@ @NEXT_SYS_FILE_H@
+#endif
#ifndef _GL_SYS_FILE_H
#define _GL_SYS_FILE_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_IOCTL_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_SYS_IOCTL_H
-
/* The include_next requires a split double-inclusion guard. */
#if @HAVE_SYS_IOCTL_H@
# @INCLUDE_NEXT@ @NEXT_SYS_IOCTL_H@
/* Written by Paul Eggert. */
+#if defined _GL_SYS_TIME_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#if defined _GL_SYS_TIME_H
-
/* Simply delegate to the system's header, without adding anything. */
# if @HAVE_SYS_TIME_H@
# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
/* This file is supposed to be used on platforms where <sys/times.h>
is missing. */
+#ifndef _GL_SYS_TIMES_H
+
# if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# endif
-#ifndef _GL_SYS_TIMES_H
-
# if @HAVE_SYS_TIMES_H@
# @INCLUDE_NEXT@ @NEXT_SYS_TIMES_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_SYS_UTSNAME_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_SYS_UTSNAME_H
-
#if @HAVE_SYS_UTSNAME_H@
# @INCLUDE_NEXT@ @NEXT_SYS_UTSNAME_H@
#endif
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+#ifndef _GL_SYS_WAIT_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_SYS_WAIT_H
-
/* The include_next requires a split double-inclusion guard. */
#if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
# @INCLUDE_NEXT@ @NEXT_SYS_WAIT_H@
/* Written by Simon Josefsson based on sysexits(3) man page */
+#ifndef _GL_SYSEXITS_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_SYSEXITS_H
-
#if @HAVE_SYSEXITS_H@
/* IRIX 6.5 has an <unistd.h> that defines a macro EX_OK with a nonzero
* wctrans_t, and wctype_t are not yet implemented.
*/
+#ifndef _GL_WCTYPE_H
+
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#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