svn commit: trunk/busybox: findutils include

pgf at busybox.net pgf at busybox.net
Fri Jan 13 21:05:43 UTC 2006


Author: pgf
Date: 2006-01-13 13:05:41 -0800 (Fri, 13 Jan 2006)
New Revision: 13271

Log:
add find's "-mmin" option.  configurable.


Modified:
   trunk/busybox/findutils/Config.in
   trunk/busybox/findutils/find.c
   trunk/busybox/include/usage.h


Changeset:
Modified: trunk/busybox/findutils/Config.in
===================================================================
--- trunk/busybox/findutils/Config.in	2006-01-13 18:11:59 UTC (rev 13270)
+++ trunk/busybox/findutils/Config.in	2006-01-13 21:05:41 UTC (rev 13271)
@@ -17,8 +17,16 @@
 	depends on CONFIG_FIND
 	help
 	  Allow searching based on the modification time of
-	  files.
+	  files, in days.
 
+config CONFIG_FEATURE_FIND_MMIN
+	bool "  Enable modified time matching (-min) option"
+	default y
+	depends on CONFIG_FIND
+	help
+	  Allow searching based on the modification time of
+	  files, in minutes.
+
 config CONFIG_FEATURE_FIND_PERM
 	bool "  Enable permissions matching (-perm) option"
 	default y

Modified: trunk/busybox/findutils/find.c
===================================================================
--- trunk/busybox/findutils/find.c	2006-01-13 18:11:59 UTC (rev 13270)
+++ trunk/busybox/findutils/find.c	2006-01-13 21:05:41 UTC (rev 13271)
@@ -53,6 +53,11 @@
 static int mtime_days;
 #endif
 
+#ifdef CONFIG_FEATURE_FIND_MMIN
+static char mmin_char;
+static int mmin_mins;
+#endif
+
 #ifdef CONFIG_FEATURE_FIND_XDEV
 static dev_t *xdev_dev;
 static int xdev_count = 0;
@@ -109,6 +114,17 @@
 			goto no_match;
 	}
 #endif
+#ifdef CONFIG_FEATURE_FIND_MMIN
+	if (mmin_char != 0) {
+		time_t file_age = time(NULL) - statbuf->st_mtime;
+		time_t mmin_secs = mmin_mins * 60;
+		if (!((isdigit(mmin_char) && file_age >= mmin_secs &&
+						file_age < mmin_secs + 60) ||
+				(mmin_char == '+' && file_age >= mmin_secs + 60) ||
+				(mmin_char == '-' && file_age < mmin_secs)))
+			goto no_match;
+	}
+#endif
 #ifdef CONFIG_FEATURE_FIND_XDEV
 	if (xdev_count) {
 		int i;
@@ -239,6 +255,17 @@
 			if ((mtime_char = argv[i][0]) == '-')
 				mtime_days = -mtime_days;
 #endif
+#ifdef CONFIG_FEATURE_FIND_MMIN
+		} else if (strcmp(argv[i], "-mmin") == 0) {
+			char *end;
+			if (++i == argc)
+				bb_error_msg_and_die(msg_req_arg, "-mmin");
+			mmin_mins = strtol(argv[i], &end, 10);
+			if (end[0] != '\0')
+				bb_error_msg_and_die(msg_invalid_arg, argv[i], "-mmin");
+			if ((mmin_char = argv[i][0]) == '-')
+				mmin_mins = -mmin_mins;
+#endif
 #ifdef CONFIG_FEATURE_FIND_XDEV
 		} else if (strcmp(argv[i], "-xdev") == 0) {
 			struct stat stbuf;

Modified: trunk/busybox/include/usage.h
===================================================================
--- trunk/busybox/include/usage.h	2006-01-13 18:11:59 UTC (rev 13270)
+++ trunk/busybox/include/usage.h	2006-01-13 21:05:41 UTC (rev 13271)
@@ -722,6 +722,11 @@
 #else
 #  define USAGE_FIND_MTIME(a)
 #endif
+#ifdef CONFIG_FEATURE_FIND_MMIN
+  #define USAGE_FIND_MMIN(a) a
+#else
+  #define USAGE_FIND_MMIN(a)
+#endif
 #ifdef CONFIG_FEATURE_FIND_NEWER
 #  define USAGE_FIND_NEWER(a) a
 #else
@@ -752,7 +757,9 @@
 ) USAGE_FIND_PERM( \
 	"\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \
 ) USAGE_FIND_MTIME( \
-	"\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days" \
+	"\n\t-mtime DAYS\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days" \
+) USAGE_FIND_MMIN( \
+	"\n\t-mmin MINS\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) minutes" \
 ) USAGE_FIND_NEWER( \
 	"\n\t-newer FILE\tModified time is more recent than FILE's" \
 ) USAGE_FIND_INUM( \




More information about the busybox-cvs mailing list