Commit 7520c31b by Jeffrey A Law Committed by Jeff Law

pexecute.c: Updates from gcc.

        * pexecute.c: Updates from gcc.  Copy in gcc has been removed.  This
        is the canonical copy.  Define ISSPACE if !IN_GCC.
        * alloca.c, vfprintf.c, choose-temp.c, mkstemp.c, getopt.c: Similarly.
        * getopt1.c: Similarly.
        * Makefile.in: Build mkstemp.o

From-SVN: r22257
parent 8cfa5320
...@@ -2,7 +2,8 @@ Sat Sep 5 03:24:49 1998 Jeffrey A Law (law@cygnus.com) ...@@ -2,7 +2,8 @@ Sat Sep 5 03:24:49 1998 Jeffrey A Law (law@cygnus.com)
* pexecute.c: Updates from gcc. Copy in gcc has been removed. This * pexecute.c: Updates from gcc. Copy in gcc has been removed. This
is the canonical copy. Define ISSPACE if !IN_GCC. is the canonical copy. Define ISSPACE if !IN_GCC.
* alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Similarly. * alloca.c, vfprintf.c, choose-temp.c, mkstemp.c, getopt.c: Similarly.
* getopt1.c: Similarly.
* Makefile.in: Build mkstemp.o * Makefile.in: Build mkstemp.o
Wed Aug 19 14:05:01 1998 Mumit Khan <khan@xraylith.wisc.edu> Wed Aug 19 14:05:01 1998 Mumit Khan <khan@xraylith.wisc.edu>
......
/* Getopt for GNU. /* Getopt for GNU.
NOTE: getopt is now part of the C library, so if you don't know what NOTE: getopt is now part of the C library, so if you don't know what
"Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu "Keep this file name-space clean" means, talk to drepper@gnu.org
before changing it! before changing it!
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98
Free Software Foundation, Inc. Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library. NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu. Bugs can be reported to bug-glibc@gnu.org.
This program is free software; you can redistribute it and/or modify it 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 the under the terms of the GNU General Public License as published by the
...@@ -27,19 +27,19 @@ ...@@ -27,19 +27,19 @@
/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>. /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
Ditto for AIX 3.2 and <stdlib.h>. */ Ditto for AIX 3.2 and <stdlib.h>. */
#ifndef _NO_PROTO #ifndef _NO_PROTO
#define _NO_PROTO # define _NO_PROTO
#endif #endif
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include <config.h> # include <config.h>
#endif #endif
#if !defined (__STDC__) || !__STDC__ #if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems /* This is a separate conditional since some stdc systems
reject `defined (const)'. */ reject `defined (const)'. */
#ifndef const # ifndef const
#define const # define const
#endif # endif
#endif #endif
#include <stdio.h> #include <stdio.h>
...@@ -53,11 +53,11 @@ ...@@ -53,11 +53,11 @@
it is simpler to just do this in the source for each such file. */ it is simpler to just do this in the source for each such file. */
#define GETOPT_INTERFACE_VERSION 2 #define GETOPT_INTERFACE_VERSION 2
#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2 #if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
#include <gnu-versions.h> # include <gnu-versions.h>
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION # if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
#define ELIDE_CODE # define ELIDE_CODE
#endif # endif
#endif #endif
#ifndef ELIDE_CODE #ifndef ELIDE_CODE
...@@ -68,26 +68,26 @@ ...@@ -68,26 +68,26 @@
#ifdef __GNU_LIBRARY__ #ifdef __GNU_LIBRARY__
/* Don't include stdlib.h for non-GNU C libraries because some of them /* Don't include stdlib.h for non-GNU C libraries because some of them
contain conflicting prototypes for getopt. */ contain conflicting prototypes for getopt. */
#include <stdlib.h> # include <stdlib.h>
#include <unistd.h> # include <unistd.h>
#endif /* GNU C library. */ #endif /* GNU C library. */
#ifdef VMS #ifdef VMS
#include <unixlib.h> # include <unixlib.h>
#if HAVE_STRING_H - 0 # if HAVE_STRING_H - 0
#include <string.h> # include <string.h>
#endif # endif
#endif #endif
#ifndef _ #ifndef _
/* This is for other GNU distributions with internationalized messages. /* This is for other GNU distributions with internationalized messages.
When compiling libc, the _ macro is predefined. */ When compiling libc, the _ macro is predefined. */
#ifdef HAVE_LIBINTL_H # ifdef HAVE_LIBINTL_H
# include <libintl.h> # include <libintl.h>
# define _(msgid) gettext (msgid) # define _(msgid) gettext (msgid)
#else # else
# define _(msgid) (msgid) # define _(msgid) (msgid)
#endif # endif
#endif #endif
/* This version of `getopt' appears to the caller like standard Unix `getopt' /* This version of `getopt' appears to the caller like standard Unix `getopt'
...@@ -197,14 +197,22 @@ static char *posixly_correct; ...@@ -197,14 +197,22 @@ static char *posixly_correct;
because there are many ways it can cause trouble. because there are many ways it can cause trouble.
On some systems, it contains special magic macros that don't work On some systems, it contains special magic macros that don't work
in GCC. */ in GCC. */
#include <string.h> # include <string.h>
#define my_index strchr # define my_index strchr
#else #else
# if HAVE_STRING_H
# include <string.h>
# else
# include <strings.h>
# endif
/* Avoid depending on library functions or files /* Avoid depending on library functions or files
whose names are inconsistent. */ whose names are inconsistent. */
char *getenv (); #ifndef getenv
extern char *getenv ();
#endif
static char * static char *
my_index (str, chr) my_index (str, chr)
...@@ -225,11 +233,11 @@ my_index (str, chr) ...@@ -225,11 +233,11 @@ my_index (str, chr)
#ifdef __GNUC__ #ifdef __GNUC__
/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
That was relevant to code that was here before. */ That was relevant to code that was here before. */
#if !defined (__STDC__) || !__STDC__ # if (!defined __STDC__ || !__STDC__) && !defined strlen
/* gcc with -traditional declares the built-in strlen to return int, /* gcc with -traditional declares the built-in strlen to return int,
and has done so at least since version 2.4.5. -- rms. */ and has done so at least since version 2.4.5. -- rms. */
extern int strlen (const char *); extern int strlen (const char *);
#endif /* not __STDC__ */ # endif /* not __STDC__ */
#endif /* __GNUC__ */ #endif /* __GNUC__ */
#endif /* not __GNU_LIBRARY__ */ #endif /* not __GNU_LIBRARY__ */
...@@ -292,7 +300,7 @@ text_set_element (__libc_subinit, store_args_and_env); ...@@ -292,7 +300,7 @@ text_set_element (__libc_subinit, store_args_and_env);
`first_nonopt' and `last_nonopt' are relocated so that they describe `first_nonopt' and `last_nonopt' are relocated so that they describe
the new indices of the non-options in ARGV after they are moved. */ the new indices of the non-options in ARGV after they are moved. */
#if defined (__STDC__) && __STDC__ #if defined __STDC__ && __STDC__
static void exchange (char **); static void exchange (char **);
#endif #endif
...@@ -378,7 +386,7 @@ exchange (argv) ...@@ -378,7 +386,7 @@ exchange (argv)
/* Initialize the internal data when the first call is made. */ /* Initialize the internal data when the first call is made. */
#if defined (__STDC__) && __STDC__ #if defined __STDC__ && __STDC__
static const char *_getopt_initialize (int, char *const *, const char *); static const char *_getopt_initialize (int, char *const *, const char *);
#endif #endif
static const char * static const char *
...@@ -527,11 +535,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) ...@@ -527,11 +535,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
from the shell indicating it is not an option. The later information from the shell indicating it is not an option. The later information
is only used when the used in the GNU libc. */ is only used when the used in the GNU libc. */
#ifdef _LIBC #ifdef _LIBC
#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
|| (optind < nonoption_flags_len \ || (optind < nonoption_flags_len \
&& __getopt_nonoption_flags[optind] == '1')) && __getopt_nonoption_flags[optind] == '1'))
#else #else
#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
#endif #endif
if (nextchar == NULL || *nextchar == '\0') if (nextchar == NULL || *nextchar == '\0')
...@@ -690,21 +698,23 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) ...@@ -690,21 +698,23 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
else else
{ {
if (opterr) if (opterr)
if (argv[optind - 1][1] == '-') {
/* --option */ if (argv[optind - 1][1] == '-')
fprintf (stderr, /* --option */
_("%s: option `--%s' doesn't allow an argument\n"), fprintf (stderr,
argv[0], pfound->name); _("%s: option `--%s' doesn't allow an argument\n"),
else argv[0], pfound->name);
/* +option or -option */ else
fprintf (stderr, /* +option or -option */
_("%s: option `%c%s' doesn't allow an argument\n"), fprintf (stderr,
argv[0], argv[optind - 1][0], pfound->name); _("%s: option `%c%s' doesn't allow an argument\n"),
argv[0], argv[optind - 1][0], pfound->name);
nextchar += strlen (nextchar);
nextchar += strlen (nextchar);
optopt = pfound->val;
return '?'; optopt = pfound->val;
return '?';
}
} }
} }
else if (pfound->has_arg == 1) else if (pfound->has_arg == 1)
......
/* getopt_long and getopt_long_only entry points for GNU getopt. /* getopt_long and getopt_long_only entry points for GNU getopt.
Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc. Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library. NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu. Bugs can be reported to bug-glibc@gnu.org.
This program is free software; you can redistribute it and/or modify it 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 the under the terms of the GNU General Public License as published by the
...@@ -25,7 +26,7 @@ ...@@ -25,7 +26,7 @@
#include "getopt.h" #include "getopt.h"
#if !defined (__STDC__) || !__STDC__ #if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems /* This is a separate conditional since some stdc systems
reject `defined (const)'. */ reject `defined (const)'. */
#ifndef const #ifndef const
...@@ -44,7 +45,7 @@ ...@@ -44,7 +45,7 @@
it is simpler to just do this in the source for each such file. */ it is simpler to just do this in the source for each such file. */
#define GETOPT_INTERFACE_VERSION 2 #define GETOPT_INTERFACE_VERSION 2
#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2 #if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
#include <gnu-versions.h> #include <gnu-versions.h>
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
#define ELIDE_CODE #define ELIDE_CODE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment