]> git.saurik.com Git - apple/libc.git/blobdiff - stdlib/FreeBSD/getopt_long.c
Libc-1158.50.2.tar.gz
[apple/libc.git] / stdlib / FreeBSD / getopt_long.c
index ef306bc2ab135a4187c44f6e24bda6c39c9e5ea9..c42edb3618681bf6b6e37429916c5abee25772b9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: getopt_long.c,v 1.17 2004/06/03 18:46:52 millert Exp $        */
+/*     $OpenBSD: getopt_long.c,v 1.21 2006/09/22 17:22:05 millert Exp $        */
 /*     $NetBSD: getopt_long.c,v 1.15 2002/01/31 22:43:40 tv Exp $      */
 
 /*
@@ -62,7 +62,7 @@ static char *rcsid = "$OpenBSD: getopt_long.c,v 1.16 2004/02/04 18:17:25 millert
 #endif /* LIBC_SCCS and not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdlib/getopt_long.c,v 1.12 2004/07/06 13:58:45 ache Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdlib/getopt_long.c,v 1.15 2006/09/23 14:48:31 ache Exp $");
 
 #include <err.h>
 #include <errno.h>
@@ -72,7 +72,7 @@ __FBSDID("$FreeBSD: src/lib/libc/stdlib/getopt_long.c,v 1.12 2004/07/06 13:58:45
 
 #define GNU_COMPATIBLE         /* Be more compatible, configure's use us! */
 
-#ifndef GNU_COMPATIBLE
+#if 0                          /* we prefer to keep our getopt(3) */
 #define        REPLACE_GETOPT          /* use this getopt as the system getopt(3) */
 #endif
 
@@ -366,7 +366,7 @@ getopt_internal(int nargc, char * const *nargv, const char *options,
 {
        char *oli;                              /* option letter list index */
        int optchar, short_too;
-       int posixly_correct;
+       int posixly_correct;    /* no static, can be changed on the fly */
 
        if (options == NULL)
                return (-1);
@@ -558,7 +558,6 @@ start:
                optarg = NULL;
                if (*place)                     /* no white space */
                        optarg = place;
-               /* XXX: disable test for :: if PC? (GNU doesn't) */
                else if (oli[1] != ':') {       /* arg not optional */
                        if (++optind >= nargc) {        /* no arg */
                                place = EMSG;
@@ -568,14 +567,6 @@ start:
                                return (BADARG);
                        } else
                                optarg = nargv[optind];
-               } else if (!(flags & FLAG_PERMUTE)) {
-                       /*
-                        * If permutation is disabled, we can accept an
-                        * optional arg separated by whitespace so long
-                        * as it does not start with a dash (-).
-                        */
-                       if (optind + 1 < nargc && *nargv[optind + 1] != '-')
-                               optarg = nargv[++optind];
                }
                place = EMSG;
                ++optind;
@@ -612,12 +603,8 @@ getopt(int nargc, char * const *nargv, const char *options)
  *     Parse argc/argv argument vector.
  */
 int
-getopt_long(nargc, nargv, options, long_options, idx)
-       int nargc;
-       char * const *nargv;
-       const char *options;
-       const struct option *long_options;
-       int *idx;
+getopt_long(int nargc, char * const *nargv, const char *options,
+       const struct option *long_options, int *idx)
 {
 
        return (getopt_internal(nargc, nargv, options, long_options, idx,
@@ -629,12 +616,8 @@ getopt_long(nargc, nargv, options, long_options, idx)
  *     Parse argc/argv argument vector.
  */
 int
-getopt_long_only(nargc, nargv, options, long_options, idx)
-       int nargc;
-       char * const *nargv;
-       const char *options;
-       const struct option *long_options;
-       int *idx;
+getopt_long_only(int nargc, char * const *nargv, const char *options,
+       const struct option *long_options, int *idx)
 {
 
        return (getopt_internal(nargc, nargv, options, long_options, idx,