summaryrefslogtreecommitdiffstats
path: root/parse.c
Commit message (Collapse)AuthorAgeFilesLines
* Report errors that occur when closing filesTavian Barnes2017-10-211-7/+30
| | | | Otherwise we miss write errors that occur when flushing the cache.
* Add a man pageTavian Barnes2017-10-151-15/+22
| | | | Fixes #31
* parse: Document the bfs meaning of -O in -helpTavian Barnes2017-09-171-2/+15
|
* opt: Separate optimization from parsingTavian Barnes2017-09-161-328/+19
|
* parse: Don't reorder or remove tests with potential side effectsTavian Barnes2017-09-061-3/+21
| | | | | | -empty and -xtype may have side effects like reporting permission errors, which even affect the exit status of bfs. We shouldn't remove these effects without -Ofast.
* parse: Factor out common initialization code for -print and friendsTavian Barnes2017-09-061-35/+30
|
* Implement -D searchTavian Barnes2017-09-021-0/+3
|
* Implement cost-based optimizationTavian Barnes2017-08-271-43/+210
|
* Avoid multiple extra stat()s of broken symlinks for -xtypeTavian Barnes2017-08-221-1/+1
|
* Unify broken symlink handlingTavian Barnes2017-08-121-1/+1
| | | | | | | | | Rather than open-code the fallback logic for broken symlinks everywhere it's needed, introduce a new xfstatat() utility function that performs the fallback automatically. Using xfstatat() consistently fixes a few bugs, including cases where broken symlinks are given as arguments to predicates like -samefile.
* parse: Don't allow negative optimization levelsTavian Barnes2017-08-101-1/+1
|
* Re-license under the BSD Zero Clause LicenseTavian Barnes2017-07-271-10/+15
|
* Represent never returning as always_true && always_falseTavian Barnes2017-07-211-29/+31
| | | | | | | | | | Expressions that never return are vacuously always both true and false. Using this representation lets us take advantage of existing truth-based optimizations, which gets us optimizations of command lines like bfs -name foo -quit -print for free.
* Fix a couple terrible optimizer bugsTavian Barnes2017-07-211-2/+2
| | | | | | | Just because an expression is always true or false, doesn't mean we can execute it more often than it otherwise would be, unless it's also pure. But that's equivalent to being identically -true/-false, so just check that.
* Implement -printxTavian Barnes2017-07-211-0/+16
| | | | Also from NetBSD.
* Implement -exit [STATUS]Tavian Barnes2017-07-201-0/+23
| | | | From NetBSD again.
* Implement -rm as an alias for -deleteTavian Barnes2017-07-201-0/+4
| | | | From NetBSD.
* parse: Ask for confirmation in some casesTavian Barnes2017-07-161-108/+154
|
* parse: Warn if -depth and -prune are used togetherTavian Barnes2017-07-091-0/+19
|
* -perm: Handle permcopy (e.g. u=rw,g=u) correctlyTavian Barnes2017-06-151-5/+16
|
* parse: Make some error messages redTavian Barnes2017-06-031-2/+4
|
* parse: Set always_true for some actions that never return falseTavian Barnes2017-05-171-3/+25
|
* Add colors to -D treeTavian Barnes2017-05-151-37/+44
|
* Optimize based on reachability due to -quitTavian Barnes2017-05-151-43/+83
|
* Don't make -quit disable the implicit -printTavian Barnes2017-05-111-1/+1
|
* Implement -D execTavian Barnes2017-05-091-1/+6
|
* Don't parse the mount table until it's neededTavian Barnes2017-04-291-8/+7
|
* Release 1.01.0Tavian Barnes2017-04-241-1/+1
|
* Implement -fstypeTavian Barnes2017-04-231-2/+28
| | | | Fixes #6!
* Make -help output prettier and more completeTavian Barnes2017-04-161-37/+207
|
* Implement -XTavian Barnes2017-04-161-0/+10
|
* Implement -exec/-execdir ... +Tavian Barnes2017-04-151-22/+13
|
* Respect -nocolor for -fprint /dev/stdoutTavian Barnes2017-03-161-2/+16
|
* Give struct expr a CFILE* instead of just a FILE*Tavian Barnes2017-03-161-11/+18
| | | | This unifies the behaviour of -print and -fprint /dev/stdout.
* Implement -ls and -flsTavian Barnes2017-03-111-11/+50
|
* Make a printf()-style API for colored messagesTavian Barnes2017-03-111-104/+81
|
* Allow short-circuiting optimizations with non-pure operandsTavian Barnes2017-02-111-14/+38
|
* parse: Factor out all "looks like icmp" checksTavian Barnes2017-02-091-11/+16
|
* Add support for -x?type with multiple typesTavian Barnes2017-02-081-34/+59
| | | | This functionality is already part of GNU findutils git.
* Bail out if parse_root() failsTavian Barnes2017-02-071-44/+88
| | | | | | Previously, skip_paths() did not distinguish between end-of-arguments and parse_root() failing, returning NULL in both cases. If parse_root() failed, parsing would attempt to continue, in an unexpected state.
* Add some missing perror() callsTavian Barnes2017-02-071-14/+18
|
* Implement -printf/-fprintfTavian Barnes2017-02-051-4/+68
| | | | | Based on a patch by Fangrui Song <i@maskray.me>. Closes #16.
* Implement -nouser and -nogroupTavian Barnes2017-02-041-0/+16
|
* Add some text to the -help outputTavian Barnes2016-12-201-1/+27
|
* Implement -mnewerTavian Barnes2016-12-201-0/+1
|
* Add tera and peta suffices for -sizeTavian Barnes2016-12-201-1/+7
|
* Implement -sparse from FreeBSD findTavian Barnes2016-12-201-0/+8
|
* Support -[gu]id NAME like BSD findTavian Barnes2016-12-201-24/+10
|
* Don't check errno after get{gr,pw}nam()Tavian Barnes2016-12-201-24/+6
| | | | | Turns out it doesn't always keep errno 0, even if the only problem is a failed lookup. This was observed on a machine with Kerberos auth.
* Implement BSD find's -depth NTavian Barnes2016-12-181-1/+18
|