diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-24 15:54:42 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-24 15:54:42 +0000 |
commit | 990d0f63eeb502c8762076e5c5499196e09cba55 (patch) | |
tree | 30a2091a8159b1694d65f9952e2aba2667d7dc11 /networking/wget.c | |
parent | bcb66ec22e82f6b1ab93f3aec917269393a5b464 (diff) | |
download | busybox-w32-990d0f63eeb502c8762076e5c5499196e09cba55.tar.gz busybox-w32-990d0f63eeb502c8762076e5c5499196e09cba55.tar.bz2 busybox-w32-990d0f63eeb502c8762076e5c5499196e09cba55.zip |
Replace index_in_[sub]str_array with index_in_[sub]strings,
which scans thru "abc\0def\0123\0\0" type strings. Saves 250 bytes.
text data bss dec hex filename
781266 1328 11844 794438 c1f46 busybox_old
781010 1328 11844 794182 c1e46 busybox_unstripped
Diffstat (limited to 'networking/wget.c')
-rw-r--r-- | networking/wget.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/networking/wget.c b/networking/wget.c index ad09091d3..d944f0173 100644 --- a/networking/wget.c +++ b/networking/wget.c | |||
@@ -114,9 +114,8 @@ int wget_main(int argc, char **argv) | |||
114 | bool use_proxy = 1; /* Use proxies if env vars are set */ | 114 | bool use_proxy = 1; /* Use proxies if env vars are set */ |
115 | const char *proxy_flag = "on"; /* Use proxies if env vars are set */ | 115 | const char *proxy_flag = "on"; /* Use proxies if env vars are set */ |
116 | const char *user_agent = "Wget";/* "User-Agent" header field */ | 116 | const char *user_agent = "Wget";/* "User-Agent" header field */ |
117 | static const char * const keywords[] = { | 117 | static const char keywords[] = |
118 | "content-length", "transfer-encoding", "chunked", "location", NULL | 118 | "content-length\0""transfer-encoding\0""chunked\0""location\0"; |
119 | }; | ||
120 | enum { | 119 | enum { |
121 | KEY_content_length = 1, KEY_transfer_encoding, KEY_chunked, KEY_location | 120 | KEY_content_length = 1, KEY_transfer_encoding, KEY_chunked, KEY_location |
122 | }; | 121 | }; |
@@ -143,7 +142,7 @@ int wget_main(int argc, char **argv) | |||
143 | "user-agent\0" Required_argument "U" | 142 | "user-agent\0" Required_argument "U" |
144 | "passive-ftp\0" No_argument "\xff" | 143 | "passive-ftp\0" No_argument "\xff" |
145 | "header\0" Required_argument "\xfe" | 144 | "header\0" Required_argument "\xfe" |
146 | "\0"; | 145 | ; |
147 | applet_long_options = wget_longopts; | 146 | applet_long_options = wget_longopts; |
148 | #endif | 147 | #endif |
149 | /* server.allocated = target.allocated = NULL; */ | 148 | /* server.allocated = target.allocated = NULL; */ |
@@ -327,7 +326,7 @@ int wget_main(int argc, char **argv) | |||
327 | */ | 326 | */ |
328 | while ((str = gethdr(buf, sizeof(buf), sfp, &n)) != NULL) { | 327 | while ((str = gethdr(buf, sizeof(buf), sfp, &n)) != NULL) { |
329 | /* gethdr did already convert the "FOO:" string to lowercase */ | 328 | /* gethdr did already convert the "FOO:" string to lowercase */ |
330 | smalluint key = index_in_str_array(keywords, *&buf) + 1; | 329 | smalluint key = index_in_strings(keywords, *&buf) + 1; |
331 | if (key == KEY_content_length) { | 330 | if (key == KEY_content_length) { |
332 | content_len = BB_STRTOOFF(str, NULL, 10); | 331 | content_len = BB_STRTOOFF(str, NULL, 10); |
333 | if (errno || content_len < 0) { | 332 | if (errno || content_len < 0) { |
@@ -337,7 +336,7 @@ int wget_main(int argc, char **argv) | |||
337 | continue; | 336 | continue; |
338 | } | 337 | } |
339 | if (key == KEY_transfer_encoding) { | 338 | if (key == KEY_transfer_encoding) { |
340 | if (index_in_str_array(keywords, str_tolower(str)) + 1 != KEY_chunked) | 339 | if (index_in_strings(keywords, str_tolower(str)) + 1 != KEY_chunked) |
341 | bb_error_msg_and_die("server wants to do %s transfer encoding", str); | 340 | bb_error_msg_and_die("server wants to do %s transfer encoding", str); |
342 | chunked = got_clen = 1; | 341 | chunked = got_clen = 1; |
343 | } | 342 | } |