123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- diff -Nur busybox-1.12.3/findutils/Config.in busybox-1.12.3-find/findutils/Config.in
- --- busybox-1.12.3/findutils/Config.in 2008-09-28 20:04:28.000000000 +0200
- +++ busybox-1.12.3-find/findutils/Config.in 2009-01-06 22:24:46.086215240 +0100
- @@ -81,6 +81,14 @@
- help
- Support the 'find -inum' option for searching by inode number.
-
- +config FEATURE_FIND_EMPTY
- + bool "Enable -empty option matching empty files and directories"
- + default y
- + depends on FIND
- + help
- + Support the 'find -empty' option for searching empty files
- + and directories.
- +
- config FEATURE_FIND_EXEC
- bool "Enable -exec option allowing execution of commands"
- default y
- diff -Nur busybox-1.12.3/findutils/find.c busybox-1.12.3-find/findutils/find.c
- --- busybox-1.12.3/findutils/find.c 2008-09-28 20:04:28.000000000 +0200
- +++ busybox-1.12.3-find/findutils/find.c 2009-01-06 23:33:53.201386585 +0100
- @@ -93,6 +93,7 @@
- USE_FEATURE_FIND_CONTEXT(ACTS(context, security_context_t context;))
- USE_FEATURE_FIND_PAREN( ACTS(paren, action ***subexpr;))
- USE_FEATURE_FIND_PRUNE( ACTS(prune))
- +USE_FEATURE_FIND_EMPTY( ACTS(empty))
- USE_FEATURE_FIND_DELETE( ACTS(delete))
- USE_FEATURE_FIND_EXEC( ACTS(exec, char **exec_argv; unsigned *subst_count; int exec_argc;))
- USE_FEATURE_FIND_GROUP( ACTS(group, gid_t gid;))
- @@ -318,6 +319,34 @@
- return exec_actions(ap->subexpr, fileName, statbuf);
- }
- #endif
- +#if ENABLE_FEATURE_FIND_EMPTY
- +ACTF(empty)
- +{
- + DIR *d;
- + struct dirent *dp;
- + bool empty = TRUE;
- +
- + if (S_ISDIR(statbuf->st_mode)) {
- + d = opendir(fileName);
- + if (d == NULL)
- + bb_simple_perror_msg(fileName);
- + for (dp = readdir(d); dp; dp = readdir(d)) {
- + if (dp->d_name[0] != '.' ||
- + (dp->d_name[1] != '\0' &&
- + (dp->d_name[1] != '.' ||
- + dp->d_name[2] != '\0'))) {
- + empty = FALSE;
- + break;
- + }
- + }
- + closedir(d);
- + return(empty);
- + } else if (S_ISREG(statbuf->st_mode))
- + return (statbuf->st_size == 0);
- + else
- + return FALSE;
- +}
- +#endif
- #if ENABLE_FEATURE_FIND_SIZE
- ACTF(size)
- {
- @@ -459,6 +488,7 @@
- USE_FEATURE_FIND_PRINT0( PARM_print0 ,)
- USE_FEATURE_FIND_DEPTH( PARM_depth ,)
- USE_FEATURE_FIND_PRUNE( PARM_prune ,)
- + USE_FEATURE_FIND_EMPTY( PARM_empty ,)
- USE_FEATURE_FIND_DELETE( PARM_delete ,)
- USE_FEATURE_FIND_EXEC( PARM_exec ,)
- USE_FEATURE_FIND_PAREN( PARM_char_brace,)
- @@ -492,6 +522,7 @@
- USE_FEATURE_FIND_PRINT0( "-print0\0" )
- USE_FEATURE_FIND_DEPTH( "-depth\0" )
- USE_FEATURE_FIND_PRUNE( "-prune\0" )
- + USE_FEATURE_FIND_EMPTY( "-empty\0" )
- USE_FEATURE_FIND_DELETE( "-delete\0" )
- USE_FEATURE_FIND_EXEC( "-exec\0" )
- USE_FEATURE_FIND_PAREN( "(\0" )
- @@ -610,6 +641,12 @@
- (void) ALLOC_ACTION(prune);
- }
- #endif
- +#if ENABLE_FEATURE_FIND_EMPTY
- + else if (parm == PARM_empty) {
- + USE_FEATURE_FIND_NOT( invert_flag = 0; )
- + (void) ALLOC_ACTION(empty);
- + }
- +#endif
- #if ENABLE_FEATURE_FIND_DELETE
- else if (parm == PARM_delete) {
- need_print = 0;
- diff -Nur busybox-1.12.3/include/usage.h busybox-1.12.3-find/include/usage.h
- --- busybox-1.12.3/include/usage.h 2008-09-28 20:04:26.000000000 +0200
- +++ busybox-1.12.3-find/include/usage.h 2009-01-07 00:07:49.832669156 +0100
- @@ -1140,6 +1140,8 @@
- "\n -group NAME File belongs to group NAME (numeric group ID allowed)") \
- USE_FEATURE_FIND_DEPTH( \
- "\n -depth Process directory name after traversing it") \
- + USE_FEATURE_FIND_EMPTY( \
- + "\n -empty File or directory is empty") \
- USE_FEATURE_FIND_SIZE( \
- "\n -size N[bck] File size is N (c:bytes,k:kbytes,b:512 bytes(def.))." \
- "\n +/-N: file size is bigger/smaller than N") \
|