summaryrefslogtreecommitdiffhomepage
path: root/findutils
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-07-24 15:54:42 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-07-24 15:54:42 +0000
commit990d0f63eeb502c8762076e5c5499196e09cba55 (patch)
tree30a2091a8159b1694d65f9952e2aba2667d7dc11 /findutils
parentbcb66ec22e82f6b1ab93f3aec917269393a5b464 (diff)
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 'findutils')
-rw-r--r--findutils/find.c76
1 files changed, 37 insertions, 39 deletions
diff --git a/findutils/find.c b/findutils/find.c
index 6f2cbbc78..eaf1d5946 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -470,38 +470,37 @@ static action*** parse_params(char **argv)
USE_FEATURE_FIND_CONTEXT(PARM_context ,)
};
- static const char *const params[] = {
- "-a" ,
- "-o" ,
- USE_FEATURE_FIND_NOT( "!" ,)
+ static const char params[] =
+ "-a\0"
+ "-o\0"
+ USE_FEATURE_FIND_NOT( "!\0" )
#if ENABLE_DESKTOP
- "-and" ,
- "-or" ,
- USE_FEATURE_FIND_NOT( "-not" ,)
-#endif
- "-print" ,
- USE_FEATURE_FIND_PRINT0( "-print0" ,)
- USE_FEATURE_FIND_DEPTH( "-depth" ,)
- USE_FEATURE_FIND_PRUNE( "-prune" ,)
- USE_FEATURE_FIND_DELETE( "-delete" ,)
- USE_FEATURE_FIND_EXEC( "-exec" ,)
- USE_FEATURE_FIND_PAREN( "(" ,)
+ "-and\0"
+ "-or\0"
+ USE_FEATURE_FIND_NOT( "-not\0" )
+#endif
+ "-print\0"
+ USE_FEATURE_FIND_PRINT0( "-print0\0" )
+ USE_FEATURE_FIND_DEPTH( "-depth\0" )
+ USE_FEATURE_FIND_PRUNE( "-prune\0" )
+ USE_FEATURE_FIND_DELETE( "-delete\0" )
+ USE_FEATURE_FIND_EXEC( "-exec\0" )
+ USE_FEATURE_FIND_PAREN( "(\0" )
/* All options starting from here require argument */
- "-name" ,
- USE_FEATURE_FIND_PATH( "-path" ,)
- USE_FEATURE_FIND_REGEX( "-regex" ,)
- USE_FEATURE_FIND_TYPE( "-type" ,)
- USE_FEATURE_FIND_PERM( "-perm" ,)
- USE_FEATURE_FIND_MTIME( "-mtime" ,)
- USE_FEATURE_FIND_MMIN( "-mmin" ,)
- USE_FEATURE_FIND_NEWER( "-newer" ,)
- USE_FEATURE_FIND_INUM( "-inum" ,)
- USE_FEATURE_FIND_USER( "-user" ,)
- USE_FEATURE_FIND_GROUP( "-group" ,)
- USE_FEATURE_FIND_SIZE( "-size" ,)
- USE_FEATURE_FIND_CONTEXT("-context",)
- NULL
- };
+ "-name\0"
+ USE_FEATURE_FIND_PATH( "-path\0" )
+ USE_FEATURE_FIND_REGEX( "-regex\0" )
+ USE_FEATURE_FIND_TYPE( "-type\0" )
+ USE_FEATURE_FIND_PERM( "-perm\0" )
+ USE_FEATURE_FIND_MTIME( "-mtime\0" )
+ USE_FEATURE_FIND_MMIN( "-mmin\0" )
+ USE_FEATURE_FIND_NEWER( "-newer\0" )
+ USE_FEATURE_FIND_INUM( "-inum\0" )
+ USE_FEATURE_FIND_USER( "-user\0" )
+ USE_FEATURE_FIND_GROUP( "-group\0" )
+ USE_FEATURE_FIND_SIZE( "-size\0" )
+ USE_FEATURE_FIND_CONTEXT("-context\0")
+ ;
action*** appp;
unsigned cur_group = 0;
@@ -541,7 +540,7 @@ static action*** parse_params(char **argv)
*/
while (*argv) {
const char *arg = argv[0];
- int parm = index_in_str_array(params, arg);
+ int parm = index_in_strings(params, arg);
const char *arg1 = argv[1];
if (parm >= PARM_name) {
@@ -795,14 +794,13 @@ static action*** parse_params(char **argv)
int find_main(int argc, char **argv);
int find_main(int argc, char **argv)
{
- static const char *const options[] = {
- "-follow",
-USE_FEATURE_FIND_XDEV( "-xdev" ,)
-USE_FEATURE_FIND_MAXDEPTH("-maxdepth",)
- NULL
- };
+ static const char options[] =
+ "-follow\0"
+USE_FEATURE_FIND_XDEV( "-xdev\0" )
+USE_FEATURE_FIND_MAXDEPTH("-maxdepth\0")
+ ;
enum {
- OPT_FOLLOW,
+ OPT_FOLLOW,
USE_FEATURE_FIND_XDEV( OPT_XDEV ,)
USE_FEATURE_FIND_MAXDEPTH(OPT_MAXDEPTH,)
};
@@ -839,7 +837,7 @@ USE_FEATURE_FIND_MAXDEPTH(OPT_MAXDEPTH,)
/* (-a will be ignored by recursive parser later) */
argp = &argv[firstopt];
while ((arg = argp[0])) {
- int opt = index_in_str_array(options, arg);
+ int opt = index_in_strings(options, arg);
if (opt == OPT_FOLLOW) {
recurse_flags |= ACTION_FOLLOWLINKS;
argp[0] = (char*)"-a";