7 #define ERR(s, c) if(opterr){\
9 errbuf[0] = c; errbuf[1] = '\n'; errbuf[2]='\0';\
10 (void) fputs(argv[0],stderr);\
11 (void) fputs(s,stderr);\
12 (void) fputs(errbuf,stderr);}
21 getopt(argc, argv, opts)
31 argv[optind][0] != '-' || argv[optind][1] == '\0')
33 else if(strcmp(argv[optind], "--") == 0) {
37 optopt = c = argv[optind][sp];
38 if(c == ':' || (cp=strchr(opts, c)) == NULL) {
39 ERR(": illegal option -- ", c);
40 if(argv[optind][++sp] == '\0') {
47 if(argv[optind][sp+1] != '\0')
48 optarg = &argv[optind++][sp+1];
49 else if(++optind >= argc) {
50 ERR(": option requires an argument -- ", c);
54 optarg = argv[optind++];
57 if(argv[optind][++sp] == '\0') {