diff options
author | Paul Fox <pgf@brightstareng.com> | 2006-01-13 21:05:41 +0000 |
---|---|---|
committer | Paul Fox <pgf@brightstareng.com> | 2006-01-13 21:05:41 +0000 |
commit | 72d1a2357d2168f241458e4d6cebb7589ac82f4f (patch) | |
tree | f3152b7eb88a52763740683d918e61aacbb9ade9 /findutils/find.c | |
parent | 4a1865ca5eaf6bebc76ef8066c19e95df0edc7c3 (diff) | |
download | busybox-w32-72d1a2357d2168f241458e4d6cebb7589ac82f4f.tar.gz busybox-w32-72d1a2357d2168f241458e4d6cebb7589ac82f4f.tar.bz2 busybox-w32-72d1a2357d2168f241458e4d6cebb7589ac82f4f.zip |
add find's "-mmin" option. configurable.
Diffstat (limited to 'findutils/find.c')
-rw-r--r-- | findutils/find.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/findutils/find.c b/findutils/find.c index 75ed4e208..603c20643 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -53,6 +53,11 @@ static char mtime_char; | |||
53 | static int mtime_days; | 53 | static int mtime_days; |
54 | #endif | 54 | #endif |
55 | 55 | ||
56 | #ifdef CONFIG_FEATURE_FIND_MMIN | ||
57 | static char mmin_char; | ||
58 | static int mmin_mins; | ||
59 | #endif | ||
60 | |||
56 | #ifdef CONFIG_FEATURE_FIND_XDEV | 61 | #ifdef CONFIG_FEATURE_FIND_XDEV |
57 | static dev_t *xdev_dev; | 62 | static dev_t *xdev_dev; |
58 | static int xdev_count = 0; | 63 | static int xdev_count = 0; |
@@ -109,6 +114,17 @@ static int fileAction(const char *fileName, struct stat *statbuf, void* junk) | |||
109 | goto no_match; | 114 | goto no_match; |
110 | } | 115 | } |
111 | #endif | 116 | #endif |
117 | #ifdef CONFIG_FEATURE_FIND_MMIN | ||
118 | if (mmin_char != 0) { | ||
119 | time_t file_age = time(NULL) - statbuf->st_mtime; | ||
120 | time_t mmin_secs = mmin_mins * 60; | ||
121 | if (!((isdigit(mmin_char) && file_age >= mmin_secs && | ||
122 | file_age < mmin_secs + 60) || | ||
123 | (mmin_char == '+' && file_age >= mmin_secs + 60) || | ||
124 | (mmin_char == '-' && file_age < mmin_secs))) | ||
125 | goto no_match; | ||
126 | } | ||
127 | #endif | ||
112 | #ifdef CONFIG_FEATURE_FIND_XDEV | 128 | #ifdef CONFIG_FEATURE_FIND_XDEV |
113 | if (xdev_count) { | 129 | if (xdev_count) { |
114 | int i; | 130 | int i; |
@@ -239,6 +255,17 @@ int find_main(int argc, char **argv) | |||
239 | if ((mtime_char = argv[i][0]) == '-') | 255 | if ((mtime_char = argv[i][0]) == '-') |
240 | mtime_days = -mtime_days; | 256 | mtime_days = -mtime_days; |
241 | #endif | 257 | #endif |
258 | #ifdef CONFIG_FEATURE_FIND_MMIN | ||
259 | } else if (strcmp(argv[i], "-mmin") == 0) { | ||
260 | char *end; | ||
261 | if (++i == argc) | ||
262 | bb_error_msg_and_die(msg_req_arg, "-mmin"); | ||
263 | mmin_mins = strtol(argv[i], &end, 10); | ||
264 | if (end[0] != '\0') | ||
265 | bb_error_msg_and_die(msg_invalid_arg, argv[i], "-mmin"); | ||
266 | if ((mmin_char = argv[i][0]) == '-') | ||
267 | mmin_mins = -mmin_mins; | ||
268 | #endif | ||
242 | #ifdef CONFIG_FEATURE_FIND_XDEV | 269 | #ifdef CONFIG_FEATURE_FIND_XDEV |
243 | } else if (strcmp(argv[i], "-xdev") == 0) { | 270 | } else if (strcmp(argv[i], "-xdev") == 0) { |
244 | struct stat stbuf; | 271 | struct stat stbuf; |