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 /coreutils/expr.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 'coreutils/expr.c')
-rw-r--r-- | coreutils/expr.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/coreutils/expr.c b/coreutils/expr.c index ab182a804..6a4683d90 100644 --- a/coreutils/expr.c +++ b/coreutils/expr.c | |||
@@ -277,14 +277,13 @@ static VALUE *eval7(void) | |||
277 | 277 | ||
278 | static VALUE *eval6(void) | 278 | static VALUE *eval6(void) |
279 | { | 279 | { |
280 | static const char * const keywords[] = { | 280 | static const char keywords[] = |
281 | "quote", "length", "match", "index", "substr", NULL | 281 | "quote\0""length\0""match\0""index\0""substr\0"; |
282 | }; | ||
283 | 282 | ||
284 | VALUE *r, *i1, *i2; | 283 | VALUE *r, *i1, *i2; |
285 | VALUE *l = l; /* silence gcc */ | 284 | VALUE *l = l; /* silence gcc */ |
286 | VALUE *v = v; /* silence gcc */ | 285 | VALUE *v = v; /* silence gcc */ |
287 | int key = *G.args ? index_in_str_array(keywords, *G.args) + 1 : 0; | 286 | int key = *G.args ? index_in_strings(keywords, *G.args) + 1 : 0; |
288 | 287 | ||
289 | if (key == 0) /* not a keyword */ | 288 | if (key == 0) /* not a keyword */ |
290 | return eval7(); | 289 | return eval7(); |