svn commit: trunk/busybox/findutils
vda at busybox.net
vda at busybox.net
Thu Feb 1 17:17:52 PST 2007
Author: vda
Date: 2007-02-01 17:17:52 -0800 (Thu, 01 Feb 2007)
New Revision: 17710
Log:
find -user support by Natanael Copa <natanael.copa at gmail.com>
Modified:
trunk/busybox/findutils/Config.in
trunk/busybox/findutils/find.c
Changeset:
Modified: trunk/busybox/findutils/Config.in
===================================================================
--- trunk/busybox/findutils/Config.in 2007-02-02 01:16:33 UTC (rev 17709)
+++ trunk/busybox/findutils/Config.in 2007-02-02 01:17:52 UTC (rev 17710)
@@ -83,6 +83,13 @@
Support the 'find -exec' option for executing commands based upon
the files matched.
+config FEATURE_FIND_USER
+ bool "Enable username/uid matching (-user) option"
+ default y
+ depends on FIND
+ help
+ Support the 'find -user' option for searching by username or uid.
+
config GREP
bool "grep"
default n
Modified: trunk/busybox/findutils/find.c
===================================================================
--- trunk/busybox/findutils/find.c 2007-02-02 01:16:33 UTC (rev 17709)
+++ trunk/busybox/findutils/find.c 2007-02-02 01:17:52 UTC (rev 17710)
@@ -68,6 +68,7 @@
USE_FEATURE_FIND_NEWER( ACTS(newer, time_t newer_mtime;))
USE_FEATURE_FIND_INUM( ACTS(inum, ino_t inode_num;))
USE_FEATURE_FIND_EXEC( ACTS(exec, char **exec_argv; int *subst_count; int exec_argc;))
+USE_FEATURE_FIND_USER( ACTS(user, int uid;))
USE_DESKTOP( ACTS(paren, action ***subexpr;))
USE_DESKTOP( ACTS(size, off_t size;))
USE_DESKTOP( ACTS(prune))
@@ -212,6 +213,13 @@
}
#endif
+#if ENABLE_FEATURE_FIND_USER
+ACTF(user)
+{
+ return (statbuf->st_uid == ap->uid);
+}
+#endif
+
#if ENABLE_FEATURE_FIND_PRINT0
ACTF(print0)
{
@@ -478,6 +486,17 @@
ap->subst_count[i] = count_subst(ap->exec_argv[i]);
}
#endif
+#ifdef ENABLE_FEATURE_FIND_USER
+ else if (strcmp(arg, "-user") == 0) {
+ action_user *ap;
+ if (!*++argv)
+ bb_error_msg_and_die(bb_msg_requires_arg, arg);
+ ap = ALLOC_ACTION(user);
+ ap->uid = bb_strtou(arg1, NULL, 10);
+ if (errno)
+ ap->uid = xuname2uid(arg1);
+ }
+#endif
#if ENABLE_DESKTOP
else if (LONE_CHAR(arg, '(')) {
action_paren *ap;
More information about the busybox-cvs
mailing list