Commit Graph

114 Commits

Author SHA1 Message Date
Garrett Wollman
0d3bcc2e80 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
Philippe Charnier
3c94f41f51 Do not repeat the name of the flag in its description 2002-08-27 19:14:08 +00:00
Juli Mallett
4a0193d39e 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
Juli Mallett
c9776a935f 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
Juli Mallett
65acff377a 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
Maxime Henrion
5965373e69 - 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 Drehmel
6863982a02 - Use MAXLOGNAME - 1 rather than UT_NAMESIZE.
- Remove the inclusion of <utmp.h>.
2002-07-22 11:36:25 +00:00
Tim J. Robbins
a07af81154 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
Tim J. Robbins
126b0a6341 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
Tim J. Robbins
cc81b6b0fb 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
Tim J. Robbins
5e25d888a8 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
Ruslan Ermilov
e2f8ed516a mdoc(7) police: markup nits. 2002-05-29 18:26:16 +00:00
Juli Mallett
47bca8b02c 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
Tom Rhodes
46c2a2cfa4 More consistancy. file system > filesystem 2002-05-16 02:19:14 +00:00
Philippe Charnier
e8937ba009 Use `The .Nm utility' 2002-04-20 12:18:28 +00:00
David E. O'Brien
5e28140a6b Fix to WARNS=2 level.
Tested by:	AXP gcc 3.1
2002-04-15 19:27:41 +00:00
David E. O'Brien
6f98638581 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
Philippe Charnier
4ed27a6f0a Replace err() with errx(), errno is garbage in this context. 2002-04-12 21:25:16 +00:00
Tom Rhodes
a8d50686f5 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
Mark Murray
48d09ba63f 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
Juli Mallett
51b0534f6b 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
David E. O'Brien
3077469e0c Fix SCM IDs. 2002-04-01 22:56:56 +00:00
David E. O'Brien
3fa1df42da 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
Giorgos Keramidas
7e7f3df61d 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
David Malone
b68d192c3a Change a "/*" within a comment to a "**".
Add a missing include spotted by gcc30.
2002-03-30 13:54:53 +00:00
Philippe Charnier
9725a7b97a spelling 2002-03-26 12:05:35 +00:00
Mark Murray
2a66bf165b 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
Mark Murray
2309721787 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
Mark Murray
a6565444bd 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
Mark Murray
ecca1f1c0a Remove __P(). 2002-03-20 10:32:05 +00:00
David Malone
e98080b1e6 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
Warner Losh
576541a9e6 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
Ruslan Ermilov
d33321c095 Add a missing comma. 2001-11-20 15:45:29 +00:00
David E. O'Brien
9b4e871a4f Document -depth 2001-10-06 18:07:32 +00:00
Ruslan Ermilov
631a876574 Simplify f_Xtime(). 2001-09-14 13:42:26 +00:00
Ruslan Ermilov
adff4fca3d 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
Ruslan Ermilov
7fd5ee41e3 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
Ruslan Ermilov
208691fcd8 Sort predicates.
PR:		docs/30237
2001-08-31 15:48:00 +00:00
Ruslan Ermilov
c0ff9709a5 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
David E. O'Brien
f0cb953721 Remove emalloc and expand to the malloc + error checking it was, where used. 2001-07-24 14:12:05 +00:00
David E. O'Brien
065fe72747 Quiet a [useless] compiler warning. 2001-07-23 23:27:28 +00:00
Yaroslav Tykhiy
08274979f3 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
Ruslan Ermilov
bfd1220842 mdoc(7) police: fix markup. 2001-05-16 13:53:19 +00:00
Poul-Henning Kamp
ea92232a82 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
Andrey A. Chernov
fa2b491527 Don't attempt to parse %c, use nl_langinfo instead 2001-03-21 15:51:50 +00:00
Warner Losh
470b24b584 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
Ruslan Ermilov
94ad6032c5 mdoc(7) police: restore correct order of references in the SEE ALSO. 2001-02-24 10:30:27 +00:00
Akinori MUSHA
7c1d4b3ae9 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
Ruslan Ermilov
d0353b836e mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:38:02 +00:00
Peter Wemm
ed1a4621a2 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