diff options
| author | wiz <wiz@NetBSD.org> | 2002-06-21 09:56:33 +0000 |
|---|---|---|
| committer | wiz <wiz@NetBSD.org> | 2002-06-21 09:56:33 +0000 |
| commit | 4dc035fd8ad5536a500fcb3ca6c8e4b44c357370 (patch) | |
| tree | 1a93aa0e9c37c0c7307da5a061acaf052882f571 /lib/libc/stdlib | |
| parent | d1f10f9f7482f972b242e53dbffddb7cc3d564d8 (diff) | |
Undo last two, until I have time to take a good look at the problems.
Diffstat (limited to 'lib/libc/stdlib')
| -rw-r--r-- | lib/libc/stdlib/getopt.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/libc/stdlib/getopt.c b/lib/libc/stdlib/getopt.c index 598647e66d3..3820a656e8a 100644 --- a/lib/libc/stdlib/getopt.c +++ b/lib/libc/stdlib/getopt.c @@ -1,4 +1,4 @@ -/* $NetBSD: getopt.c,v 1.23 2002/06/13 21:18:50 wiz Exp $ */ +/* $NetBSD: getopt.c,v 1.24 2002/06/21 09:56:33 wiz Exp $ */ /* * Copyright (c) 1987, 1993, 1994 @@ -38,7 +38,7 @@ #if 0 static char sccsid[] = "@(#)getopt.c 8.3 (Berkeley) 4/27/95"; #else -__RCSID("$NetBSD: getopt.c,v 1.23 2002/06/13 21:18:50 wiz Exp $"); +__RCSID("$NetBSD: getopt.c,v 1.24 2002/06/21 09:56:33 wiz Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -83,12 +83,12 @@ getopt(nargc, nargv, ostr) if (optreset || !*place) { /* update scanning pointer */ optreset = 0; - if (optind >= nargc || *(place = nargv[optind]) != '-' - || place[1] == '\0') { + if (optind >= nargc || *(place = nargv[optind]) != '-') { place = EMSG; return (-1); } - if (*++place == '-' && place[1] == '\0') { /* found "--" */ + if (place[1] && *++place == '-' /* found "--" */ + && place[1] == '\0') { ++optind; place = EMSG; return (-1); @@ -96,6 +96,12 @@ getopt(nargc, nargv, ostr) } /* option letter okay? */ if ((optopt = (int)*place++) == (int)':' || !(oli = strchr(ostr, optopt))) { + /* + * if the user didn't specify '-' as an option, + * assume it means -1. + */ + if (optopt == (int)'-') + return (-1); if (!*place) ++optind; if (opterr && *ostr != ':') |
