- } /* option letter okay? */
- if ((optopt = (int)*place++) == (int)':' ||
- !(oli = strchr(ostr, optopt))) {
+ }
+ optopt = (int)*place++;
+ if (optopt == (int)':') { /* option letter okay? */
+ if (!*place)
+ ++optind;
+ if (opterr && *ostr != ':')
+ (void)fprintf(stderr,
+ "%s: illegal option -- %c\n", __progname, optopt);
+ return (BADCH);
+ }
+ oli = strchr(ostr, optopt);
+ if (!oli) {