]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - lib/getopt.c
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / lib / getopt.c
old mode 100755 (executable)
new mode 100644 (file)
index f5d4a51..3d03429
@@ -1,3 +1,11 @@
+/*
+ * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
+
 /*
  * Copyright (c) 1987, 1993, 1994
  *      The Regents of the University of California.  All rights reserved.
  * SUCH DAMAGE.
  */
 
+#include "squid.h"
+
 #if defined(LIBC_SCCS) && !defined(lint)
 static char sccsid[] = "@(#)getopt.c   8.3 (Berkeley) 4/27/95";
 #endif /* LIBC_SCCS and not lint */
 
-#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
-int opterr = 1,                        /* if error message should be printed */
-    optind = 1,                        /* index into parent argv vector */
-    optopt,                    /* character checked for validity */
-    optreset;                  /* reset getopt */
-char *optarg;                  /* argument associated with option */
+int opterr = 1,         /* if error message should be printed */
+    optind = 1,            /* index into parent argv vector */
+    optopt,           /* character checked for validity */
+    optreset;         /* reset getopt */
+char *optarg;           /* argument associated with option */
 
-#define        BADCH   (int)'?'
-#define        BADARG  (int)':'
-#define        EMSG    ""
+#define BADCH   (int)'?'
+#define BADARG  (int)':'
+#define EMSG    (char*)""
 
 /*
  * getopt --
@@ -51,60 +60,61 @@ char *optarg;                       /* argument associated with option */
  */
 int
 getopt(nargc, nargv, ostr)
-     int nargc;
-     char *const *nargv;
-     const char *ostr;
+int nargc;
+char *const *nargv;
+const char *ostr;
 {
-    static char *place = EMSG; /* option letter processing */
-    char *oli;                 /* option letter list index */
+    static char *place = EMSG;  /* option letter processing */
+    char *oli;          /* option letter list index */
 
-    if (optreset || !*place) { /* update scanning pointer */
-       optreset = 0;
-       if (optind >= nargc || *(place = nargv[optind]) != '-') {
-           place = EMSG;
-           return (-1);
-       }
-       if (place[1] && *++place == '-') {      /* found "--" */
-           ++optind;
-           place = EMSG;
-           return (-1);
-       }
-    }                          /* option letter okay? */
+    if (optreset || !*place) {  /* update scanning pointer */
+        optreset = 0;
+        if (optind >= nargc || *(place = nargv[optind]) != '-') {
+            place = EMSG;
+            return (-1);
+        }
+        if (place[1] && *++place == '-') {  /* found "--" */
+            ++optind;
+            place = EMSG;
+            return (-1);
+        }
+    }               /* option letter okay? */
     if ((optopt = (int) *place++) == (int) ':' ||
-       !(oli = strchr(ostr, optopt))) {
-       /*
-        * if the user didn't specify '-' as an option,
-        * assume it means -1.
-        */
-       if (optopt == (int) '-')
-           return (-1);
-       if (!*place)
-           ++optind;
-       if (opterr && *ostr != ':')
-           (void) fprintf(stderr,
-               "%s: illegal option -- %c\n", __FILE__, optopt);
-       return (BADCH);
+            !(oli = strchr(ostr, optopt))) {
+        /*
+         * if the user didn't specify '-' as an option,
+         * assume it means -1.
+         */
+        if (optopt == (int) '-')
+            return (-1);
+        if (!*place)
+            ++optind;
+        if (opterr && *ostr != ':')
+            (void) fprintf(stderr,
+                           "%s: illegal option -- %c\n", __FILE__, optopt);
+        return (BADCH);
     }
-    if (*++oli != ':') {       /* don't need argument */
-       optarg = NULL;
-       if (!*place)
-           ++optind;
-    } else {                   /* need an argument */
-       if (*place)             /* no white space */
-           optarg = place;
-       else if (nargc <= ++optind) {   /* no arg */
-           place = EMSG;
-           if (*ostr == ':')
-               return (BADARG);
-           if (opterr)
-               (void) fprintf(stderr,
-                   "%s: option requires an argument -- %c\n",
-                   __FILE__, optopt);
-           return (BADCH);
-       } else                  /* white space */
-           optarg = nargv[optind];
-       place = EMSG;
-       ++optind;
+    if (*++oli != ':') {    /* don't need argument */
+        optarg = NULL;
+        if (!*place)
+            ++optind;
+    } else {            /* need an argument */
+        if (*place)     /* no white space */
+            optarg = place;
+        else if (nargc <= ++optind) {   /* no arg */
+            place = EMSG;
+            if (*ostr == ':')
+                return (BADARG);
+            if (opterr)
+                (void) fprintf(stderr,
+                               "%s: option requires an argument -- %c\n",
+                               __FILE__, optopt);
+            return (BADCH);
+        } else          /* white space */
+            optarg = nargv[optind];
+        place = EMSG;
+        ++optind;
     }
-    return (optopt);           /* dump back option letter */
+    return (optopt);        /* dump back option letter */
 }
+