2 * getopt - parse command-line options
4 /* $Id: getopt.c,v 1.2 1994/06/24 11:45:15 ceriel Exp $ */
9 #define ERR(s, c) if(opterr){\
10 fputs(argv[0], stderr);\
21 getopt(int argc, char **argv, char *opts)
29 argv[optind][0] != '-' || argv[optind][1] == '\0')
31 else if (!strcmp(argv[optind], "--")) {
35 optopt = c = argv[optind][sp];
36 if (c == ':' || (cp=strchr(opts, c)) == NULL) {
37 ERR (": illegal option -- ", c);
38 if (argv[optind][++sp] == '\0') {
45 if (argv[optind][sp+1] != '\0')
46 optarg = &argv[optind++][sp+1];
47 else if (++optind >= argc) {
48 ERR (": option requires an argument -- ", c);
52 optarg = argv[optind++];
55 if (argv[optind][++sp] == '\0') {