diff options
Diffstat (limited to 'networking')
-rw-r--r-- | networking/arping.c | 6 | ||||
-rw-r--r-- | networking/ether-wake.c | 3 | ||||
-rw-r--r-- | networking/ftpd.c | 17 | ||||
-rw-r--r-- | networking/ftpgetput.c | 7 | ||||
-rw-r--r-- | networking/httpd.c | 10 | ||||
-rw-r--r-- | networking/ipcalc.c | 7 | ||||
-rw-r--r-- | networking/nc_bloaty.c | 14 | ||||
-rw-r--r-- | networking/ntpd.c | 9 | ||||
-rw-r--r-- | networking/ping.c | 12 | ||||
-rw-r--r-- | networking/pscan.c | 7 | ||||
-rw-r--r-- | networking/slattach.c | 5 | ||||
-rw-r--r-- | networking/tcpudp.c | 7 | ||||
-rw-r--r-- | networking/telnetd.c | 10 | ||||
-rw-r--r-- | networking/tftp.c | 15 | ||||
-rw-r--r-- | networking/traceroute.c | 6 | ||||
-rw-r--r-- | networking/tunctl.c | 18 | ||||
-rw-r--r-- | networking/udhcp/d6_dhcpc.c | 7 | ||||
-rw-r--r-- | networking/udhcp/dhcpc.c | 10 | ||||
-rw-r--r-- | networking/udhcp/dhcpd.c | 7 | ||||
-rw-r--r-- | networking/udhcp/dumpleases.c | 8 | ||||
-rw-r--r-- | networking/wget.c | 8 | ||||
-rw-r--r-- | networking/whois.c | 3 | ||||
-rw-r--r-- | networking/zcip.c | 5 |
23 files changed, 121 insertions, 80 deletions
diff --git a/networking/arping.c b/networking/arping.c index 3fd54a287..f9967d81e 100644 --- a/networking/arping.c +++ b/networking/arping.c @@ -306,9 +306,9 @@ int arping_main(int argc UNUSED_PARAM, char **argv) /* Dad also sets quit_on_reply. * Advert also sets unsolicited. */ - opt_complementary = "=1:Df:AU"; - opt = getopt32(argv, "DUAqfbc:+w:I:s:", - &count, &str_timeout, &device, &source); + opt = getopt32(argv, "^" "DUAqfbc:+w:I:s:" "\0" "=1:Df:AU", + &count, &str_timeout, &device, &source + ); if (opt & 0x80) /* -w: timeout */ timeout_us = xatou_range(str_timeout, 0, INT_MAX/2000000) * 1000000 + 500000; //if (opt & 0x200) /* -s: source */ diff --git a/networking/ether-wake.c b/networking/ether-wake.c index 52522e76d..6677f07d5 100644 --- a/networking/ether-wake.c +++ b/networking/ether-wake.c @@ -212,8 +212,7 @@ int ether_wake_main(int argc UNUSED_PARAM, char **argv) struct whereto_t whereto; /* who to wake up */ /* handle misc user options */ - opt_complementary = "=1"; - flags = getopt32(argv, "bi:p:", &ifname, &pass); + flags = getopt32(argv, "^" "bi:p:" "\0" "=1", &ifname, &pass); if (flags & 4) /* -p */ wol_passwd_sz = get_wol_pw(pass, wol_passwd); flags &= 1; /* we further interested only in -b [bcast] flag */ diff --git a/networking/ftpd.c b/networking/ftpd.c index c562c2886..8af5acac2 100644 --- a/networking/ftpd.c +++ b/networking/ftpd.c @@ -1174,17 +1174,20 @@ int ftpd_main(int argc UNUSED_PARAM, char **argv) abs_timeout = 1 * 60 * 60; verbose_S = 0; G.timeout = 2 * 60; - opt_complementary = "vv:SS"; #if BB_MMU - opts = getopt32(argv, "vS" - IF_FEATURE_FTPD_WRITE("w") "t:+T:+" IF_FEATURE_FTPD_AUTHENTICATION("a:"), + opts = getopt32(argv, "^" "vS" + IF_FEATURE_FTPD_WRITE("w") "t:+T:+" IF_FEATURE_FTPD_AUTHENTICATION("a:") + "\0" "vv:SS", &G.timeout, &abs_timeout, IF_FEATURE_FTPD_AUTHENTICATION(&anon_opt,) - &G.verbose, &verbose_S); + &G.verbose, &verbose_S + ); #else - opts = getopt32(argv, "l1AvS" - IF_FEATURE_FTPD_WRITE("w") "t:+T:+" IF_FEATURE_FTPD_AUTHENTICATION("a:"), + opts = getopt32(argv, "^" "l1AvS" + IF_FEATURE_FTPD_WRITE("w") "t:+T:+" IF_FEATURE_FTPD_AUTHENTICATION("a:") + "\0" "vv:SS", &G.timeout, &abs_timeout, IF_FEATURE_FTPD_AUTHENTICATION(&anon_opt,) - &G.verbose, &verbose_S); + &G.verbose, &verbose_S + ); if (opts & (OPT_l|OPT_1)) { /* Our secret backdoor to ls */ if (fchdir(3) != 0) diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c index 1fc20364f..2cce07ac2 100644 --- a/networking/ftpgetput.c +++ b/networking/ftpgetput.c @@ -361,11 +361,12 @@ int ftpgetput_main(int argc UNUSED_PARAM, char **argv) /* * Decipher the command line */ - opt_complementary = "-2:vv:cc"; /* must have 2 to 3 params; -v and -c count */ + /* must have 2 to 3 params; -v and -c count */ +#define OPTSTRING "^cvu:p:P:" "\0" "-2:?3:vv:cc" #if ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS - getopt32long(argv, "cvu:p:P:", ftpgetput_longopts, + getopt32long(argv, OPTSTRING, ftpgetput_longopts, #else - getopt32(argv, "cvu:p:P:", + getopt32(argv, OPTSTRING, #endif &user, &password, &port, &verbose_flag, &do_continue ); diff --git a/networking/httpd.c b/networking/httpd.c index 079145757..9369de824 100644 --- a/networking/httpd.c +++ b/networking/httpd.c @@ -2636,17 +2636,19 @@ int httpd_main(int argc UNUSED_PARAM, char **argv) #endif home_httpd = xrealloc_getcwd_or_warn(NULL); - /* -v counts, -i implies -f */ - opt_complementary = "vv:if"; /* We do not "absolutize" path given by -h (home) opt. * If user gives relative path in -h, * $SCRIPT_FILENAME will not be set. */ - opt = getopt32(argv, "c:d:h:" + opt = getopt32(argv, "^" + "c:d:h:" IF_FEATURE_HTTPD_ENCODE_URL_STR("e:") IF_FEATURE_HTTPD_BASIC_AUTH("r:") IF_FEATURE_HTTPD_AUTH_MD5("m:") IF_FEATURE_HTTPD_SETUID("u:") - "p:ifv", + "p:ifv" + "\0" + /* -v counts, -i implies -f */ + "vv:if", &opt_c_configFile, &url_for_decode, &home_httpd IF_FEATURE_HTTPD_ENCODE_URL_STR(, &url_for_encode) IF_FEATURE_HTTPD_BASIC_AUTH(, &g_realm) diff --git a/networking/ipcalc.c b/networking/ipcalc.c index 1d5db969c..cdae8eea8 100644 --- a/networking/ipcalc.c +++ b/networking/ipcalc.c @@ -130,8 +130,11 @@ int ipcalc_main(int argc UNUSED_PARAM, char **argv) #define ipaddr (s_ipaddr.s_addr) char *ipstr; - opt_complementary = "-1:?2"; /* minimum 1 arg, maximum 2 args */ - opt = GETOPT32(argv, "mbn" IF_FEATURE_IPCALC_FANCY("phs") LONGOPTS); + opt = GETOPT32(argv, "^" + "mbn" IF_FEATURE_IPCALC_FANCY("phs") + "\0" "-1:?2"/*min 1, max 2 args*/ + LONGOPTS + ); argv += optind; if (opt & SILENT) logmode = LOGMODE_NONE; /* suppress error_msg() output */ diff --git a/networking/nc_bloaty.c b/networking/nc_bloaty.c index 3db784982..64098648a 100644 --- a/networking/nc_bloaty.c +++ b/networking/nc_bloaty.c @@ -787,11 +787,15 @@ int nc_main(int argc UNUSED_PARAM, char **argv) e_found: // -g -G -t -r deleted, unimplemented -a deleted too - opt_complementary = "?2:vv:ll"; /* max 2 params; -v and -l are counters; -w N */ - getopt32(argv, "np:s:uvw:+" IF_NC_SERVER("lk") - IF_NC_EXTRA("i:o:z"), - &str_p, &str_s, &o_wait - IF_NC_EXTRA(, &str_i, &str_o), &o_verbose IF_NC_SERVER(, &cnt_l)); + getopt32(argv, "^" + "np:s:uvw:+"/* -w N */ IF_NC_SERVER("lk") + IF_NC_EXTRA("i:o:z") + "\0" + "?2:vv:ll", /* max 2 params; -v and -l are counters */ + &str_p, &str_s, &o_wait + IF_NC_EXTRA(, &str_i, &str_o) + , &o_verbose IF_NC_SERVER(, &cnt_l) + ); argv += optind; #if ENABLE_NC_EXTRA if (option_mask32 & OPT_i) /* line-interval time */ diff --git a/networking/ntpd.c b/networking/ntpd.c index f21f9513d..25fa44389 100644 --- a/networking/ntpd.c +++ b/networking/ntpd.c @@ -2230,15 +2230,16 @@ static NOINLINE void ntp_init(char **argv) /* Parse options */ peers = NULL; - opt_complementary = "dd:wn" /* -d: counter; -p: list; -w implies -n */ - IF_FEATURE_NTPD_SERVER(":Il"); /* -I implies -l */ - opts = getopt32(argv, + opts = getopt32(argv, "^" "nqNx" /* compat */ "wp:*S:"IF_FEATURE_NTPD_SERVER("l") /* NOT compat */ IF_FEATURE_NTPD_SERVER("I:") /* compat */ "d" /* compat */ "46aAbgL", /* compat, ignored */ - &peers, &G.script_name, + "\0" + "dd:wn" /* -d: counter; -p: list; -w implies -n */ + IF_FEATURE_NTPD_SERVER(":Il") /* -I implies -l */ + , &peers, &G.script_name, #if ENABLE_FEATURE_NTPD_SERVER &G.if_name, #endif diff --git a/networking/ping.c b/networking/ping.c index 2e8bef023..7460e4414 100644 --- a/networking/ping.c +++ b/networking/ping.c @@ -340,7 +340,8 @@ static int common_ping_main(sa_family_t af, char **argv) /* Full(er) version */ -#define OPT_STRING ("qvc:+s:t:+w:+W:+I:np:4" IF_PING6("6")) +/* -c NUM, -t NUM, -w NUM, -W NUM */ +#define OPT_STRING "qvc:+s:t:+w:+W:+I:np:4"IF_PING6("6") enum { OPT_QUIET = 1 << 0, OPT_VERBOSE = 1 << 1, @@ -863,9 +864,12 @@ static int common_ping_main(int opt, char **argv) INIT_G(); - /* exactly one argument needed; -v and -q don't mix; -c NUM, -t NUM, -w NUM, -W NUM */ - opt_complementary = "=1:q--v:v--q"; - opt |= getopt32(argv, OPT_STRING, &pingcount, &str_s, &opt_ttl, &deadline, &timeout, &str_I, &str_p); + opt |= getopt32(argv, "^" + OPT_STRING + /* exactly one arg; -v and -q don't mix */ + "\0" "=1:q--v:v--q", + &pingcount, &str_s, &opt_ttl, &deadline, &timeout, &str_I, &str_p + ); if (opt & OPT_s) datalen = xatou16(str_s); // -s if (opt & OPT_I) { // -I diff --git a/networking/pscan.c b/networking/pscan.c index 17985d2c8..95b0a937d 100644 --- a/networking/pscan.c +++ b/networking/pscan.c @@ -75,8 +75,11 @@ int pscan_main(int argc UNUSED_PARAM, char **argv) unsigned rtt_4; unsigned start, diff; - opt_complementary = "=1"; /* exactly one non-option */ - opt = getopt32(argv, "cbp:P:t:T:", &opt_min_port, &opt_max_port, &opt_timeout, &opt_min_rtt); + opt = getopt32(argv, "^" + "cbp:P:t:T:" + "\0" "=1", /* exactly one non-option */ + &opt_min_port, &opt_max_port, &opt_timeout, &opt_min_rtt + ); argv += optind; max_port = xatou_range(opt_max_port, 1, 65535); port = xatou_range(opt_min_port, 1, max_port); diff --git a/networking/slattach.c b/networking/slattach.c index d4659a314..e0a388926 100644 --- a/networking/slattach.c +++ b/networking/slattach.c @@ -128,8 +128,9 @@ int slattach_main(int argc UNUSED_PARAM, char **argv) INIT_G(); /* Parse command line options */ - opt_complementary = "=1"; - opt = getopt32(argv, "p:s:c:ehmLF", &proto, &baud_str, &extcmd); + opt = getopt32(argv, "^" "p:s:c:ehmLF" "\0" "=1", + &proto, &baud_str, &extcmd + ); /*argc -= optind;*/ argv += optind; diff --git a/networking/tcpudp.c b/networking/tcpudp.c index 270325164..d4c69e0f7 100644 --- a/networking/tcpudp.c +++ b/networking/tcpudp.c @@ -269,10 +269,11 @@ int tcpudpsvd_main(int argc UNUSED_PARAM, char **argv) tcp = (applet_name[0] == 't'); - /* 3+ args, -i at most once, -p implies -h, -v is counter, -b N, -c N */ - opt_complementary = "-3:i--i:ph:vv"; #ifdef SSLSVD - opts = getopt32(argv, "+c:+C:i:x:u:l:Eb:+hpt:vU:/:Z:K:", + opts = getopt32(argv, "^+" + "c:+C:i:x:u:l:Eb:+hpt:vU:/:Z:K:" /* -c NUM, -b NUM */ + /* 3+ args, -i at most once, -p implies -h, -v is a counter */ + "\0" "-3:i--i:ph:vv", &cmax, &str_C, &instructs, &instructs, &user, &preset_local_hostname, &backlog, &str_t, &ssluser, &root, &cert, &key, &verbose ); diff --git a/networking/telnetd.c b/networking/telnetd.c index 16c572e8d..a6bafa21d 100644 --- a/networking/telnetd.c +++ b/networking/telnetd.c @@ -659,13 +659,15 @@ int telnetd_main(int argc UNUSED_PARAM, char **argv) #endif INIT_G(); - /* -w NUM, and implies -F. -w and -i don't mix */ - IF_FEATURE_TELNETD_INETD_WAIT(opt_complementary = "wF:i--w:w--i";) /* Even if !STANDALONE, we accept (and ignore) -i, thus people * don't need to guess whether it's ok to pass -i to us */ - opt = getopt32(argv, "f:l:Ki" + opt = getopt32(argv, "^" + "f:l:Ki" IF_FEATURE_TELNETD_STANDALONE("p:b:F") - IF_FEATURE_TELNETD_INETD_WAIT("Sw:+"), + IF_FEATURE_TELNETD_INETD_WAIT("Sw:+") /* -w NUM */ + "\0" + /* -w implies -F. -w and -i don't mix */ + IF_FEATURE_TELNETD_INETD_WAIT("wF:i--w:w--i"), &G.issuefile, &G.loginpath IF_FEATURE_TELNETD_STANDALONE(, &opt_portnbr, &opt_bindaddr) IF_FEATURE_TELNETD_INETD_WAIT(, &sec_linger) diff --git a/networking/tftp.c b/networking/tftp.c index 5baa80448..73a9829aa 100644 --- a/networking/tftp.c +++ b/networking/tftp.c @@ -761,15 +761,16 @@ int tftp_main(int argc UNUSED_PARAM, char **argv) INIT_G(); - /* -p or -g is mandatory, and they are mutually exclusive */ - opt_complementary = "" IF_FEATURE_TFTP_GET("g:") IF_FEATURE_TFTP_PUT("p:") - IF_GETPUT("g--p:p--g:"); - - IF_GETPUT(opt =) getopt32(argv, + IF_GETPUT(opt =) getopt32(argv, "^" IF_FEATURE_TFTP_GET("g") IF_FEATURE_TFTP_PUT("p") - "l:r:" IF_FEATURE_TFTP_BLOCKSIZE("b:"), + "l:r:" IF_FEATURE_TFTP_BLOCKSIZE("b:") + "\0" + /* -p or -g is mandatory, and they are mutually exclusive */ + IF_FEATURE_TFTP_GET("g:") IF_FEATURE_TFTP_PUT("p:") + IF_GETPUT("g--p:p--g:"), &local_file, &remote_file - IF_FEATURE_TFTP_BLOCKSIZE(, &blksize_str)); + IF_FEATURE_TFTP_BLOCKSIZE(, &blksize_str) + ); argv += optind; # if ENABLE_FEATURE_TFTP_BLOCKSIZE diff --git a/networking/traceroute.c b/networking/traceroute.c index d9c62f7f9..8b6247482 100644 --- a/networking/traceroute.c +++ b/networking/traceroute.c @@ -833,9 +833,9 @@ common_traceroute_main(int op, char **argv) INIT_G(); - /* minimum 1 arg */ - opt_complementary = "-1:x-x"; - op |= getopt32(argv, OPT_STRING + op |= getopt32(argv, "^" + OPT_STRING + "\0" "-1:x-x" /* minimum 1 arg */ , &tos_str, &device, &max_ttl_str, &port_str, &nprobes_str , &source, &waittime_str, &pausemsecs_str, &first_ttl_str ); diff --git a/networking/tunctl.c b/networking/tunctl.c index 4c3220025..f2dc645a1 100644 --- a/networking/tunctl.c +++ b/networking/tunctl.c @@ -83,10 +83,13 @@ int tunctl_main(int argc UNUSED_PARAM, char **argv) #endif }; - opt_complementary = "=0:t--d:d--t"; // no arguments; t ^ d - opts = getopt32(argv, "f:t:d:" IF_FEATURE_TUNCTL_UG("u:g:b"), + opts = getopt32(argv, "^" + "f:t:d:" IF_FEATURE_TUNCTL_UG("u:g:b") + "\0" + "=0:t--d:d--t", // no arguments; t ^ d &opt_device, &opt_name, &opt_name - IF_FEATURE_TUNCTL_UG(, &opt_user, &opt_group)); + IF_FEATURE_TUNCTL_UG(, &opt_user, &opt_group) + ); // select device memset(&ifr, 0, sizeof(ifr)); @@ -153,9 +156,12 @@ int tunctl_main(int argc UNUSED_PARAM, char **argv) OPT_d = 1 << 2, // delete named interface }; - opt_complementary = "=0:t--d:d--t"; // no arguments; t ^ d - opts = getopt32(argv, "f:t:d:u:g:b", // u, g, b accepted and ignored - &opt_device, &opt_name, &opt_name, NULL, NULL); + opts = getopt32(argv, "^" + "f:t:d:u:g:b" // u, g, b accepted and ignored + "\0" + "=0:t--d:d--t", // no arguments; t ^ d + &opt_device, &opt_name, &opt_name, NULL, NULL + ); // set interface name memset(&ifr, 0, sizeof(ifr)); diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c index 84969aa81..849ca1388 100644 --- a/networking/udhcp/d6_dhcpc.c +++ b/networking/udhcp/d6_dhcpc.c @@ -1101,13 +1101,14 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv) client_config.script = CONFIG_UDHCPC_DEFAULT_SCRIPT; /* Parse command line */ - /* O,x: list; -T,-t,-A take numeric param */ - IF_UDHCP_VERBOSE(opt_complementary = "vv";) - opt = getopt32long(argv, "i:np:qRr:s:T:+t:+SA:+O:*ox:*f" + opt = getopt32long(argv, "^" + /* O,x: list; -T,-t,-A take numeric param */ + "i:np:qRr:s:T:+t:+SA:+O:*ox:*f" USE_FOR_MMU("b") ///IF_FEATURE_UDHCPC_ARPING("a") IF_FEATURE_UDHCP_PORT("P:") "v" + "\0" IF_UDHCP_VERBOSE("vv") /* -v is a counter */ , udhcpc6_longopts , &client_config.interface, &client_config.pidfile, &str_r /* i,p */ , &client_config.script /* s */ diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 5f87f8586..55e0400b9 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -1295,16 +1295,18 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) str_V = "udhcp "BB_VER; /* Parse command line */ - /* O,x: list; -T,-t,-A take numeric param */ - IF_UDHCP_VERBOSE(opt_complementary = "vv";) - opt = getopt32long(argv, "CV:H:h:F:i:np:qRr:s:T:+t:+SA:+O:*ox:*fB" + opt = getopt32long(argv, "^" + /* O,x: list; -T,-t,-A take numeric param */ + "CV:H:h:F:i:np:qRr:s:T:+t:+SA:+O:*ox:*fB" USE_FOR_MMU("b") IF_FEATURE_UDHCPC_ARPING("a::") IF_FEATURE_UDHCP_PORT("P:") "v" + "\0" IF_UDHCP_VERBOSE("vv") /* -v is a counter */ , udhcpc_longopts , &str_V, &str_h, &str_h, &str_F - , &client_config.interface, &client_config.pidfile, &str_r /* i,p */ + , &client_config.interface, &client_config.pidfile /* i,p */ + , &str_r /* r */ , &client_config.script /* s */ , &discover_timeout, &discover_retries, &tryagain_timeout /* T,t,A */ , &list_O diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c index 3a5fc2db7..05ddc8649 100644 --- a/networking/udhcp/dhcpd.c +++ b/networking/udhcp/dhcpd.c @@ -814,11 +814,12 @@ int udhcpd_main(int argc UNUSED_PARAM, char **argv) IF_FEATURE_UDHCP_PORT(SERVER_PORT = 67;) IF_FEATURE_UDHCP_PORT(CLIENT_PORT = 68;) + opt = getopt32(argv, "^" + "fSI:va:"IF_FEATURE_UDHCP_PORT("P:") + "\0" #if defined CONFIG_UDHCP_DEBUG && CONFIG_UDHCP_DEBUG >= 1 - opt_complementary = "vv"; + "vv" #endif - opt = getopt32(argv, "fSI:va:" - IF_FEATURE_UDHCP_PORT("P:") , &str_I , &str_a IF_FEATURE_UDHCP_PORT(, &str_P) diff --git a/networking/udhcp/dumpleases.c b/networking/udhcp/dumpleases.c index fb1860ff6..70d2d1434 100644 --- a/networking/udhcp/dumpleases.c +++ b/networking/udhcp/dumpleases.c @@ -54,8 +54,12 @@ int dumpleases_main(int argc UNUSED_PARAM, char **argv) #endif init_unicode(); - opt_complementary = "=0:a--r:r--a"; - opt = getopt32long(argv, "arf:d", dumpleases_longopts, &file); + opt = getopt32long(argv, "^" + "arf:d" + "\0" "=0:a--r:r--a", + dumpleases_longopts, + &file + ); fd = xopen(file, O_RDONLY); diff --git a/networking/wget.c b/networking/wget.c index b661f727b..e1b40d3fd 100644 --- a/networking/wget.c +++ b/networking/wget.c @@ -1387,9 +1387,8 @@ IF_DESKTOP( "no-parent\0" No_argument "\xf0") #if ENABLE_FEATURE_WGET_LONG_OPTIONS #endif - opt_complementary = "-1" /* at least one URL */ - IF_FEATURE_WGET_LONG_OPTIONS(":\xff::"); /* --header is a list */ - GETOPT32(argv, "cqSO:P:Y:U:T:+" + GETOPT32(argv, "^" + "cqSO:P:Y:U:T:+" /*ignored:*/ "t:" /*ignored:*/ "n::" /* wget has exactly four -n<letter> opts, all of which we can ignore: @@ -1400,6 +1399,9 @@ IF_DESKTOP( "no-parent\0" No_argument "\xf0") * "n::" above says that we accept -n[ARG]. * Specifying "n:" would be a bug: "-n ARG" would eat ARG! */ + "\0" + "-1" /* at least one URL */ + IF_FEATURE_WGET_LONG_OPTIONS(":\xff::") /* --header is a list */ LONGOPTS , &G.fname_out, &G.dir_prefix, &G.proxy_flag, &G.user_agent, diff --git a/networking/whois.c b/networking/whois.c index 0cb7e5411..fd1cdf43e 100644 --- a/networking/whois.c +++ b/networking/whois.c @@ -167,8 +167,7 @@ int whois_main(int argc UNUSED_PARAM, char **argv) int port = 43; const char *host = "whois.iana.org"; - opt_complementary = "-1"; - getopt32(argv, "ih:p:+", &host, &port); + getopt32(argv, "^" "ih:p:+" "\0" "-1", &host, &port); argv += optind; do { diff --git a/networking/zcip.c b/networking/zcip.c index 94174a165..55440285f 100644 --- a/networking/zcip.c +++ b/networking/zcip.c @@ -253,8 +253,9 @@ int zcip_main(int argc UNUSED_PARAM, char **argv) #define QUIT (opts & 2) // Parse commandline: prog [options] ifname script // exactly 2 args; -v accumulates and implies -f - opt_complementary = "=2:vv:vf"; - opts = getopt32(argv, "fqr:l:v", &r_opt, &l_opt, &verbose); + opts = getopt32(argv, "^" "fqr:l:v" "\0" "=2:vv:vf", + &r_opt, &l_opt, &verbose + ); #if !BB_MMU // on NOMMU reexec early (or else we will rerun things twice) if (!FOREGROUND) |