Commit b134508b by Ian Lance Taylor Committed by Jeff Law

getopt.c: Update to latest FSF version.

        * getopt.c: Update to latest FSF version.
        * getopt1.c: Likewise.
Bring over from devo.

From-SVN: r18169
parent 2b63596a
Thu Feb 12 16:29:49 1998 Ian Lance Taylor <ian@cygnus.com>
* getopt.c: Update to latest FSF version.
* getopt1.c: Likewise.
Fri Feb 6 01:35:17 1998 Manfred Hollstein <manfred@s-direktnet.de> Fri Feb 6 01:35:17 1998 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (FLAGS_TO_PASS): Don't pass PICFLAG. * Makefile.in (FLAGS_TO_PASS): Don't pass PICFLAG.
......
/* 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, 1993 Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or NOTE: The canonical source of this file is maintained with the GNU C Library.
modify it under the terms of the GNU Library General Public License Bugs can be reported to bug-glibc@prep.ai.mit.edu.
as published by the Free Software Foundation; either version 2, or
(at your option) any later version. 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
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Library General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU Library General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#if defined (emacs) || defined (CONFIG_BROKETS)
/* We use <config.h> instead of "config.h" so that a compilation
using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h
(which it would do because it found this file in $srcdir). */
#include <config.h> #include <config.h>
#else
#include "config.h"
#endif
#endif #endif
#include "getopt.h" #include "getopt.h"
#ifndef __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
...@@ -46,19 +42,22 @@ ...@@ -46,19 +42,22 @@
(especially if it is a shared library). Rather than having every GNU (especially if it is a shared library). Rather than having every GNU
program understand `configure --with-gnu-libc' and omit the object files, program understand `configure --with-gnu-libc' and omit the object files,
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. */
/* Many versions of the Linux C library include older, broken versions
of these routines, which will break the linker's command-line
parsing. */
#if defined (_LIBC) || !defined (__GNU_LIBRARY__) || defined (__linux__) #define GETOPT_INTERFACE_VERSION 2
#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
#include <gnu-versions.h>
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
#define ELIDE_CODE
#endif
#endif
#ifndef ELIDE_CODE
/* This needs to come after some library #include /* This needs to come after some library #include
to get __GNU_LIBRARY__ defined. */ to get __GNU_LIBRARY__ defined. */
#ifdef __GNU_LIBRARY__ #ifdef __GNU_LIBRARY__
#include <stdlib.h> #include <stdlib.h>
#else
char *getenv ();
#endif #endif
#ifndef NULL #ifndef NULL
...@@ -93,7 +92,7 @@ getopt_long_only (argc, argv, options, long_options, opt_index) ...@@ -93,7 +92,7 @@ getopt_long_only (argc, argv, options, long_options, opt_index)
} }
#endif /* _LIBC or not __GNU_LIBRARY__. */ #endif /* Not ELIDE_CODE. */
#ifdef TEST #ifdef TEST
...@@ -124,7 +123,7 @@ main (argc, argv) ...@@ -124,7 +123,7 @@ main (argc, argv)
c = getopt_long (argc, argv, "abc:d:0123456789", c = getopt_long (argc, argv, "abc:d:0123456789",
long_options, &option_index); long_options, &option_index);
if (c == EOF) if (c == -1)
break; break;
switch (c) switch (c)
......
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