From 219a6dab8995aad9ac4860cc1a84d6f3509a03a4 Mon Sep 17 00:00:00 2001 From: wbx Date: Sun, 17 May 2009 14:41:34 +0200 Subject: Initial import --- package/busybox/patches/002-find-empty.patch | 105 +++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 package/busybox/patches/002-find-empty.patch (limited to 'package/busybox/patches/002-find-empty.patch') diff --git a/package/busybox/patches/002-find-empty.patch b/package/busybox/patches/002-find-empty.patch new file mode 100644 index 000000000..4e0cc67fa --- /dev/null +++ b/package/busybox/patches/002-find-empty.patch @@ -0,0 +1,105 @@ +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") \ -- cgit v1.2.3