Signed-off-by: Ismael Luceno <ism...@iodev.co.uk>
---
 findutils/find.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/findutils/find.c b/findutils/find.c
index 0948de13df3d..5c9eccdd545c 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -66,6 +66,38 @@
 //config:      newlines and other whitespace to be more easily
 //config:      interpreted by other programs.
 //config:
+//config:config FEATURE_FIND_ATIME
+//config:      bool "Enable -atime: access time matching"
+//config:      default y
+//config:      depends on FIND
+//config:      help
+//config:      Allow searching based on the access time of
+//config:      files, in days.
+//config:
+//config:config FEATURE_FIND_AMIN
+//config:      bool "Enable -amin: access time matching by minutes"
+//config:      default y
+//config:      depends on FIND
+//config:      help
+//config:      Allow searching based on the access time of
+//config:      files, in minutes.
+//config:
+//config:config FEATURE_FIND_CTIME
+//config:      bool "Enable -ctime: status change timestamp matching"
+//config:      default y
+//config:      depends on FIND
+//config:      help
+//config:      Allow searching based on the status change timestamp of
+//config:      files, in days.
+//config:
+//config:config FEATURE_FIND_CMIN
+//config:      bool "Enable -cmin: status change timestamp matching by minutes"
+//config:      default y
+//config:      depends on FIND
+//config:      help
+//config:      Allow searching based on the status change timestamp of
+//config:      files, in minutes.
+//config:
 //config:config FEATURE_FIND_MTIME
 //config:      bool "Enable -mtime: modification time matching"
 //config:      default y
@@ -292,6 +324,22 @@
 //usage:     "\n       -perm MASK      At least one mask bit (+MASK), all bits 
(-MASK),"
 //usage:     "\n                       or exactly MASK bits are set in file's 
mode"
 //usage:       )
+//usage:       IF_FEATURE_FIND_ATIME(
+//usage:     "\n       -atime DAYS     atime is greater than (+N), less than 
(-N),"
+//usage:     "\n                       or exactly N days in the past"
+//usage:       )
+//usage:       IF_FEATURE_FIND_AMIN(
+//usage:     "\n       -amin MINS      atime is greater than (+N), less than 
(-N),"
+//usage:     "\n                       or exactly N minutes in the past"
+//usage:       )
+//usage:       IF_FEATURE_FIND_CTIME(
+//usage:     "\n       -ctime DAYS     ctime is greater than (+N), less than 
(-N),"
+//usage:     "\n                       or exactly N days in the past"
+//usage:       )
+//usage:       IF_FEATURE_FIND_CMIN(
+//usage:     "\n       -cmin MINS      ctime is greater than (+N), less than 
(-N),"
+//usage:     "\n                       or exactly N minutes in the past"
+//usage:       )
 //usage:       IF_FEATURE_FIND_MTIME(
 //usage:     "\n       -mtime DAYS     mtime is greater than (+N), less than 
(-N),"
 //usage:     "\n                       or exactly N days in the past"
@@ -396,6 +444,10 @@ IF_FEATURE_FIND_PRINT0( ACTS(print0))
 IF_FEATURE_FIND_TYPE(   ACTS(type,  int type_mask;))
 IF_FEATURE_FIND_EXECUTABLE(ACTS(executable))
 IF_FEATURE_FIND_PERM(   ACTS(perm,  char perm_char; mode_t perm_mask;))
+IF_FEATURE_FIND_ATIME(  ACTS(atime, char atime_char; unsigned atime_days;))
+IF_FEATURE_FIND_AMIN(   ACTS(amin,  char amin_char; unsigned amin_mins;))
+IF_FEATURE_FIND_CTIME(  ACTS(ctime, char ctime_char; unsigned ctime_days;))
+IF_FEATURE_FIND_CMIN(   ACTS(cmin,  char cmin_char; unsigned cmin_mins;))
 IF_FEATURE_FIND_MTIME(  ACTS(mtime, char mtime_char; unsigned mtime_days;))
 IF_FEATURE_FIND_MMIN(   ACTS(mmin,  char mmin_char; unsigned mmin_mins;))
 IF_FEATURE_FIND_NEWER(  ACTS(newer, time_t newer_mtime;))
@@ -620,6 +672,10 @@ ACTF(perm)
 #endif
 
 #if                                            \
+       ENABLE_FEATURE_FIND_AMIN  ||            \
+       ENABLE_FEATURE_FIND_ATIME ||            \
+       ENABLE_FEATURE_FIND_CMIN  ||            \
+       ENABLE_FEATURE_FIND_CTIME ||            \
        ENABLE_FEATURE_FIND_MMIN  ||            \
        ENABLE_FEATURE_FIND_MTIME
 static int time_cmp(time_t ftime, char time_char, time_t secs, time_t delta) {
@@ -633,6 +689,34 @@ static int time_cmp(time_t ftime, char time_char, time_t 
secs, time_t delta) {
 }
 #endif
 
+#if ENABLE_FEATURE_FIND_ATIME
+ACTF(atime)
+{
+       return time_cmp(statbuf->st_atime, ap->atime_char,
+                       ap->atime_days * 24*60*60, 24*60*60);
+}
+#endif
+#if ENABLE_FEATURE_FIND_AMIN
+ACTF(amin)
+{
+       return time_cmp(statbuf->st_atime, ap->amin_char,
+                       ap->amin_mins * 60, 60);
+}
+#endif
+#if ENABLE_FEATURE_FIND_CTIME
+ACTF(ctime)
+{
+       return time_cmp(statbuf->st_ctime, ap->ctime_char,
+                       ap->ctime_days * 24*60*60, 24*60*60);
+}
+#endif
+#if ENABLE_FEATURE_FIND_CMIN
+ACTF(cmin)
+{
+       return time_cmp(statbuf->st_ctime, ap->cmin_char,
+                       ap->cmin_mins * 60, 60);
+}
+#endif
 #if ENABLE_FEATURE_FIND_MTIME
 ACTF(mtime)
 {
-- 
2.33.0

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to