diff options
| author | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-09-19 17:40:31 +0000 |
|---|---|---|
| committer | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-09-19 17:40:31 +0000 |
| commit | 3bbd7089bc84f247efbed07a4f60ab236d7501cc (patch) | |
| tree | f4ad664c136653eddcdf6b13656659321f1bd7d4 | |
| parent | 1cc84c4a8ae1423b22171c50a56a5dafe6840a3f (diff) | |
| download | busybox-w32-3bbd7089bc84f247efbed07a4f60ab236d7501cc.tar.gz busybox-w32-3bbd7089bc84f247efbed07a4f60ab236d7501cc.tar.bz2 busybox-w32-3bbd7089bc84f247efbed07a4f60ab236d7501cc.zip | |
ipcs: getopt_ulflag'ification, -170 bytes
git-svn-id: svn://busybox.net/trunk/busybox@16160 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -rw-r--r-- | util-linux/ipcs.c | 55 |
1 files changed, 16 insertions, 39 deletions
diff --git a/util-linux/ipcs.c b/util-linux/ipcs.c index c54f53567..78c0ce9cf 100644 --- a/util-linux/ipcs.c +++ b/util-linux/ipcs.c | |||
| @@ -570,52 +570,29 @@ static void print_sem(int semid) | |||
| 570 | 570 | ||
| 571 | int ipcs_main(int argc, char **argv) | 571 | int ipcs_main(int argc, char **argv) |
| 572 | { | 572 | { |
| 573 | int opt, id = 0; | 573 | int id = 0; |
| 574 | unsigned flags = 0; | 574 | unsigned flags = 0; |
| 575 | unsigned long opt; | ||
| 576 | char *opt_i; | ||
| 575 | #define flag_print (1<<0) | 577 | #define flag_print (1<<0) |
| 576 | #define flag_msg (1<<1) | 578 | #define flag_msg (1<<1) |
| 577 | #define flag_sem (1<<2) | 579 | #define flag_sem (1<<2) |
| 578 | #define flag_shm (1<<3) | 580 | #define flag_shm (1<<3) |
| 579 | const char *const options = "atclupsmqi:ih?"; | ||
| 580 | 581 | ||
| 581 | while ((opt = getopt(argc, argv, options)) != -1) { | 582 | opt = bb_getopt_ulflags(argc, argv, "i:aqsmtcplu", &opt_i); |
| 582 | switch (opt) { | 583 | if (opt & 0x1) { // -i |
| 583 | case 'i': | 584 | id = atoi(optarg); |
| 584 | id = atoi(optarg); | 585 | flags |= flag_print; |
| 585 | flags |= flag_print; | ||
| 586 | break; | ||
| 587 | case 'a': | ||
| 588 | flags |= flag_msg | flag_sem | flag_shm; | ||
| 589 | break; | ||
| 590 | case 'q': | ||
| 591 | flags |= flag_msg; | ||
| 592 | break; | ||
| 593 | case 's': | ||
| 594 | flags |= flag_sem; | ||
| 595 | break; | ||
| 596 | case 'm': | ||
| 597 | flags |= flag_shm; | ||
| 598 | break; | ||
| 599 | case 't': | ||
| 600 | format = TIME; | ||
| 601 | break; | ||
| 602 | case 'c': | ||
| 603 | format = CREATOR; | ||
| 604 | break; | ||
| 605 | case 'p': | ||
| 606 | format = PID; | ||
| 607 | break; | ||
| 608 | case 'l': | ||
| 609 | format = LIMITS; | ||
| 610 | break; | ||
| 611 | case 'u': | ||
| 612 | format = STATUS; | ||
| 613 | break; | ||
| 614 | case 'h': | ||
| 615 | case '?': | ||
| 616 | bb_show_usage(); | ||
| 617 | } | ||
| 618 | } | 586 | } |
| 587 | if (opt & 0x2) flags |= flag_msg | flag_sem | flag_shm; // -a | ||
| 588 | if (opt & 0x4) flags |= flag_msg; // -q | ||
| 589 | if (opt & 0x8) flags |= flag_sem; // -s | ||
| 590 | if (opt & 0x10) flags |= flag_shm; // -m | ||
| 591 | if (opt & 0x20) format = TIME; // -t | ||
| 592 | if (opt & 0x40) format = CREATOR; // -c | ||
| 593 | if (opt & 0x80) format = PID; // -p | ||
| 594 | if (opt & 0x100) format = LIMITS; // -l | ||
| 595 | if (opt & 0x200) format = STATUS; // -u | ||
| 619 | 596 | ||
| 620 | if (flags & flag_print) { | 597 | if (flags & flag_print) { |
| 621 | if (flags & flag_shm) { | 598 | if (flags & flag_shm) { |
