From 761ce14fd266d8bf78b8f9c83ec2425ede0648b9 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Wed, 20 Jun 2007 12:42:03 +0000 Subject: - remove another user of the deprecated matches() func by moving it to use index_in_str_array. Untested. text data bss dec hex filename 445 0 4 449 1c1 ip_parse_common_args.o.oorig 391 0 4 395 18b ip_parse_common_args.o --- networking/libiproute/ip_parse_common_args.c | 35 +++++++++++++++++++--------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'networking/libiproute') diff --git a/networking/libiproute/ip_parse_common_args.c b/networking/libiproute/ip_parse_common_args.c index cea5b4753..3606d3877 100644 --- a/networking/libiproute/ip_parse_common_args.c +++ b/networking/libiproute/ip_parse_common_args.c @@ -26,6 +26,20 @@ void ip_parse_common_args(int *argcp, char ***argvp) { int argc = *argcp; char **argv = *argvp; + static const char * const ip_common_commands[] = + {"-family", "inet", "inet6", "link", + "-4", "-6", "-0", "-oneline", 0}; + enum { + ARG_family, + ARG_inet, + ARG_inet6, + ARG_link, + ARG_IPv4, + ARG_IPv6, + ARG_packet, + ARG_oneline + }; + smalluint arg; while (argc > 1) { char *opt = argv[1]; @@ -35,33 +49,32 @@ void ip_parse_common_args(int *argcp, char ***argvp) argv++; break; } - if (opt[0] != '-') break; - if (opt[1] == '-') opt++; - - if (matches(opt, "-family") == 0) { + arg = index_in_str_array(ip_common_commands, opt) + 1; + if (arg == ARG_family) { argc--; argv++; if (!argv[1]) bb_show_usage(); - if (strcmp(argv[1], "inet") == 0) + arg = index_in_str_array(ip_common_commands, argv[1]) + 1; + if (arg == ARG_inet) preferred_family = AF_INET; - else if (strcmp(argv[1], "inet6") == 0) + else if (arg == ARG_inet6) preferred_family = AF_INET6; - else if (strcmp(argv[1], "link") == 0) + else if (arg == ARG_link) preferred_family = AF_PACKET; else invarg(argv[1], "protocol family"); - } else if (strcmp(opt, "-4") == 0) { + } else if (arg == ARG_IPv4) { preferred_family = AF_INET; - } else if (strcmp(opt, "-6") == 0) { + } else if (arg == ARG_IPv6) { preferred_family = AF_INET6; - } else if (strcmp(opt, "-0") == 0) { + } else if (arg == ARG_packet) { preferred_family = AF_PACKET; - } else if (matches(opt, "-oneline") == 0) { + } else if (arg == ARG_oneline) { ++oneline; } else { bb_show_usage(); -- cgit v1.2.3