Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/find Add a "cnewer" primary which evaluates true if ...
details: https://anonhg.NetBSD.org/src/rev/3dbe26dd19c6
branches: trunk
changeset: 518496:3dbe26dd19c6
user: kleink <kleink%NetBSD.org@localhost>
date: Sat Dec 01 14:10:04 2001 +0000
description:
Add a "cnewer" primary which evaluates true if a file has a more recent
ctime than its argument.
>From kre in PR bin/14802; originally suggested name was "updated" but
renamed due to GNU find(1) being prior art for this functionality.
diffstat:
usr.bin/find/extern.h | 3 ++-
usr.bin/find/find.1 | 8 ++++++--
usr.bin/find/find.h | 6 +++---
usr.bin/find/function.c | 41 +++++++++++++++++++++++++++++++++++++++--
usr.bin/find/option.c | 5 +++--
5 files changed, 53 insertions(+), 10 deletions(-)
diffs (168 lines):
diff -r 67ef3a460209 -r 3dbe26dd19c6 usr.bin/find/extern.h
--- a/usr.bin/find/extern.h Sat Dec 01 13:44:22 2001 +0000
+++ b/usr.bin/find/extern.h Sat Dec 01 14:10:04 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: extern.h,v 1.14 2001/09/21 07:11:33 enami Exp $ */
+/* $NetBSD: extern.h,v 1.15 2001/12/01 14:10:04 kleink Exp $ */
/*-
* Copyright (c) 1991, 1993, 1994
@@ -53,6 +53,7 @@
PLAN *c_amin __P((char ***, int));
PLAN *c_atime __P((char ***, int));
PLAN *c_cmin __P((char ***, int));
+PLAN *c_cnewer __P((char ***, int));
PLAN *c_ctime __P((char ***, int));
PLAN *c_depth __P((char ***, int));
PLAN *c_exec __P((char ***, int));
diff -r 67ef3a460209 -r 3dbe26dd19c6 usr.bin/find/find.1
--- a/usr.bin/find/find.1 Sat Dec 01 13:44:22 2001 +0000
+++ b/usr.bin/find/find.1 Sat Dec 01 14:10:04 2001 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: find.1,v 1.28 2001/07/06 18:12:02 abs Exp $
+.\" $NetBSD: find.1,v 1.29 2001/12/01 14:10:04 kleink Exp $
.\"
.\" Copyright (c) 1990, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -36,7 +36,7 @@
.\"
.\" from: @(#)find.1 8.7 (Berkeley) 5/9/95
.\"
-.Dd January 4, 1999
+.Dd December 1, 2001
.Dt FIND 1
.Os
.Sh NAME
@@ -180,6 +180,9 @@
was started, rounded up to the next full minute, is
.Ar n
minutes.
+.It Ic -cnewer Ar file
+True if the current file has a more recent last change time than
+.Ar file .
.It Ic -ctime Ar n
True if the difference between the time of last change of file status
information and the time
@@ -529,6 +532,7 @@
The options and the
.Ic -amin ,
.Ic -cmin ,
+.Ic -cnewer ,
.Ic -follow ,
.Ic -fstype ,
.Ic -inum ,
diff -r 67ef3a460209 -r 3dbe26dd19c6 usr.bin/find/find.h
--- a/usr.bin/find/find.h Sat Dec 01 13:44:22 2001 +0000
+++ b/usr.bin/find/find.h Sat Dec 01 14:10:04 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: find.h,v 1.12 1999/07/20 01:28:41 cgd Exp $ */
+/* $NetBSD: find.h,v 1.13 2001/12/01 14:10:04 kleink Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -43,8 +43,8 @@
/* node type */
enum ntype {
N_AND = 1, /* must start > 0 */
- N_AMIN, N_ATIME, N_CLOSEPAREN, N_CMIN, N_CTIME, N_DEPTH, N_EXEC,
- N_EXPR, N_FLAGS, N_FOLLOW, N_FSTYPE, N_GROUP, N_INUM, N_IREGEX,
+ N_AMIN, N_ATIME, N_CLOSEPAREN, N_CMIN, N_CNEWER, N_CTIME, N_DEPTH,
+ N_EXEC, N_EXPR, N_FLAGS, N_FOLLOW, N_FSTYPE, N_GROUP, N_INUM, N_IREGEX,
N_LINKS, N_LS,
N_MMIN, N_MTIME, N_NAME, N_NEWER, N_NOGROUP, N_NOT, N_NOUSER, N_OK,
N_OPENPAREN, N_OR, N_PATH, N_PERM, N_PRINT, N_PRINT0, N_PRINTX,
diff -r 67ef3a460209 -r 3dbe26dd19c6 usr.bin/find/function.c
--- a/usr.bin/find/function.c Sat Dec 01 13:44:22 2001 +0000
+++ b/usr.bin/find/function.c Sat Dec 01 14:10:04 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: function.c,v 1.38 2001/09/21 07:11:33 enami Exp $ */
+/* $NetBSD: function.c,v 1.39 2001/12/01 14:10:04 kleink Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -41,7 +41,7 @@
#if 0
static char sccsid[] = "from: @(#)function.c 8.10 (Berkeley) 5/4/95";
#else
-__RCSID("$NetBSD: function.c,v 1.38 2001/09/21 07:11:33 enami Exp $");
+__RCSID("$NetBSD: function.c,v 1.39 2001/12/01 14:10:04 kleink Exp $");
#endif
#endif /* not lint */
@@ -84,6 +84,7 @@
int f_amin __P((PLAN *, FTSENT *));
int f_atime __P((PLAN *, FTSENT *));
int f_cmin __P((PLAN *, FTSENT *));
+ int f_cnewer __P((PLAN *, FTSENT *));
int f_ctime __P((PLAN *, FTSENT *));
int f_exec __P((PLAN *, FTSENT *));
int f_flags __P((PLAN *, FTSENT *));
@@ -263,6 +264,42 @@
TIME_CORRECT(new, N_CMIN);
return (new);
}
+
+/*
+ * -cnewer file functions --
+ *
+ * True if the current file has been changed more recently
+ * then the changed time of the file named by the pathname
+ * file.
+ */
+int
+f_cnewer(plan, entry)
+ PLAN *plan;
+ FTSENT *entry;
+{
+
+ return (entry->fts_statp->st_ctime > plan->t_data);
+}
+
+PLAN *
+c_cnewer(argvp, isok)
+ char ***argvp;
+ int isok;
+{
+ char *filename = **argvp;
+ PLAN *new;
+ struct stat sb;
+
+ (*argvp)++;
+ ftsoptions &= ~FTS_NOSTAT;
+
+ if (stat(filename, &sb))
+ err(1, "%s", filename);
+ new = palloc(N_CNEWER, f_cnewer);
+ new->t_data = sb.st_ctime;
+ return (new);
+}
+
/*
* -ctime n functions --
*
diff -r 67ef3a460209 -r 3dbe26dd19c6 usr.bin/find/option.c
--- a/usr.bin/find/option.c Sat Dec 01 13:44:22 2001 +0000
+++ b/usr.bin/find/option.c Sat Dec 01 14:10:04 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: option.c,v 1.15 2000/10/18 08:58:11 jdolecek Exp $ */
+/* $NetBSD: option.c,v 1.16 2001/12/01 14:10:04 kleink Exp $ */
/*-
* Copyright (c) 1990, 1993, 1994
@@ -41,7 +41,7 @@
#if 0
static char sccsid[] = "from: @(#)option.c 8.2 (Berkeley) 4/16/94";
#else
-__RCSID("$NetBSD: option.c,v 1.15 2000/10/18 08:58:11 jdolecek Exp $");
+__RCSID("$NetBSD: option.c,v 1.16 2001/12/01 14:10:04 kleink Exp $");
#endif
#endif /* not lint */
@@ -69,6 +69,7 @@
{ "-and", N_AND, c_null, 0 },
{ "-atime", N_ATIME, c_atime, 1 },
{ "-cmin", N_CMIN, c_cmin, 1 },
+ { "-cnewer", N_CNEWER, c_cnewer, 1 },
{ "-ctime", N_CTIME, c_ctime, 1 },
{ "-depth", N_DEPTH, c_depth, 0 },
{ "-exec", N_EXEC, c_exec, 1 },
Home |
Main Index |
Thread Index |
Old Index