about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--NEWS2
-rw-r--r--argp/argp-help.c18
-rw-r--r--argp/argp-namefrob.h5
-rw-r--r--argp/argp-parse.c17
-rw-r--r--argp/argp.h12
6 files changed, 52 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index a9bf18e9ef..78eb0838ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2003-10-10  Simon Josefsson  <jas@extundo.com>
+
+	* 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  <sjmunroe@us.ibm.com>
 
 	* Makefile: Allow for c++-types-$(config-machine)-$(config-os).data in
diff --git a/NEWS b/NEWS
index 8a16f07a9e..16d0b96b04 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 1365abcea6..b7e088ef10 100644
--- a/argp/argp-help.c
+++ b/argp/argp-help.c
@@ -26,20 +26,16 @@
 #include <config.h>
 #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 <alloca.h>
 # else
-#  if defined HAVE_ALLOCA_H || defined _LIBC
-#   include <alloca.h>
+#  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 26e285bfba..6924df7ddc 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 0b619db0f3..47223dc597 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 <miles@gnu.ai.mit.edu>.
 
@@ -22,6 +22,21 @@
 #include <config.h>
 #endif
 
+/* AIX requires this to be the first thing in the file.  */
+#ifndef __GNUC__
+# if HAVE_ALLOCA_H || defined _LIBC
+#  include <alloca.h>
+# else
+#  ifdef _AIX
+#pragma alloca
+#  else
+#   ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#   endif
+#  endif
+# endif
+#endif
+
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/argp/argp.h b/argp/argp.h
index cb2f85aee7..78a9d1bb3c 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