summaryrefslogtreecommitdiff
path: root/src/nice.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1994-06-19 04:27:52 +0000
committerJim Meyering <jim@meyering.net>1994-06-19 04:27:52 +0000
commit2bdde50d3f6e4fc350a8d07f3775a98a28a327bb (patch)
tree9c09cea6e4281638386d18af8a9641353fed1daa /src/nice.c
parenta3ad002027a1de82ce7501cdfd9bebbc375911a1 (diff)
downloadcoreutils-2bdde50d3f6e4fc350a8d07f3775a98a28a327bb.tar.xz
.
Diffstat (limited to 'src/nice.c')
-rw-r--r--src/nice.c24
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;