diff --git a/elks/tools/mfs/getoptx.c b/elks/tools/mfs/getoptx.c index 0677668c2..4f033768b 100644 --- a/elks/tools/mfs/getoptx.c +++ b/elks/tools/mfs/getoptx.c @@ -39,9 +39,10 @@ getoptX(int argc, char *const *argv, const char *optstring) /* allowed args, e.g. "ab:c" */ { static int sp = 1; /* position within argument */ - register int osp; /* saved `sp' for param test */ #ifndef STRICT register int oind; /* saved `optind' for param test */ +#else + register int osp; /* saved `sp' for param test */ #endif register int c; /* option letter */ register char *cp; /* -> option in `optstring' */ @@ -61,7 +62,10 @@ getoptX(int argc, char *const *argv, const char *optstring) } } c = argv[optind][sp]; /* option letter */ - osp = sp++; /* get ready for next letter */ +#ifdef STRICT + osp = sp; +#endif + sp++; /* get ready for next letter */ #ifndef STRICT oind = optind; /* save optind for param test */ @@ -96,11 +100,13 @@ getoptX(int argc, char *const *argv, const char *optstring) else #endif if (optind >= argc) + { return Err(argv[0], "option requires an argument", c); - + } else /* argument w/ whitespace */ + { optarg = argv[optind]; - + } ++optind; /* skip over parameter */ }