Add GNU-style -{a,c,m}min primaries.
This commit is contained in:
parent
6d1f55bc7a
commit
810471468e
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: extern.h,v 1.10 1999/01/12 00:18:50 lukem Exp $ */
|
||||
/* $NetBSD: extern.h,v 1.11 1999/01/16 13:27:30 simonb Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1991, 1993, 1994
|
||||
|
@ -50,7 +50,9 @@ struct stat;
|
|||
void printlong __P((char *, char *, struct stat *));
|
||||
int queryuser __P((char **));
|
||||
|
||||
PLAN *c_amin __P((char ***, int));
|
||||
PLAN *c_atime __P((char ***, int));
|
||||
PLAN *c_cmin __P((char ***, int));
|
||||
PLAN *c_ctime __P((char ***, int));
|
||||
PLAN *c_depth __P((char ***, int));
|
||||
PLAN *c_exec __P((char ***, int));
|
||||
|
@ -61,6 +63,8 @@ PLAN *c_group __P((char ***, int));
|
|||
PLAN *c_inum __P((char ***, int));
|
||||
PLAN *c_links __P((char ***, int));
|
||||
PLAN *c_ls __P((char ***, int));
|
||||
PLAN *c_mmin __P((char ***, int));
|
||||
PLAN *c_mtime __P((char ***, int));
|
||||
PLAN *c_name __P((char ***, int));
|
||||
PLAN *c_newer __P((char ***, int));
|
||||
PLAN *c_nogroup __P((char ***, int));
|
||||
|
@ -77,7 +81,6 @@ PLAN *c_user __P((char ***, int));
|
|||
PLAN *c_xdev __P((char ***, int));
|
||||
PLAN *c_openparen __P((char ***, int));
|
||||
PLAN *c_closeparen __P((char ***, int));
|
||||
PLAN *c_mtime __P((char ***, int));
|
||||
PLAN *c_not __P((char ***, int));
|
||||
PLAN *c_or __P((char ***, int));
|
||||
PLAN *c_null __P((char ***, int));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: find.1,v 1.17 1999/01/12 00:18:50 lukem Exp $
|
||||
.\" $NetBSD: find.1,v 1.18 1999/01/16 13:27:30 simonb Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 1990, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
|
@ -147,12 +147,25 @@ than that of the file from which the descent began.
|
|||
.El
|
||||
.Sh PRIMARIES
|
||||
.Bl -tag -width Ds
|
||||
.It Ic -amin Ar n
|
||||
True if the difference between the file last access time and the time
|
||||
.Nm
|
||||
was started, rounded up to the next full minute, is
|
||||
.Ar n
|
||||
minutes.
|
||||
.It Ic -atime Ar n
|
||||
True if the difference between the file last access time and the time
|
||||
.Nm
|
||||
was started, rounded up to the next full 24\-hour period, is
|
||||
.Ar n
|
||||
24\-hour periods.
|
||||
.It Ic -cmin Ar n
|
||||
True if the difference between the time of last change of file status
|
||||
information and the time
|
||||
.Nm
|
||||
was started, rounded up to the next full minute, is
|
||||
.Ar n
|
||||
minutes.
|
||||
.It Ic -ctime Ar n
|
||||
True if the difference between the time of last change of file status
|
||||
information and the time
|
||||
|
@ -240,6 +253,12 @@ will be displayed instead of the size in bytes.
|
|||
If the file is a symbolic link, the pathname of the linked\-to file will be
|
||||
displayed preceded by ``\->''.
|
||||
The format is identical to that produced by ``ls \-dgils''.
|
||||
.It Ic -mmin Ar n
|
||||
True if the difference between the file last modification time and the time
|
||||
.Nm
|
||||
was started, rounded up to the next full minute, is
|
||||
.Ar n
|
||||
minutes.
|
||||
.It Ic -mtime Ar n
|
||||
True if the difference between the file last modification time and the time
|
||||
.Nm
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: find.h,v 1.10 1999/01/12 00:18:50 lukem Exp $ */
|
||||
/* $NetBSD: find.h,v 1.11 1999/01/16 13:27:30 simonb Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,11 +41,11 @@
|
|||
/* node type */
|
||||
enum ntype {
|
||||
N_AND = 1, /* must start > 0 */
|
||||
N_ATIME, N_CLOSEPAREN, N_CTIME, N_DEPTH, N_EXEC, N_EXPR, N_FLAGS,
|
||||
N_FOLLOW, N_FSTYPE, N_GROUP, N_INUM, N_LINKS, N_LS, 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, N_PRUNE, N_SIZE, N_TYPE, N_USER,
|
||||
N_XDEV,
|
||||
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_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,
|
||||
N_PRUNE, N_SIZE, N_TYPE, N_USER, N_XDEV,
|
||||
};
|
||||
|
||||
/* node definition */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: function.c,v 1.28 1999/01/12 00:18:50 lukem Exp $ */
|
||||
/* $NetBSD: function.c,v 1.29 1999/01/16 13:27:30 simonb 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.28 1999/01/12 00:18:50 lukem Exp $");
|
||||
__RCSID("$NetBSD: function.c,v 1.29 1999/01/16 13:27:30 simonb Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -80,7 +80,9 @@ __RCSID("$NetBSD: function.c,v 1.28 1999/01/12 00:18:50 lukem Exp $");
|
|||
|
||||
static long find_parsenum __P((PLAN *, char *, char *, char *));
|
||||
int f_always_true __P((PLAN *, FTSENT *));
|
||||
int f_amin __P((PLAN *, FTSENT *));
|
||||
int f_atime __P((PLAN *, FTSENT *));
|
||||
int f_cmin __P((PLAN *, FTSENT *));
|
||||
int f_ctime __P((PLAN *, FTSENT *));
|
||||
int f_exec __P((PLAN *, FTSENT *));
|
||||
int f_flags __P((PLAN *, FTSENT *));
|
||||
|
@ -89,6 +91,7 @@ static long find_parsenum __P((PLAN *, char *, char *, char *));
|
|||
int f_inum __P((PLAN *, FTSENT *));
|
||||
int f_links __P((PLAN *, FTSENT *));
|
||||
int f_ls __P((PLAN *, FTSENT *));
|
||||
int f_mmin __P((PLAN *, FTSENT *));
|
||||
int f_mtime __P((PLAN *, FTSENT *));
|
||||
int f_name __P((PLAN *, FTSENT *));
|
||||
int f_newer __P((PLAN *, FTSENT *));
|
||||
|
@ -160,6 +163,39 @@ find_parsenum(plan, option, vp, endch)
|
|||
if ((p)->type == ttype && (p)->flags == F_LESSTHAN) \
|
||||
++((p)->t_data);
|
||||
|
||||
/*
|
||||
* -amin n functions --
|
||||
*
|
||||
* True if the difference between the file access time and the
|
||||
* current time is n 1 minute periods.
|
||||
*/
|
||||
int
|
||||
f_amin(plan, entry)
|
||||
PLAN *plan;
|
||||
FTSENT *entry;
|
||||
{
|
||||
extern time_t now;
|
||||
|
||||
COMPARE((now - entry->fts_statp->st_atime +
|
||||
SECSPERMIN - 1) / SECSPERMIN, plan->t_data);
|
||||
}
|
||||
|
||||
PLAN *
|
||||
c_amin(argvp, isok)
|
||||
char ***argvp;
|
||||
int isok;
|
||||
{
|
||||
char *arg = **argvp;
|
||||
PLAN *new;
|
||||
|
||||
(*argvp)++;
|
||||
ftsoptions &= ~FTS_NOSTAT;
|
||||
|
||||
new = palloc(N_AMIN, f_amin);
|
||||
new->t_data = find_parsenum(new, "-amin", arg, NULL);
|
||||
TIME_CORRECT(new, N_AMIN);
|
||||
return (new);
|
||||
}
|
||||
/*
|
||||
* -atime n functions --
|
||||
*
|
||||
|
@ -193,6 +229,39 @@ c_atime(argvp, isok)
|
|||
TIME_CORRECT(new, N_ATIME);
|
||||
return (new);
|
||||
}
|
||||
/*
|
||||
* -cmin n functions --
|
||||
*
|
||||
* True if the difference between the last change of file
|
||||
* status information and the current time is n 24 hour periods.
|
||||
*/
|
||||
int
|
||||
f_cmin(plan, entry)
|
||||
PLAN *plan;
|
||||
FTSENT *entry;
|
||||
{
|
||||
extern time_t now;
|
||||
|
||||
COMPARE((now - entry->fts_statp->st_ctime +
|
||||
SECSPERMIN - 1) / SECSPERMIN, plan->t_data);
|
||||
}
|
||||
|
||||
PLAN *
|
||||
c_cmin(argvp, isok)
|
||||
char ***argvp;
|
||||
int isok;
|
||||
{
|
||||
char *arg = **argvp;
|
||||
PLAN *new;
|
||||
|
||||
(*argvp)++;
|
||||
ftsoptions &= ~FTS_NOSTAT;
|
||||
|
||||
new = palloc(N_CMIN, f_cmin);
|
||||
new->t_data = find_parsenum(new, "-cmin", arg, NULL);
|
||||
TIME_CORRECT(new, N_CMIN);
|
||||
return (new);
|
||||
}
|
||||
/*
|
||||
* -ctime n functions --
|
||||
*
|
||||
|
@ -645,6 +714,39 @@ c_ls(argvp, isok)
|
|||
return (palloc(N_LS, f_ls));
|
||||
}
|
||||
|
||||
/*
|
||||
* -mmin n functions --
|
||||
*
|
||||
* True if the difference between the file modification time and the
|
||||
* current time is n 24 hour periods.
|
||||
*/
|
||||
int
|
||||
f_mmin(plan, entry)
|
||||
PLAN *plan;
|
||||
FTSENT *entry;
|
||||
{
|
||||
extern time_t now;
|
||||
|
||||
COMPARE((now - entry->fts_statp->st_mtime + SECSPERMIN - 1) /
|
||||
SECSPERMIN, plan->t_data);
|
||||
}
|
||||
|
||||
PLAN *
|
||||
c_mmin(argvp, isok)
|
||||
char ***argvp;
|
||||
int isok;
|
||||
{
|
||||
char *arg = **argvp;
|
||||
PLAN *new;
|
||||
|
||||
(*argvp)++;
|
||||
ftsoptions &= ~FTS_NOSTAT;
|
||||
|
||||
new = palloc(N_MMIN, f_mmin);
|
||||
new->t_data = find_parsenum(new, "-mmin", arg, NULL);
|
||||
TIME_CORRECT(new, N_MMIN);
|
||||
return (new);
|
||||
}
|
||||
/*
|
||||
* -mtime n functions --
|
||||
*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: option.c,v 1.11 1999/01/12 00:18:50 lukem Exp $ */
|
||||
/* $NetBSD: option.c,v 1.12 1999/01/16 13:27:31 simonb 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.11 1999/01/12 00:18:50 lukem Exp $");
|
||||
__RCSID("$NetBSD: option.c,v 1.12 1999/01/16 13:27:31 simonb Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -66,7 +66,9 @@ static OPTION const options[] = {
|
|||
{ ")", N_CLOSEPAREN, c_closeparen, 0 },
|
||||
{ "-a", N_AND, c_null, 0 },
|
||||
{ "-and", N_AND, c_null, 0 },
|
||||
{ "-amin", N_AMIN, c_amin, 1 },
|
||||
{ "-atime", N_ATIME, c_atime, 1 },
|
||||
{ "-cmin", N_CMIN, c_cmin, 1 },
|
||||
{ "-ctime", N_CTIME, c_ctime, 1 },
|
||||
{ "-depth", N_DEPTH, c_depth, 0 },
|
||||
{ "-exec", N_EXEC, c_exec, 1 },
|
||||
|
@ -77,6 +79,7 @@ static OPTION const options[] = {
|
|||
{ "-inum", N_INUM, c_inum, 1 },
|
||||
{ "-links", N_LINKS, c_links, 1 },
|
||||
{ "-ls", N_LS, c_ls, 0 },
|
||||
{ "-mmin", N_MMIN, c_mmin, 1 },
|
||||
{ "-mtime", N_MTIME, c_mtime, 1 },
|
||||
{ "-name", N_NAME, c_name, 1 },
|
||||
{ "-newer", N_NEWER, c_newer, 1 },
|
||||
|
|
Loading…
Reference in New Issue