aboutsummaryrefslogtreecommitdiff
path: root/networking
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-07-23 17:14:14 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-07-23 17:14:14 +0000
commitbdc88fdc6844ee6890e31ba4cf56800becc8c682 (patch)
tree69301e47c6493ad275d72e57ce96467ee13d7ecc /networking
parent9fe9c1a6d8e66032a9783f98606167764e8ab296 (diff)
downloadbusybox-w32-bdc88fdc6844ee6890e31ba4cf56800becc8c682.tar.gz
busybox-w32-bdc88fdc6844ee6890e31ba4cf56800becc8c682.tar.bz2
busybox-w32-bdc88fdc6844ee6890e31ba4cf56800becc8c682.zip
rework long option handling. saves ~1.2k
function old new delta tar_longopts - 222 +222 static.udhcpc_longopts - 192 +192 start_stop_daemon_longopts - 150 +150 getopt32 1045 1185 +140 static.wget_longopts - 111 +111 static.od_longopts - 105 +105 getopt_longopts - 96 +96 install_longopts - 67 +67 ipcalc_longopts - 63 +63 static.hwclock_longopts - 54 +54 ftpgetput_longopts - 52 +52 static.dumpleases_longopts - 32 +32 env_longopts - 31 +31 runparts_longopts - 30 +30 mv_longopts - 24 +24 mkdir_longopts - 19 +19 find_pair 164 180 +16 bb_null_long_options - 16 +16 setconsole_longopts - 10 +10 display_speed 91 98 +7 collect_blk 467 474 +7 show_color 4 1 -3 ls_main 913 904 -9 bb_default_long_options 16 - -16 ls_color_opt 32 10 -22 setconsole_long_options 32 - -32 arith 2077 2030 -47 mv_long_options 48 - -48 mkdir_long_options 48 - -48 env_long_options 48 - -48 static.options 248 184 -64 runparts_long_options 80 - -80 ftpgetput_long_options 96 - -96 static.hwclock_long_options 112 - -112 install_long_options 112 - -112 static.long_options 144 - -144 static.wget_long_options 160 - -160 longopts 160 - -160 static.arg_options 304 - -304 tar_long_options 320 - -320 long_options 384 - -384 ------------------------------------------------------------------------------ (add/remove: 17/15 grow/shrink: 4/5 up/down: 1444/-2209) Total: -765 bytes text data bss dec hex filename 782618 1328 11900 795846 c24c6 busybox_old 781354 1328 11900 794582 c1fd6 busybox_unstripped
Diffstat (limited to 'networking')
-rw-r--r--networking/ftpgetput.c17
-rw-r--r--networking/ipcalc.c19
-rw-r--r--networking/udhcp/dhcpc.c43
-rw-r--r--networking/udhcp/dumpleases.c13
-rw-r--r--networking/wget.c27
5 files changed, 57 insertions, 62 deletions
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index 54b5f5a91..011fbac84 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -287,14 +287,13 @@ int ftp_send(ftp_host_info_t *server, FILE *control_stream,
287#define FTPGETPUT_OPT_PORT 16 287#define FTPGETPUT_OPT_PORT 16
288 288
289#if ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS 289#if ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS
290static const struct option ftpgetput_long_options[] = { 290static const char ftpgetput_longopts[] =
291 { "continue", 1, NULL, 'c' }, 291 "continue\0" Required_argument "c"
292 { "verbose", 0, NULL, 'v' }, 292 "verbose\0" No_argument "v"
293 { "username", 1, NULL, 'u' }, 293 "username\0" Required_argument "u"
294 { "password", 1, NULL, 'p' }, 294 "password\0" Required_argument "p"
295 { "port", 1, NULL, 'P' }, 295 "port\0" Required_argument "P"
296 { 0, 0, 0, 0 } 296 "\0";
297};
298#endif 297#endif
299 298
300int ftpgetput_main(int argc, char **argv); 299int ftpgetput_main(int argc, char **argv);
@@ -329,7 +328,7 @@ int ftpgetput_main(int argc, char **argv)
329 * Decipher the command line 328 * Decipher the command line
330 */ 329 */
331#if ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS 330#if ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS
332 applet_long_options = ftpgetput_long_options; 331 applet_long_options = ftpgetput_longopts;
333#endif 332#endif
334 opt_complementary = "=3"; /* must have 3 params */ 333 opt_complementary = "=3"; /* must have 3 params */
335 opt = getopt32(argc, argv, "cvu:p:P:", &server->user, &server->password, &port); 334 opt = getopt32(argc, argv, "cvu:p:P:", &server->user, &server->password, &port);
diff --git a/networking/ipcalc.c b/networking/ipcalc.c
index a39ad1a67..32b939f96 100644
--- a/networking/ipcalc.c
+++ b/networking/ipcalc.c
@@ -63,17 +63,16 @@ int get_prefix(unsigned long netmask);
63#define SILENT 0x20 63#define SILENT 0x20
64 64
65#if ENABLE_FEATURE_IPCALC_LONG_OPTIONS 65#if ENABLE_FEATURE_IPCALC_LONG_OPTIONS
66 static const struct option long_options[] = { 66 static const char ipcalc_longopts[] =
67 { "netmask", no_argument, NULL, 'm' }, 67 "netmask\0" No_argument "m"
68 { "broadcast", no_argument, NULL, 'b' }, 68 "broadcast\0" No_argument "b"
69 { "network", no_argument, NULL, 'n' }, 69 "network\0" No_argument "n"
70# if ENABLE_FEATURE_IPCALC_FANCY 70# if ENABLE_FEATURE_IPCALC_FANCY
71 { "prefix", no_argument, NULL, 'p' }, 71 "prefix\0" No_argument "p"
72 { "hostname", no_argument, NULL, 'h' }, 72 "hostname\0" No_argument "h"
73 { "silent", no_argument, NULL, 's' }, 73 "silent\0" No_argument "s"
74# endif 74# endif
75 { NULL, 0, NULL, 0 } 75 "\0";
76 };
77#endif 76#endif
78 77
79int ipcalc_main(int argc, char **argv); 78int ipcalc_main(int argc, char **argv);
@@ -86,7 +85,7 @@ int ipcalc_main(int argc, char **argv)
86 char *ipstr; 85 char *ipstr;
87 86
88#if ENABLE_FEATURE_IPCALC_LONG_OPTIONS 87#if ENABLE_FEATURE_IPCALC_LONG_OPTIONS
89 applet_long_options = long_options; 88 applet_long_options = ipcalc_longopts;
90#endif 89#endif
91 opt = getopt32(argc, argv, "mbn" USE_FEATURE_IPCALC_FANCY("phs")); 90 opt = getopt32(argc, argv, "mbn" USE_FEATURE_IPCALC_FANCY("phs"));
92 argc -= optind; 91 argc -= optind;
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 3165c2d68..2b95c3250 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -181,27 +181,26 @@ int udhcpc_main(int argc, char **argv)
181 OPT_v = 1 << 17, 181 OPT_v = 1 << 17,
182 }; 182 };
183#if ENABLE_GETOPT_LONG 183#if ENABLE_GETOPT_LONG
184 static const struct option arg_options[] = { 184 static const char udhcpc_longopts[] =
185 { "clientid", required_argument, 0, 'c' }, 185 "clientid\0" Required_argument "c"
186 { "clientid-none", no_argument, 0, 'C' }, 186 "clientid-none\0" No_argument "C"
187 { "vendorclass", required_argument, 0, 'V' }, 187 "vendorclass\0" Required_argument "V"
188 { "foreground", no_argument, 0, 'f' }, 188 "foreground\0" No_argument "f"
189 { "background", no_argument, 0, 'b' }, 189 "background\0" No_argument "b"
190 { "hostname", required_argument, 0, 'H' }, 190 "hostname\0" Required_argument "H"
191 { "hostname", required_argument, 0, 'h' }, 191 "hostname\0" Required_argument "h"
192 { "fqdn", required_argument, 0, 'F' }, 192 "fqdn\0" Required_argument "F"
193 { "interface", required_argument, 0, 'i' }, 193 "interface\0" Required_argument "i"
194 { "now", no_argument, 0, 'n' }, 194 "now\0" No_argument "n"
195 { "pidfile", required_argument, 0, 'p' }, 195 "pidfile\0" Required_argument "p"
196 { "quit", no_argument, 0, 'q' }, 196 "quit\0" No_argument "q"
197 { "release", no_argument, 0, 'R' }, 197 "release\0" No_argument "R"
198 { "request", required_argument, 0, 'r' }, 198 "request\0" Required_argument "r"
199 { "script", required_argument, 0, 's' }, 199 "script\0" Required_argument "s"
200 { "timeout", required_argument, 0, 'T' }, 200 "timeout\0" Required_argument "T"
201 { "version", no_argument, 0, 'v' }, 201 "version\0" No_argument "v"
202 { "retries", required_argument, 0, 't' }, 202 "retries\0" Required_argument "t"
203 { 0, 0, 0, 0 } 203 "\0";
204 };
205#endif 204#endif
206 /* Default options. */ 205 /* Default options. */
207 client_config.interface = "eth0"; 206 client_config.interface = "eth0";
@@ -213,7 +212,7 @@ int udhcpc_main(int argc, char **argv)
213 opt_complementary = "c--C:C--c" // mutually exclusive 212 opt_complementary = "c--C:C--c" // mutually exclusive
214 ":hH:Hh"; // -h and -H are the same 213 ":hH:Hh"; // -h and -H are the same
215#if ENABLE_GETOPT_LONG 214#if ENABLE_GETOPT_LONG
216 applet_long_options = arg_options; 215 applet_long_options = udhcpc_longopts;
217#endif 216#endif
218 opt = getopt32(argc, argv, "c:CV:fbH:h:F:i:np:qRr:s:T:t:v", 217 opt = getopt32(argc, argv, "c:CV:fbH:h:F:i:np:qRr:s:T:t:v",
219 &str_c, &str_V, &str_h, &str_h, &str_F, 218 &str_c, &str_V, &str_h, &str_h, &str_F,
diff --git a/networking/udhcp/dumpleases.c b/networking/udhcp/dumpleases.c
index 95df7ea36..fb50d6888 100644
--- a/networking/udhcp/dumpleases.c
+++ b/networking/udhcp/dumpleases.c
@@ -24,14 +24,13 @@ int dumpleases_main(int argc, char **argv)
24 OPT_f = 0x4, // -f 24 OPT_f = 0x4, // -f
25 }; 25 };
26#if ENABLE_GETOPT_LONG 26#if ENABLE_GETOPT_LONG
27 static const struct option options[] = { 27 static const char dumpleases_longopts[] =
28 { "absolute", no_argument, 0, 'a' }, 28 "absolute\0" No_argument "a"
29 { "remaining", no_argument, 0, 'r' }, 29 "remaining\0" No_argument "r"
30 { "file", required_argument, 0, 'f' }, 30 "file\0" Required_argument "f"
31 { NULL, 0, 0, 0 } 31 "\0";
32 };
33 32
34 applet_long_options = options; 33 applet_long_options = dumpleases_longopts;
35#endif 34#endif
36 opt_complementary = "=0:a--r:r--a"; 35 opt_complementary = "=0:a--r:r--a";
37 opt = getopt32(argc, argv, "arf:", &file); 36 opt = getopt32(argc, argv, "arf:", &file);
diff --git a/networking/wget.c b/networking/wget.c
index 19ff792ed..ad09091d3 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -132,20 +132,19 @@ int wget_main(int argc, char **argv)
132 WGET_OPT_HEADER = 0x100, 132 WGET_OPT_HEADER = 0x100,
133 }; 133 };
134#if ENABLE_FEATURE_WGET_LONG_OPTIONS 134#if ENABLE_FEATURE_WGET_LONG_OPTIONS
135 static const struct option wget_long_options[] = { 135 static const char wget_longopts[] =
136 /* name, has_arg, flag, val */ 136 /* name, has_arg, val */
137 { "continue", no_argument, NULL, 'c' }, 137 "continue\0" No_argument "c"
138 { "spider", no_argument, NULL, 's' }, 138 "spider\0" No_argument "s"
139 { "quiet", no_argument, NULL, 'q' }, 139 "quiet\0" No_argument "q"
140 { "output-document", required_argument, NULL, 'O' }, 140 "output-document\0" Required_argument "O"
141 { "directory-prefix", required_argument, NULL, 'P' }, 141 "directory-prefix\0" Required_argument "P"
142 { "proxy", required_argument, NULL, 'Y' }, 142 "proxy\0" Required_argument "Y"
143 { "user-agent", required_argument, NULL, 'U' }, 143 "user-agent\0" Required_argument "U"
144 { "passive-ftp", no_argument, NULL, 0xff }, 144 "passive-ftp\0" No_argument "\xff"
145 { "header", required_argument, NULL, 0xfe }, 145 "header\0" Required_argument "\xfe"
146 { 0, 0, 0, 0 } 146 "\0";
147 }; 147 applet_long_options = wget_longopts;
148 applet_long_options = wget_long_options;
149#endif 148#endif
150 /* server.allocated = target.allocated = NULL; */ 149 /* server.allocated = target.allocated = NULL; */
151 opt_complementary = "-1" USE_FEATURE_WGET_LONG_OPTIONS(":\xfe::"); 150 opt_complementary = "-1" USE_FEATURE_WGET_LONG_OPTIONS(":\xfe::");