Commit Graph

114 Commits

Author SHA1 Message Date
wollman
aa09d8b564 Make the threatened fts(3) ABI fix. FTSENT now avoids the use of the struct
hack, thereby allowing future extensions to the structure (e.g., for extended
attributes) without rebreaking the ABI.  FTSENT now contains a pointer to the
parent stream, which fts_compar() can then take advantage of, avoiding the
undefined behavior previously warned about.  As a consequence of this change,
the prototype of the comparison function passed to fts_open() has changed
to reflect the required amount of constness for its use.  All callers in the
tree are updated to use the correct prototype.

Comparison functions can now make use of the new parent pointer to access
the new stream-specific private data pointer, which is intended to assist
creation of reentrant library routines which use fts(3) internally.

Not objected to in spirit by: -arch
2002-09-21 01:28:41 +00:00
charnier
eef2c40d6e Do not repeat the name of the flag in its description 2002-08-27 19:14:08 +00:00
jmallett
bd88fce4f3 Add a unary -not operator ala -false and !, for sake of completeness.
Obtained from:	OpenDarwin
MFC after:	1 week
2002-08-19 02:27:33 +00:00
jmallett
2439b56e98 Oops, add -false to the operators list in the manual page for find(1), as added
in revision 1.17 of option.c.

MFC after:	1 week
2002-08-15 18:30:13 +00:00
jmallett
fd28cd5d8f Add support for -false instead of '!' cause it can be hard to use that in
some shells, etc., and also for GNU compatability (lack of this broke the
Mono CVS build for me).

MFC after:	1 week
2002-08-15 18:24:55 +00:00
mux
f43070c325 - Introduce a new struct xvfsconf, the userland version of struct vfsconf.
- Make getvfsbyname() take a struct xvfsconf *.
- Convert several consumers of getvfsbyname() to use struct xvfsconf.
- Correct the getvfsbyname.3 manpage.
- Create a new vfs.conflist sysctl to dump all the struct xvfsconf in the
  kernel, and rewrite getvfsbyname() to use this instead of the weird
  existing API.
- Convert some {set,get,end}vfsent() consumers to use the new vfs.conflist
  sysctl.
- Convert a vfsload() call in nfsiod.c to kldload() and remove the useless
  vfsisloadable() and endvfsent() calls.
- Add a warning printf() in vfs_sysctl() to tell people they are using
  an old userland.

After these changes, it's possible to modify struct vfsconf without
breaking the binary compatibility.  Please note that these changes don't
break this compatibility either.

When bp will have updated mount_smbfs(8) with the patch I sent him, there
will be no more consumers of the {set,get,end}vfsent(), vfsisloadable()
and vfsload() API, and I will promptly delete it.
2002-08-10 20:19:04 +00:00
robert
28e1b1786c - Use MAXLOGNAME - 1 rather than UT_NAMESIZE.
- Remove the inclusion of <utmp.h>.
2002-07-22 11:36:25 +00:00
tjr
2665673777 Account for space used by environment variables in a similar way to
xargs(1) when handling -exec ... {} + constructions.
2002-07-13 08:08:46 +00:00
tjr
167db86ab5 Indicate that the semicolon that terminates argument lists should be in
its own argument for -ok and -okdir.
2002-06-26 08:03:54 +00:00
tjr
d17331343a Make it more obvious that the semicolon that terminates -exec and -execdir
argument lists must be in an argument by itself, not on the end of the
previous one.
2002-06-26 07:55:18 +00:00
tjr
b93a81cb4e Support the SysV-style -exec utility args.. {} + function, required by
SUSv3. This is similar to find foo -print0 | xargs -0 utility args.
2002-06-02 12:57:41 +00:00
ru
4a16a3c518 mdoc(7) police: markup nits. 2002-05-29 18:26:16 +00:00
jmallett
0109c30545 Clean up malloc(3)'s argument. Remove casts which do nothing when we're
using sizeof() anyway.  Use slightly more consistent (per-file) error
reporting for malloc(3) returning NULL.  If "malloc failed" was being printed,
don't use err(3).  If a NULL format is being used, use err(3).  In one case
errx(3) was being used with strerror(3), so just use err(3).
2002-05-17 05:11:07 +00:00
trhodes
fa6c7efe3f More consistancy. file system > filesystem 2002-05-16 02:19:14 +00:00
charnier
ad8a79e6a5 Use `The .Nm utility' 2002-04-20 12:18:28 +00:00
obrien
37b3235248 Fix to WARNS=2 level.
Tested by:	AXP gcc 3.1
2002-04-15 19:27:41 +00:00
obrien
ca0d3fbd5d Clean up the 1/2 a** committing from Thu, 3 May 2001 11:05:39 -0700 (PDT).
Since then we have living with a GPL'ed find(1) due to grabbing getdate.y
from src/contrib/cvs and its user of the GPL'ed xtime.h.  I don't even want
to think about how this could have affected people using our source base.

Would it have been too much trouble to do then what I did now?
Copied getdate.y (public domain) to usr.bin/find and change to use
standard system headers.  find(1) now compiles simply with out having
to go to extra effort to do so.

Pointed hat to:	phk
Build fixed on:	gcc 3.1 using platforms
2002-04-14 01:30:20 +00:00
charnier
d888a630ae Replace err() with errx(), errno is garbage in this context. 2002-04-12 21:25:16 +00:00
trhodes
eba831aa8a find.1 does not encourage users to DTRT when piping to xargs(1)
PR:			36602
Submitted by:		Joshua Goodall <joshua@roughtrade.net>
No objections from:	ru
MFC after:		2 days
2002-04-10 16:39:22 +00:00
markm
803be75ab6 There is breakage in parsedate, so revert to get_date until this can be
resolved.

Reported by:	paul
2002-04-02 10:45:34 +00:00
jmallett
390ab130a1 Fix find -exec with no command specified (i.e.: find . -exec ';')
PR:		bin/36521
Submitted by:	Simon 'corecode' Schubert <corecode@corecode.ath.cx>
Reviewed by:	mike
MFC after:	3 days
2002-04-02 07:20:56 +00:00
obrien
83e547f85d Fix SCM IDs. 2002-04-01 22:56:56 +00:00
obrien
1b1cb52477 Allow to compile a YACC produced file with GCC 3.1 (which has different
header searching rules for generated files with #line).
2002-04-01 22:55:01 +00:00
keramida
562250e13f Run find.1 through ispell.
PR:		docs/36601
Submitted by:	Joshua Goodall <joshua@roughtrade.net>
MFC after:	3 days
2002-04-01 12:41:14 +00:00
dwmalone
0183b6670c Change a "/*" within a comment to a "**".
Add a missing include spotted by gcc30.
2002-03-30 13:54:53 +00:00
charnier
7f9da3da3b spelling 2002-03-26 12:05:35 +00:00
markm
5da7065f3d Restructure for own parsedate (replacement for get_date from CVS).
Fix up parsedate.y for WARNS=4.

Reviewd by:	bde (except for parsedate.y diffs)
2002-03-21 21:56:05 +00:00
markm
18beef9ee3 Add a replacement for get_date which is currently being dug out of
CVS's sources.

This is a "public domain" implementation stolen from INN, and is
added unmodified.
2002-03-21 21:43:50 +00:00
markm
177f27dab3 For the sake of consistency, remove an include that is included in
a previous include. All other files in this app do this.
2002-03-20 10:35:51 +00:00
markm
d7ea51307a Remove __P(). 2002-03-20 10:32:05 +00:00
dwmalone
9540738a74 1) Remove -Wall from Makefile.
2) WARNs fixes (rename option to lookup_option to avoid shadowing, rename
   argv to argv1 to avoid shadowing, const stuff, prototypes, __unused).
3) Remove "register"s.
2002-02-27 17:57:00 +00:00
imp
60cc340d82 Fixed divots that I created when I moved prototypes of group_from_gid
and user_from_uid to grp.h and pwd.h.  Update the man pages.

Submitted by: David Malone
Pointy hat to: imp
2002-02-19 00:05:59 +00:00
ru
ed868c2f62 Add a missing comma. 2001-11-20 15:45:29 +00:00
obrien
255e13a69a Document -depth 2001-10-06 18:07:32 +00:00
ru
3a475bde7a Simplify f_Xtime(). 2001-09-14 13:42:26 +00:00
ru
66b2cd14ab Bloat find(1) even more, and introduce the concept
of time units to be used with -[acm]time primaries.

Based on patch from Nils M Holm <nmh@t3x.org>.

PR:		bin/29165, bin/30309
2001-09-14 12:47:13 +00:00
ru
f83248d955 The implementation of -flags was broken and did not match the (poorly)
documented behavior.  Only a certain set of file flags were recognized,
and "no" flags did not match files that have corresponding flags bits
turned off.

Fix and extend the -flags functionality as follows:

: -flags [-|+]<flags>,<notflags>
:    The flags are specified using symbolic names (see chflags(1)).
:    Those with the "no" prefix (except "nodump") are said to be
:    <notflags>.  Flags in <flags> are checked to be set, and flags in
:    <notflags> are checked to be not set.  Note that this is different
:    from -perm, which only allows the user to specify mode bits that
:    are set.
:
:    If flags are preceded by a dash (``-''), this primary evaluates
:    to true if at least all of the bits in <flags> and none of the bits
:    in <notflags> are set in the file's flags bits.  If flags are pre-
:    ceded by a plus (``+''), this primary evaluates to true if any of
:    the bits in <flags> is set in the file's flags bits, or any of the
:    bits in <notflags> is not set in the file's flags bits.  Otherwise,
:    this primary evaluates to true if the bits in <flags> exactly match
:    the file's flags bits, and none of the <flags> bits match those of
:    <notflags>.

MFC after:	2 weeks
2001-09-04 16:09:01 +00:00
ru
336fa38138 Sort predicates.
PR:		docs/30237
2001-08-31 15:48:00 +00:00
ru
9f91e74da7 Restore the `-perm +mode' feature.
Broken in the "close a PR" race, in revision 1.30.
Note that the patch in the PR did not have this bug!
2001-08-30 13:17:58 +00:00
obrien
44717cb5e9 Remove emalloc and expand to the malloc + error checking it was, where used. 2001-07-24 14:12:05 +00:00
obrien
adeb9166b8 Quiet a [useless] compiler warning. 2001-07-23 23:27:28 +00:00
yar
75f9f9392e Clarify the feature that -exec parameters won't get
shell-expanded when the specified utility is run.

MFC after:	5 days
2001-06-29 12:59:20 +00:00
ru
b9f33f3993 mdoc(7) police: fix markup. 2001-05-16 13:53:19 +00:00
phk
e51263b8a6 They add the following commands:
-anewer
   -cnewer
   -mnewer
   -okdir
   -newer[acm][acmt]

 With it, you can form queries like

     find . -newerct '1 minute ago' -print

 As an extra bonus, the program is ANSI-fied - the original version
 relies on some obscure features of K&R C.

(This PR was submitted in 1999, and the submittor has kept the patch
updated ever since, hats off for him guys, and how about you close a PR ??)

PR:		9374
Submitted by:	Martin Birgmeier <Martin.Birgmeier@aon.at>
2001-05-03 18:05:35 +00:00
ache
7ce0e6c37f Don't attempt to parse %c, use nl_langinfo instead 2001-03-21 15:51:50 +00:00
imp
2f28911795 MAXPATHLEN already accounts for the trailing NUL, so no need to add one in.
In addition, since we pass readlink MAXPATHLEN - 1, we would have never have
used that extra byte anyway.
2001-03-01 05:49:36 +00:00
ru
ad6c1d7d84 mdoc(7) police: restore correct order of references in the SEE ALSO. 2001-02-24 10:30:27 +00:00
knu
caa8a14382 Implement the following options and primaries:
-E      Interpret regular expressions followed by -regex and -iregex op-
             tions as extended (modern) regular expressions rather than basic
             regular expressions (BRE's).  The re_format(7) manual page fully
             describes both formats.

     -iname pattern
             Like -name, but the match is case insensitive.

     -ipath pattern
             Like -path, but the match is case insensitive.

     -regex pattern
             True if the whole path of the file matches pattern using regular
             expression.  To match a file named ``./foo/xyzzy'', you can use
             the regular expression ``.*/[xyz]*'' or ``.*/foo/.*'', but not
             ``xyzzy'' or ``/foo/''.

     -iregex pattern
             Like -regex, but the match is case insensitive.

These are meant to be compatible with other find(1) implementations
such as GNU's or NetBSD's except regexp library differences.

Reviewed by:	sobomax, dcs, and some other people on -current
2001-02-23 16:20:55 +00:00
ru
8a6f8b5fe4 mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:38:02 +00:00
peter
7eafba69d5 Add the -empty flag, from OpenBSD. It returns true if the directory
is empty.  There doesn't appear to be another easy way to do this.

mobile# mkdir foo
mobile# mkdir foo/bar
mobile# mkdir bar
mobile# find . -empty
./foo/bar
./bar
2001-01-23 11:16:50 +00:00