summaryrefslogtreecommitdiff
path: root/coreutils/expr.c
diff options
context:
space:
mode:
authorDenis Vlasenko2007-07-24 15:54:42 +0000
committerDenis Vlasenko2007-07-24 15:54:42 +0000
commit990d0f63eeb502c8762076e5c5499196e09cba55 (patch)
tree30a2091a8159b1694d65f9952e2aba2667d7dc11 /coreutils/expr.c
parentbcb66ec22e82f6b1ab93f3aec917269393a5b464 (diff)
downloadbusybox-990d0f63eeb502c8762076e5c5499196e09cba55.zip
busybox-990d0f63eeb502c8762076e5c5499196e09cba55.tar.gz
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 'coreutils/expr.c')
-rw-r--r--coreutils/expr.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/coreutils/expr.c b/coreutils/expr.c
index ab182a8..6a4683d 100644
--- a/coreutils/expr.c
+++ b/coreutils/expr.c
@@ -277,14 +277,13 @@ static VALUE *eval7(void)
static VALUE *eval6(void)
{
- static const char * const keywords[] = {
- "quote", "length", "match", "index", "substr", NULL
- };
+ static const char keywords[] =
+ "quote\0""length\0""match\0""index\0""substr\0";
VALUE *r, *i1, *i2;
VALUE *l = l; /* silence gcc */
VALUE *v = v; /* silence gcc */
- int key = *G.args ? index_in_str_array(keywords, *G.args) + 1 : 0;
+ int key = *G.args ? index_in_strings(keywords, *G.args) + 1 : 0;
if (key == 0) /* not a keyword */
return eval7();