diff options
author | Jim Meyering <jim@meyering.net> | 1994-06-19 04:27:52 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1994-06-19 04:27:52 +0000 |
commit | 2bdde50d3f6e4fc350a8d07f3775a98a28a327bb (patch) | |
tree | 9c09cea6e4281638386d18af8a9641353fed1daa | |
parent | a3ad002027a1de82ce7501cdfd9bebbc375911a1 (diff) | |
download | coreutils-2bdde50d3f6e4fc350a8d07f3775a98a28a327bb.tar.xz |
.
-rw-r--r-- | src/nice.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/nice.c b/src/nice.c index 0d3dcbb76..d0db40018 100644 --- a/src/nice.c +++ b/src/nice.c @@ -80,13 +80,35 @@ main (argc, argv) program_name = argv[0]; + /* Inhibit the error message getopt would otherwise give for + unrecognized options. */ + opterr = 0; + while ((optc = getopt_long (argc, argv, "+0123456789-n:", longopts, (int *) 0)) != EOF) { + char *s; + switch (optc) { case '?': - usage (1); + /* Determine whether this is an option like `--5'. + If so, treat it like `-n -5'. */ + s = argv[optind - 1]; + /* Make sure s[1..] is a valid negative integer. + Test/convert `s+1' rather than `s+2' so we reject options + like `---5' as unrecognized. */ + if (s[1] == '-' && isinteger (s + 1)) + { + adjustment = atoi (s + 1); + adjustment_given = 1; + } + else + { + error (0, 0, "unrecognized option `%s'", s); + usage (1); + } + break; case 0: break; |