Changeset 1770 in MondoRescue for branches/stable/mindi-busybox/networking/libiproute/ip_parse_common_args.c
- Timestamp:
- Nov 6, 2007, 11:01:53 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mindi-busybox/networking/libiproute/ip_parse_common_args.c
r821 r1770 1 /* vi: set sw=4 ts=4: */ 1 2 /* 2 3 * ip.c "ip" utility frontend. … … 15 16 */ 16 17 17 #include <string.h> 18 19 #include "libbb.h" 18 #include "ip_common.h" /* #include "libbb.h" is inside */ 20 19 #include "utils.h" 21 #include "ip_common.h"22 23 20 24 21 int preferred_family = AF_UNSPEC; 25 int oneline = 0;26 char * _SL_ = NULL;22 smallint oneline; 23 char _SL_; 27 24 28 25 void ip_parse_common_args(int *argcp, char ***argvp) … … 30 27 int argc = *argcp; 31 28 char **argv = *argvp; 29 static const char ip_common_commands[] ALIGN1 = 30 "-family\0""inet\0""inet6\0""link\0" 31 "-4\0""-6\0""-0\0""-oneline\0"; 32 enum { 33 ARG_family = 1, 34 ARG_inet, 35 ARG_inet6, 36 ARG_link, 37 ARG_IPv4, 38 ARG_IPv6, 39 ARG_packet, 40 ARG_oneline 41 }; 42 smalluint arg; 32 43 33 44 while (argc > 1) { … … 35 46 36 47 if (strcmp(opt,"--") == 0) { 37 argc--; argv++; 48 argc--; 49 argv++; 38 50 break; 39 51 } 40 41 52 if (opt[0] != '-') 42 53 break; 43 44 54 if (opt[1] == '-') 45 55 opt++; 46 47 if ( matches(opt, "-family") == 0) {56 arg = index_in_strings(ip_common_commands, opt) + 1; 57 if (arg == ARG_family) { 48 58 argc--; 49 59 argv++; 50 if (! argv[1]) 51 bb_show_usage(); 52 if (strcmp(argv[1], "inet") == 0) 60 if (!argv[1]) 61 bb_show_usage(); 62 arg = index_in_strings(ip_common_commands, argv[1]) + 1; 63 if (arg == ARG_inet) 53 64 preferred_family = AF_INET; 54 else if ( strcmp(argv[1], "inet6") == 0)65 else if (arg == ARG_inet6) 55 66 preferred_family = AF_INET6; 56 else if ( strcmp(argv[1], "link") == 0)67 else if (arg == ARG_link) 57 68 preferred_family = AF_PACKET; 58 69 else 59 70 invarg(argv[1], "protocol family"); 60 } else if ( strcmp(opt, "-4") == 0) {71 } else if (arg == ARG_IPv4) { 61 72 preferred_family = AF_INET; 62 } else if ( strcmp(opt, "-6") == 0) {73 } else if (arg == ARG_IPv6) { 63 74 preferred_family = AF_INET6; 64 } else if ( strcmp(opt, "-0") == 0) {75 } else if (arg == ARG_packet) { 65 76 preferred_family = AF_PACKET; 66 } else if ( matches(opt, "-oneline") == 0) {77 } else if (arg == ARG_oneline) { 67 78 ++oneline; 68 79 } else { 69 80 bb_show_usage(); 70 81 } 71 argc--; argv++; 82 argc--; 83 argv++; 72 84 } 73 _SL_ = oneline ? "\\" : "\n";85 _SL_ = oneline ? '\\' : '\n'; 74 86 *argcp = argc; 75 87 *argvp = argv;
Note:
See TracChangeset
for help on using the changeset viewer.