diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-19 17:40:31 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-19 17:40:31 +0000 |
commit | c7b9bad519c56e5d4437cf954ac61d8bace64636 (patch) | |
tree | f4ad664c136653eddcdf6b13656659321f1bd7d4 | |
parent | 79deb66c357c45d2237e755efb13cc912805a9cd (diff) | |
download | busybox-w32-c7b9bad519c56e5d4437cf954ac61d8bace64636.tar.gz busybox-w32-c7b9bad519c56e5d4437cf954ac61d8bace64636.tar.bz2 busybox-w32-c7b9bad519c56e5d4437cf954ac61d8bace64636.zip |
ipcs: getopt_ulflag'ification, -170 bytes
-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) { |