ref: a2b62c028e3af0508485dde2cd849cba21c1b691
parent: dcb3f03e9071adaf611bba64b65760095a38ced5
author: Tor Andersson <tor.andersson@artifex.com>
date: Tue Sep 4 07:24:16 EDT 2018
Avoid clashing with system getopt.
--- a/main.c
+++ b/main.c
@@ -5,9 +5,9 @@
#include "mujs.h"
-static char *optarg; /* Global argument pointer. */
-static int optind = 0; /* Global argv index. */
-static int getopt(int argc, char *argv[], char *optstring)
+static char *xoptarg; /* Global argument pointer. */
+static int xoptind = 0; /* Global argv index. */
+static int xgetopt(int argc, char *argv[], char *optstring)
{
static char *scan = NULL; /* Private scan pointer. */
@@ -14,21 +14,21 @@
char c;
char *place;
- optarg = NULL;
+ xoptarg = NULL;
if (!scan || *scan == '\0') {
- if (optind == 0)
- optind++;
+ if (xoptind == 0)
+ xoptind++;
- if (optind >= argc || argv[optind][0] != '-' || argv[optind][1] == '\0')
+ if (xoptind >= argc || argv[xoptind][0] != '-' || argv[xoptind][1] == '\0')
return EOF;
- if (argv[optind][1] == '-' && argv[optind][2] == '\0') {
- optind++;
+ if (argv[xoptind][1] == '-' && argv[xoptind][2] == '\0') {
+ xoptind++;
return EOF;
}
- scan = argv[optind]+1;
- optind++;
+ scan = argv[xoptind]+1;
+ xoptind++;
}
c = *scan++;
@@ -42,11 +42,11 @@
place++;
if (*place == ':') {
if (*scan != '\0') {
- optarg = scan;
+ xoptarg = scan;
scan = NULL;
- } else if( optind < argc ) {
- optarg = argv[optind];
- optind++;
+ } else if (xoptind < argc) {
+ xoptarg = argv[xoptind];
+ xoptind++;
} else {
fprintf(stderr, "%s: option requires argument -%c\n", argv[0], c);
return ':';
@@ -272,7 +272,7 @@
int interactive = 0;
int i, c;
- while ((c = getopt(argc, argv, "is")) != -1) {
+ while ((c = xgetopt(argc, argv, "is")) != -1) {
switch (c) {
default: usage(); break;
case 'i': interactive = 1; break;
@@ -306,15 +306,15 @@
js_dostring(J, require_js);
js_dostring(J, stacktrace_js);
- if (optind == argc) {
+ if (xoptind == argc) {
interactive = 1;
} else {
- c = optind++;
+ c = xoptind++;
js_newarray(J);
i = 0;
- while (optind < argc) {
- js_pushstring(J, argv[optind++]);
+ while (xoptind < argc) {
+ js_pushstring(J, argv[xoptind++]);
js_setindex(J, -2, i++);
}
js_setglobal(J, "scriptArgs");