diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-22 08:47:54 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-22 08:47:54 +0000 |
commit | 109d21fe7420fedbda7e1cd7ceb6ff2f3b59b8f1 (patch) | |
tree | 84253684e83663be63293af588309b08263c5ae0 | |
parent | cb1ba865077720087d47895d4125474ccbf366cc (diff) | |
download | busybox-w32-109d21fe7420fedbda7e1cd7ceb6ff2f3b59b8f1.tar.gz busybox-w32-109d21fe7420fedbda7e1cd7ceb6ff2f3b59b8f1.tar.bz2 busybox-w32-109d21fe7420fedbda7e1cd7ceb6ff2f3b59b8f1.zip |
adjtimex: getopt_ulflags'isation
-rw-r--r-- | miscutils/adjtimex.c | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/miscutils/adjtimex.c b/miscutils/adjtimex.c index abd061897..9662bbea9 100644 --- a/miscutils/adjtimex.c +++ b/miscutils/adjtimex.c | |||
@@ -44,49 +44,44 @@ static const char * const ret_code_descript[] = { | |||
44 | 44 | ||
45 | int adjtimex_main(int argc, char **argv) | 45 | int adjtimex_main(int argc, char **argv) |
46 | { | 46 | { |
47 | enum { | ||
48 | OPT_quiet = 0x1 | ||
49 | }; | ||
50 | unsigned long opt; | ||
51 | char *opt_o, *opt_f, *opt_p, *opt_t; | ||
47 | struct timex txc; | 52 | struct timex txc; |
48 | int quiet=0; | 53 | int i, ret, sep; |
49 | int c, i, ret, sep; | ||
50 | const char *descript; | 54 | const char *descript; |
51 | txc.modes=0; | 55 | txc.modes=0; |
52 | for (;;) { | 56 | |
53 | c = getopt( argc, argv, "qo:f:p:t:"); | 57 | opt = bb_getopt_ulflags(argc, argv, "qo:f:p:t:", |
54 | if (c == EOF) break; | 58 | &opt_o, &opt_f, &opt_p, &opt_t); |
55 | switch (c) { | 59 | //if (opt & 0x1) // -q |
56 | case 'q': | 60 | if (opt & 0x2) { // -o |
57 | quiet=1; | 61 | txc.offset = atoi(opt_o); |
58 | break; | 62 | txc.modes |= ADJ_OFFSET_SINGLESHOT; |
59 | case 'o': | 63 | } |
60 | txc.offset = atoi(optarg); | 64 | if (opt & 0x4) { // -f |
61 | txc.modes |= ADJ_OFFSET_SINGLESHOT; | 65 | txc.freq = atoi(opt_f); |
62 | break; | 66 | txc.modes |= ADJ_FREQUENCY; |
63 | case 'f': | 67 | } |
64 | txc.freq = atoi(optarg); | 68 | if (opt & 0x8) { // -p |
65 | txc.modes |= ADJ_FREQUENCY; | 69 | txc.constant = atoi(opt_p); |
66 | break; | 70 | txc.modes |= ADJ_TIMECONST; |
67 | case 'p': | 71 | } |
68 | txc.constant = atoi(optarg); | 72 | if (opt & 0x10) { // -t |
69 | txc.modes |= ADJ_TIMECONST; | 73 | txc.tick = atoi(opt_t); |
70 | break; | 74 | txc.modes |= ADJ_TICK; |
71 | case 't': | ||
72 | txc.tick = atoi(optarg); | ||
73 | txc.modes |= ADJ_TICK; | ||
74 | break; | ||
75 | default: | ||
76 | bb_show_usage(); | ||
77 | exit(1); | ||
78 | } | ||
79 | } | 75 | } |
80 | if (argc != optind) { /* no valid non-option parameters */ | 76 | if (argc != optind) { /* no valid non-option parameters */ |
81 | bb_show_usage(); | 77 | bb_show_usage(); |
82 | exit(1); | ||
83 | } | 78 | } |
84 | 79 | ||
85 | ret = adjtimex(&txc); | 80 | ret = adjtimex(&txc); |
86 | 81 | ||
87 | if (ret < 0) perror("adjtimex"); | 82 | if (ret < 0) perror("adjtimex"); |
88 | 83 | ||
89 | if (!quiet && ret>=0) { | 84 | if (!(opt & OPT_quiet) && ret>=0) { |
90 | printf( | 85 | printf( |
91 | " mode: %d\n" | 86 | " mode: %d\n" |
92 | "-o offset: %ld\n" | 87 | "-o offset: %ld\n" |