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
This commit is contained in:
Denis Vlasenko
2007-07-24 15:54:42 +00:00
parent bcb66ec22e
commit 990d0f63ee
43 changed files with 352 additions and 340 deletions

View File

@ -46,17 +46,15 @@ static int sockfd; /* active socket descriptor */
static smallint hw_set; /* flag if hw-type was set (-H) */
static const char *device = ""; /* current device */
static const char *const options[] = {
"pub",
"priv",
"temp",
"trail",
"dontpub",
"auto",
"dev",
"netmask",
NULL
};
static const char options[] =
"pub\0"
"priv\0"
"temp\0"
"trail\0"
"dontpub\0"
"auto\0"
"dev\0"
"netmask\0";
/* Delete an entry from the ARP cache. */
/* Called only from main, once */
@ -85,7 +83,7 @@ static int arp_del(char **args)
req.arp_flags = ATF_PERM;
args++;
while (*args != NULL) {
switch (index_in_str_array(options, *args)) {
switch (index_in_strings(options, *args)) {
case 0: /* "pub" */
flags |= 1;
args++;
@ -239,7 +237,7 @@ static int arp_set(char **args)
/* Check out any modifiers. */
flags = ATF_PERM | ATF_COM;
while (*args != NULL) {
switch (index_in_str_array(options, *args)) {
switch (index_in_strings(options, *args)) {
case 0: /* "pub" */
flags |= ATF_PUBL;
args++;