diff options
author | Jim Meyering <jim@meyering.net> | 1996-04-05 13:14:59 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1996-04-05 13:14:59 +0000 |
commit | 9d22ab92f9b00be7eb403561604124cc0bc0016f (patch) | |
tree | 03c61b9f0912fed44206c5247d9aefb76afd048b /src | |
parent | 8a6f26dfd68c6a0e24edcedac975399a49098f65 (diff) | |
download | coreutils-9d22ab92f9b00be7eb403561604124cc0bc0016f.tar.xz |
Patch from Frank Korz.
Diffstat (limited to 'src')
-rw-r--r-- | src/nice.c | 59 |
1 files changed, 28 insertions, 31 deletions
diff --git a/src/nice.c b/src/nice.c index 606e364b3..7a9352106 100644 --- a/src/nice.c +++ b/src/nice.c @@ -59,8 +59,6 @@ main (int argc, char **argv) int adjustment = 0; int minusflag = 0; int adjustment_given = 0; - int long_option_priority = 0; - int last_optind = 0; program_name = argv[0]; setlocale (LC_ALL, ""); @@ -81,47 +79,46 @@ main (int argc, char **argv) error (1, 0, _("invalid option `%s'"), s); minusflag = 1; + /* FIXME: use strtol */ adjustment = atoi (&s[2]); adjustment_given = 1; - long_option_priority = 1; ++optind; } else { - int optc; - while ((optc = getopt_long (argc, argv, "+0123456789n:", longopts, - (int *) 0)) != EOF) + if (s[0] == '-' && ISDIGIT (s[1])) { - switch (optc) + if (!isinteger (&s[1])) + error (1, 0, _("invalid option `%s'"), s); + /* FIXME: use strtol */ + adjustment = atoi (&s[1]); + adjustment_given = 1; + ++optind; + } + else + { + int optc; + while ((optc = getopt_long (argc, argv, "+n:", + longopts, (int *) 0)) != EOF) { - case '?': - usage (1); - - case 'n': - if (!isinteger (optarg)) - error (1, 0, _("invalid priority `%s'"), optarg); - adjustment = atoi (optarg); - adjustment_given = 1; - break; - - default: - assert (ISDIGIT (optc)); - /* Reset ADJUSTMENT if the last priority-specifying option - was not of the same type or if it was, but a separate - option. */ - if (long_option_priority || - (adjustment_given && optind != last_optind)) + switch (optc) { - long_option_priority = 0; - adjustment = 0; + case '?': + usage (1); + + case 'n': + if (!isinteger (optarg)) + error (1, 0, _("invalid priority `%s'"), optarg); + /* FIXME: use strtol */ + adjustment = atoi (optarg); + adjustment_given = 1; + break; } - adjustment = adjustment * 10 + optc - '0'; - adjustment_given = 1; - last_optind = optind; } + + if (optc == EOF) + break; } - if (optc == EOF) - break; } } |