-#include "squid.h"
+/*
+ * Copyright (C) 1996-2021 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
* 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 <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 (char*)""
+#define BADCH (int)'?'
+#define BADARG (int)':'
+#define EMSG (char*)""
/*
* getopt --
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 */
+ if (optreset || !*place) { /* update scanning pointer */
optreset = 0;
if (optind >= nargc || *(place = nargv[optind]) != '-') {
place = EMSG;
return (-1);
}
- if (place[1] && *++place == '-') { /* found "--" */
+ if (place[1] && *++place == '-') { /* found "--" */
++optind;
place = EMSG;
return (-1);
}
- } /* option letter okay? */
+ } /* option letter okay? */
if ((optopt = (int) *place++) == (int) ':' ||
!(oli = strchr(ostr, optopt))) {
/*
"%s: illegal option -- %c\n", __FILE__, optopt);
return (BADCH);
}
- if (*++oli != ':') { /* don't need argument */
+ if (*++oli != ':') { /* don't need argument */
optarg = NULL;
if (!*place)
++optind;
- } else { /* need an argument */
- if (*place) /* no white space */
+ } else { /* need an argument */
+ if (*place) /* no white space */
optarg = place;
- else if (nargc <= ++optind) { /* no arg */
+ else if (nargc <= ++optind) { /* no arg */
place = EMSG;
if (*ostr == ':')
return (BADARG);
"%s: option requires an argument -- %c\n",
__FILE__, optopt);
return (BADCH);
- } else /* white space */
+ } else /* white space */
optarg = nargv[optind];
place = EMSG;
++optind;
}
- return (optopt); /* dump back option letter */
+ return (optopt); /* dump back option letter */
}
+