aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2006-09-19 17:40:31 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2006-09-19 17:40:31 +0000
commitc7b9bad519c56e5d4437cf954ac61d8bace64636 (patch)
treef4ad664c136653eddcdf6b13656659321f1bd7d4
parent79deb66c357c45d2237e755efb13cc912805a9cd (diff)
downloadbusybox-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.c55
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
571int ipcs_main(int argc, char **argv) 571int 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) {