int getopt2()

in src/util.c [216:247]


int getopt2(int argc, char *const argv[], const char *optstr)
{
	static int optind = 1;

	if ((optind >= argc) || (argv[optind][0] == 0))
		return -1;

	if (argv[optind][0] != '-')
		return '?';

	int opt = argv[optind][1];
	const char *p = strchr(optstr, opt);

	if (p == NULL)
		return '?';

	optarg2 = &argv[optind][2];

	if (p[1] == ':') {
		if (p[2] != ':') {
			if (optarg2[0] == 0)
				return '?';
		}
		if (p[2] == ':') {
			if (optarg2[0] == 0)
				optarg2 = NULL;
		}
	}

	optind++;
	return opt;
}