Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | opt: Separate optimization from parsing | Tavian Barnes | 2017-09-16 | 1 | -328/+19 |
| | |||||
* | parse: Don't reorder or remove tests with potential side effects | Tavian Barnes | 2017-09-06 | 1 | -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 friends | Tavian Barnes | 2017-09-06 | 1 | -35/+30 |
| | |||||
* | Implement -D search | Tavian Barnes | 2017-09-02 | 1 | -0/+3 |
| | |||||
* | Implement cost-based optimization | Tavian Barnes | 2017-08-27 | 1 | -43/+210 |
| | |||||
* | Avoid multiple extra stat()s of broken symlinks for -xtype | Tavian Barnes | 2017-08-22 | 1 | -1/+1 |
| | |||||
* | Unify broken symlink handling | Tavian Barnes | 2017-08-12 | 1 | -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 levels | Tavian Barnes | 2017-08-10 | 1 | -1/+1 |
| | |||||
* | Re-license under the BSD Zero Clause License | Tavian Barnes | 2017-07-27 | 1 | -10/+15 |
| | |||||
* | Represent never returning as always_true && always_false | Tavian Barnes | 2017-07-21 | 1 | -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 bugs | Tavian Barnes | 2017-07-21 | 1 | -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 -printx | Tavian Barnes | 2017-07-21 | 1 | -0/+16 |
| | | | | Also from NetBSD. | ||||
* | Implement -exit [STATUS] | Tavian Barnes | 2017-07-20 | 1 | -0/+23 |
| | | | | From NetBSD again. | ||||
* | Implement -rm as an alias for -delete | Tavian Barnes | 2017-07-20 | 1 | -0/+4 |
| | | | | From NetBSD. | ||||
* | parse: Ask for confirmation in some cases | Tavian Barnes | 2017-07-16 | 1 | -108/+154 |
| | |||||
* | parse: Warn if -depth and -prune are used together | Tavian Barnes | 2017-07-09 | 1 | -0/+19 |
| | |||||
* | -perm: Handle permcopy (e.g. u=rw,g=u) correctly | Tavian Barnes | 2017-06-15 | 1 | -5/+16 |
| | |||||
* | parse: Make some error messages red | Tavian Barnes | 2017-06-03 | 1 | -2/+4 |
| | |||||
* | parse: Set always_true for some actions that never return false | Tavian Barnes | 2017-05-17 | 1 | -3/+25 |
| | |||||
* | Add colors to -D tree | Tavian Barnes | 2017-05-15 | 1 | -37/+44 |
| | |||||
* | Optimize based on reachability due to -quit | Tavian Barnes | 2017-05-15 | 1 | -43/+83 |
| | |||||
* | Don't make -quit disable the implicit -print | Tavian Barnes | 2017-05-11 | 1 | -1/+1 |
| | |||||
* | Implement -D exec | Tavian Barnes | 2017-05-09 | 1 | -1/+6 |
| | |||||
* | Don't parse the mount table until it's needed | Tavian Barnes | 2017-04-29 | 1 | -8/+7 |
| | |||||
* | Release 1.01.0 | Tavian Barnes | 2017-04-24 | 1 | -1/+1 |
| | |||||
* | Implement -fstype | Tavian Barnes | 2017-04-23 | 1 | -2/+28 |
| | | | | Fixes #6! | ||||
* | Make -help output prettier and more complete | Tavian Barnes | 2017-04-16 | 1 | -37/+207 |
| | |||||
* | Implement -X | Tavian Barnes | 2017-04-16 | 1 | -0/+10 |
| | |||||
* | Implement -exec/-execdir ... + | Tavian Barnes | 2017-04-15 | 1 | -22/+13 |
| | |||||
* | Respect -nocolor for -fprint /dev/stdout | Tavian Barnes | 2017-03-16 | 1 | -2/+16 |
| | |||||
* | Give struct expr a CFILE* instead of just a FILE* | Tavian Barnes | 2017-03-16 | 1 | -11/+18 |
| | | | | This unifies the behaviour of -print and -fprint /dev/stdout. | ||||
* | Implement -ls and -fls | Tavian Barnes | 2017-03-11 | 1 | -11/+50 |
| | |||||
* | Make a printf()-style API for colored messages | Tavian Barnes | 2017-03-11 | 1 | -104/+81 |
| | |||||
* | Allow short-circuiting optimizations with non-pure operands | Tavian Barnes | 2017-02-11 | 1 | -14/+38 |
| | |||||
* | parse: Factor out all "looks like icmp" checks | Tavian Barnes | 2017-02-09 | 1 | -11/+16 |
| | |||||
* | Add support for -x?type with multiple types | Tavian Barnes | 2017-02-08 | 1 | -34/+59 |
| | | | | This functionality is already part of GNU findutils git. | ||||
* | Bail out if parse_root() fails | Tavian Barnes | 2017-02-07 | 1 | -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() calls | Tavian Barnes | 2017-02-07 | 1 | -14/+18 |
| | |||||
* | Implement -printf/-fprintf | Tavian Barnes | 2017-02-05 | 1 | -4/+68 |
| | | | | | Based on a patch by Fangrui Song <i@maskray.me>. Closes #16. | ||||
* | Implement -nouser and -nogroup | Tavian Barnes | 2017-02-04 | 1 | -0/+16 |
| | |||||
* | Add some text to the -help output | Tavian Barnes | 2016-12-20 | 1 | -1/+27 |
| | |||||
* | Implement -mnewer | Tavian Barnes | 2016-12-20 | 1 | -0/+1 |
| | |||||
* | Add tera and peta suffices for -size | Tavian Barnes | 2016-12-20 | 1 | -1/+7 |
| | |||||
* | Implement -sparse from FreeBSD find | Tavian Barnes | 2016-12-20 | 1 | -0/+8 |
| | |||||
* | Support -[gu]id NAME like BSD find | Tavian Barnes | 2016-12-20 | 1 | -24/+10 |
| | |||||
* | Don't check errno after get{gr,pw}nam() | Tavian Barnes | 2016-12-20 | 1 | -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 N | Tavian Barnes | 2016-12-18 | 1 | -1/+18 |
| | |||||
* | Add support for -x (same as -mount/-xdev, from BSD) | Tavian Barnes | 2016-12-18 | 1 | -0/+1 |
| | |||||
* | Implement -regex, -iregex, and -regextype/-E | Tavian Barnes | 2016-12-18 | 1 | -2/+114 |
| | |||||
* | Move portability code into util.h | Tavian Barnes | 2016-12-04 | 1 | -0/+1 |
| |