From 990d0f63eeb502c8762076e5c5499196e09cba55 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 24 Jul 2007 15:54:42 +0000 Subject: 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 --- coreutils/tr.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'coreutils/tr.c') diff --git a/coreutils/tr.c b/coreutils/tr.c index c0d0dfacb..594571833 100644 --- a/coreutils/tr.c +++ b/coreutils/tr.c @@ -51,11 +51,10 @@ static unsigned int expand(const char *arg, char *buffer) char *buffer_start = buffer; unsigned i; /* XXX: FIXME: use unsigned char? */ unsigned char ac; -#define CLO ":]" - static const char * const classes[] = { - "alpha"CLO, "alnum"CLO, "digit"CLO, "lower"CLO, "upper"CLO, "space"CLO, - "blank"CLO, "punct"CLO, "cntrl"CLO, NULL - }; +#define CLO ":]\0" + static const char classes[] = + "alpha"CLO "alnum"CLO "digit"CLO "lower"CLO "upper"CLO "space"CLO + "blank"CLO "punct"CLO "cntrl"CLO; #define CLASS_invalid 0 /* we increment the retval */ #define CLASS_alpha 1 #define CLASS_alnum 2 @@ -90,7 +89,7 @@ static unsigned int expand(const char *arg, char *buffer) smalluint j; { /* not really pretty.. */ char *tmp = xstrndup(arg, 7); // warning: xdigit needs 8, not 7 - j = index_in_str_array(classes, tmp) + 1; + j = index_in_strings(classes, tmp) + 1; free(tmp); } if (j == CLASS_alnum || j == CLASS_digit) { -- cgit v1.2.3