From c5af724c0b214a517f8558887f7a70efcfa2c813 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 29 Nov 2003 07:20:47 +0000 Subject: [PATCH] Update. 2003-10-10 Simon Josefsson * argp/argp-namefrob.h [!_LIBC]: Include mempcpy.h, strcase.h, strchrnul.h, strndup.h (from gnulib). * argp/argp-parse.c: Add alloca.h include snippet verbatim from Autoconf manual. * argp/argp-help.c: Replace alloca.h include snipper with verbatim Autoconf manual version. * argp/argp.h: Map __restrict to restrict or empty string when necessary, copied verbatim from posix/regex.h. --- ChangeLog | 11 +++++++++++ NEWS | 2 +- argp/argp-help.c | 18 +++++++----------- argp/argp-namefrob.h | 5 +++++ argp/argp-parse.c | 17 ++++++++++++++++- argp/argp.h | 12 ++++++++++++ 6 files changed, 52 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index a9bf18e..78eb083 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2003-10-10 Simon Josefsson + + * argp/argp-namefrob.h [!_LIBC]: Include mempcpy.h, strcase.h, + strchrnul.h, strndup.h (from gnulib). + * argp/argp-parse.c: Add alloca.h include snippet verbatim from + Autoconf manual. + * argp/argp-help.c: Replace alloca.h include snipper with verbatim + Autoconf manual version. + * argp/argp.h: Map __restrict to restrict or empty string when + necessary, copied verbatim from posix/regex.h. + 2003-10-09 Steven Munroe * Makefile: Allow for c++-types-$(config-machine)-$(config-os).data in diff --git a/NEWS b/NEWS index 8a16f07..16d0b96 100644 --- a/NEWS +++ b/NEWS @@ -22,7 +22,7 @@ Version 2.3.3 * support for non-executable stacks on x86 has been added. Changes mostly by Roland McGrath. -* regex is now much faster for multibyte locaes. Changes by Jakub Jelinek +* regex is now much faster for multibyte locales. Changes by Jakub Jelinek and Ulrich Drepper. * getaddrinfo now performs destination address selection according to diff --git a/argp/argp-help.c b/argp/argp-help.c index 1365abc..b7e088e 100644 --- a/argp/argp-help.c +++ b/argp/argp-help.c @@ -26,20 +26,16 @@ #include #endif -#ifndef alloca -# ifdef __GNUC__ -# define alloca __builtin_alloca -# define HAVE_ALLOCA 1 +/* AIX requires this to be the first thing in the file. */ +#ifndef __GNUC__ +# if HAVE_ALLOCA_H || defined _LIBC +# include # else -# if defined HAVE_ALLOCA_H || defined _LIBC -# include +# ifdef _AIX +#pragma alloca # else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca +# ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); -# endif # endif # endif # endif diff --git a/argp/argp-namefrob.h b/argp/argp-namefrob.h index 26e285b..6924df7 100644 --- a/argp/argp-namefrob.h +++ b/argp/argp-namefrob.h @@ -77,6 +77,11 @@ #undef __argp_fmtstream_wmargin #define __argp_fmtstream_wmargin argp_fmtstream_wmargin +#include "mempcpy.h" +#include "strcase.h" +#include "strchrnul.h" +#include "strndup.h" + /* normal libc functions we call */ #undef __flockfile #define __flockfile flockfile diff --git a/argp/argp-parse.c b/argp/argp-parse.c index 0b619db..47223dc 100644 --- a/argp/argp-parse.c +++ b/argp/argp-parse.c @@ -1,5 +1,5 @@ /* Hierarchial argument parsing, layered over getopt - Copyright (C) 1995-2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1995-2000, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -22,6 +22,21 @@ #include #endif +/* AIX requires this to be the first thing in the file. */ +#ifndef __GNUC__ +# if HAVE_ALLOCA_H || defined _LIBC +# include +# else +# ifdef _AIX +#pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +#endif + #include #include #include diff --git a/argp/argp.h b/argp/argp.h index cb2f85a..78a9d1b 100644 --- a/argp/argp.h +++ b/argp/argp.h @@ -49,6 +49,18 @@ # endif #endif +/* GCC 2.95 and later have "__restrict"; C99 compilers have + "restrict", and "configure" may have defined "restrict". */ +#ifndef __restrict +# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)) +# if defined restrict || 199901L <= __STDC_VERSION__ +# define __restrict restrict +# else +# define __restrict +# endif +# endif +#endif + #ifndef __error_t_defined typedef int error_t; # define __error_t_defined -- 2.7.4