diff options
author | Paul Eggert <eggert@twinsun.com> | 2005-07-26 21:43:13 +0000 |
---|---|---|
committer | Paul Eggert <eggert@twinsun.com> | 2005-07-26 21:43:13 +0000 |
commit | 9eff9fe3e8ab53b7a8ad2c1633b0681beb3b655c (patch) | |
tree | 36f83598b89a1567622ee38b623f7888a4c2e904 /lib-src/getopt1.c | |
parent | 1c9916a1f9dc944ee733f5c77db39013123da8da (diff) | |
download | emacs-9eff9fe3e8ab53b7a8ad2c1633b0681beb3b655c.tar.gz emacs-9eff9fe3e8ab53b7a8ad2c1633b0681beb3b655c.tar.bz2 emacs-9eff9fe3e8ab53b7a8ad2c1633b0681beb3b655c.zip |
Merge gnulib getopt implementation into Emacs.
* Makefile.in (AUTOCONF_INPUTS): New macro.
($(srcdir)/configure, $(srcdir)/src/stamp-h.in): Depend on it,
so that these files also depend on m4/getopt.m4.
* configure.in: Configure getopt by including m4/getopt.m4,
and configuring a getopt replacement if necessary.
* make-dist: Add m4 subdirectory. Unlink lib-src/getopt.h.
* m4/getopt.m4: New file.
* lib-src/Makefile.in (mostlyclean): Remove getopt.h, getopt.h-t.
(GETOPT_H): New macro, from gnulib.
(getopt.h): New rule, from gnulib.
(GETOPTOBJS): Now autoconfigured.
(GETOPTDEPS): getopt.h is now autoconfigured.
(getopt.o, getopt1.o): Depend on $(GETOPT_H), not ${srcdir}/getopt.h.
(getopt.o): Depend on ${srcdir}/gettext.h.
(movemail.o): Depend on $(GETOPT_H).
* lib-src/getopt.c, lib-src/getopt1.c: Sync from gnulib.
* lib-src/getopt_.h, lib-src/getopt_int.h, lib-src/gettext.h:
New files, from gnulib.
* lib-src/getopt.h: Removed (now is getopt_.h).
* nt/inc/gettext.h: Remove; no longer needed now that
lib-src/gettext.h exists.
* src/s/cygwin.h (C_SWITCH_SYSTEM): Remove, since gettext.h is
now part of lib-src.
Diffstat (limited to 'lib-src/getopt1.c')
-rw-r--r-- | lib-src/getopt1.c | 82 |
1 files changed, 29 insertions, 53 deletions
diff --git a/lib-src/getopt1.c b/lib-src/getopt1.c index 4ec1e50b830..5acd2245af0 100644 --- a/lib-src/getopt1.c +++ b/lib-src/getopt1.c @@ -1,5 +1,5 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 + Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -26,36 +26,10 @@ #else # include "getopt.h" #endif - -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif +#include "getopt_int.h" #include <stdio.h> -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - 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. */ - -#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 to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ @@ -67,14 +41,20 @@ #endif int -getopt_long (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; +getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, + const struct option *long_options, int *opt_index) { - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); + return _getopt_internal (argc, (char **) argv, options, long_options, + opt_index, 0, 0); +} + +int +_getopt_long_r (int argc, char **argv, const char *options, + const struct option *long_options, int *opt_index, + struct _getopt_data *d) +{ + return _getopt_internal_r (argc, argv, options, long_options, opt_index, + 0, 0, d); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. @@ -83,31 +63,30 @@ getopt_long (argc, argv, options, long_options, opt_index) instead. */ int -getopt_long_only (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; +getopt_long_only (int argc, char *__getopt_argv_const *argv, + const char *options, + const struct option *long_options, int *opt_index) { - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); + return _getopt_internal (argc, (char **) argv, options, long_options, + opt_index, 1, 0); } -# ifdef _LIBC -libc_hidden_def (getopt_long) -libc_hidden_def (getopt_long_only) -# endif +int +_getopt_long_only_r (int argc, char **argv, const char *options, + const struct option *long_options, int *opt_index, + struct _getopt_data *d) +{ + return _getopt_internal_r (argc, argv, options, long_options, opt_index, + 1, 0, d); +} -#endif /* Not ELIDE_CODE. */ #ifdef TEST #include <stdio.h> int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { int c; int digit_optind = 0; @@ -193,6 +172,3 @@ main (argc, argv) } #endif /* TEST */ - -/* arch-tag: 28a5c558-b0c0-4bff-b5bc-e2e20291d4b6 - (do not change this comment) */ |