From 20da61dc8b160922ee4e3913aed2ae3f48591cfc Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 26 Jul 2012 09:25:19 +0200 Subject: chcpu: use err_exclusive_options() Signed-off-by: Karel Zak --- sys-utils/chcpu.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'sys-utils/chcpu.c') diff --git a/sys-utils/chcpu.c b/sys-utils/chcpu.c index 523e9c566..0209fe9bf 100644 --- a/sys-utils/chcpu.c +++ b/sys-utils/chcpu.c @@ -235,16 +235,6 @@ int main(int argc, char *argv[]) int cmd = -1; int c; - enum { - EXCL_NONE, - EXCL_CONFIGURE, - EXCL_DECONFIGURE, - EXCL_DISABLE, - EXCL_DISPATCH, - EXCL_ENABLE - }; - int excl_any = EXCL_NONE; - static const struct option longopts[] = { { "configure", required_argument, 0, 'c' }, { "deconfigure",required_argument, 0, 'g' }, @@ -257,6 +247,12 @@ int main(int argc, char *argv[]) { NULL, 0, 0, 0 } }; + static const ul_excl_t excl[] = { /* rows and cols in in ASCII order */ + { 'c','d','e','g','p' }, + { 0 } + }; + int excl_st[ARRAY_SIZE(excl)] = UL_EXCL_STATUS_INIT; + setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); @@ -273,31 +269,29 @@ int main(int argc, char *argv[]) err(EXIT_FAILURE, _("cpuset_alloc failed")); while ((c = getopt_long(argc, argv, "c:d:e:g:hp:rV", longopts, NULL)) != -1) { + + err_exclusive_options(c, longopts, excl, excl_st); + switch (c) { case 'c': - exclusive_option(&excl_any, EXCL_CONFIGURE, EXCL_ERROR); cmd = CMD_CPU_CONFIGURE; cpu_parse(argv[optind - 1], cpu_set, setsize); break; case 'd': - exclusive_option(&excl_any, EXCL_DISABLE, EXCL_ERROR); cmd = CMD_CPU_DISABLE; cpu_parse(argv[optind - 1], cpu_set, setsize); break; case 'e': - exclusive_option(&excl_any, EXCL_ENABLE, EXCL_ERROR); cmd = CMD_CPU_ENABLE; cpu_parse(argv[optind - 1], cpu_set, setsize); break; case 'g': - exclusive_option(&excl_any, EXCL_DECONFIGURE, EXCL_ERROR); cmd = CMD_CPU_DECONFIGURE; cpu_parse(argv[optind - 1], cpu_set, setsize); break; case 'h': usage(stdout); case 'p': - exclusive_option(&excl_any, EXCL_DISPATCH, EXCL_ERROR); if (strcmp("horizontal", argv[optind - 1]) == 0) cmd = CMD_CPU_DISPATCH_HORIZONTAL; else if (strcmp("vertical", argv[optind - 1]) == 0) -- cgit v1.2.3-55-g7522