about summary refs log tree commit diff
path: root/argp
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-11-29 07:20:47 +0000
committerUlrich Drepper <drepper@redhat.com>2003-11-29 07:20:47 +0000
commitc5af724c0b214a517f8558887f7a70efcfa2c813 (patch)
tree8b1b822c45022d0bf414d1fc9a41794b17900410 /argp
parent0a76d15e91c26aae360749b4eb75559971e4fcfb (diff)
downloadglibc-c5af724c0b214a517f8558887f7a70efcfa2c813.tar.gz
glibc-c5af724c0b214a517f8558887f7a70efcfa2c813.tar.xz
glibc-c5af724c0b214a517f8558887f7a70efcfa2c813.zip
Update.
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.
Diffstat (limited to 'argp')
-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
4 files changed, 40 insertions, 12 deletions
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