Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | parse: Keep track of what files are already open | Tavian Barnes | 2017-10-21 | 6 | -50/+185 | |
| | | | | Fixes #22 | |||||
* | Report errors that occur when closing files | Tavian Barnes | 2017-10-21 | 6 | -11/+60 | |
| | | | | Otherwise we miss write errors that occur when flushing the cache. | |||||
* | Add a man page | Tavian Barnes | 2017-10-15 | 3 | -15/+686 | |
| | | | | Fixes #31 | |||||
* | Don't use install -D | Tavian Barnes | 2017-10-13 | 1 | -3/+6 | |
| | | | | | | -D isn't portable to non-GNU Unices, so just use mkdir manually. Fixes #28 | |||||
* | Release 1.1.31.1.3 | Tavian Barnes | 2017-10-04 | 3 | -2/+11 | |
| | ||||||
* | tests: -quit is not POSIX | Tavian Barnes | 2017-09-20 | 1 | -1/+1 | |
| | ||||||
* | util: Wrap faccessat() to fix some portability issues | Tavian Barnes | 2017-09-20 | 4 | -2/+21 | |
| | ||||||
* | opt: More -O4 tweaks | Tavian Barnes | 2017-09-17 | 1 | -24/+15 | |
| | ||||||
* | opt: Use the standard LLONG_MAX instead of the nonstandard LONG_LONG_MAX | Tavian Barnes | 2017-09-17 | 1 | -1/+1 | |
| | ||||||
* | opt: Fix -depth with arguments bigger than INT_MAX | Tavian Barnes | 2017-09-17 | 3 | -4/+32 | |
| | ||||||
* | opt: Move some aggressive optimizations back to -O4 | Tavian Barnes | 2017-09-17 | 2 | -18/+19 | |
| | ||||||
* | parse: Document the bfs meaning of -O in -help | Tavian Barnes | 2017-09-17 | 1 | -2/+15 | |
| | ||||||
* | opt: Have data flow analysis respect always_{true,false} | Tavian Barnes | 2017-09-17 | 1 | -6/+21 | |
| | ||||||
* | tests: Add tests that trigger some optimizations | Tavian Barnes | 2017-09-16 | 9 | -0/+87 | |
| | ||||||
* | opt: Implement some data flow optimizations | Tavian Barnes | 2017-09-16 | 1 | -108/+322 | |
| | ||||||
* | opt: Separate optimization from parsing | Tavian Barnes | 2017-09-16 | 11 | -665/+859 | |
| | ||||||
* | Release 1.1.21.1.2 | Tavian Barnes | 2017-09-10 | 3 | -2/+14 | |
| | ||||||
* | eval: Make sure nopenfd >= 2 for bftw() | Tavian Barnes | 2017-09-09 | 1 | -6/+5 | |
| | ||||||
* | tests: Silence error messages while creating deep/ | Tavian Barnes | 2017-09-09 | 1 | -1/+1 | |
| | | | | | Some platforms will print errors like "cannot access parent directories: Result too large" | |||||
* | Try /proc/self/fd before /dev/fd | Tavian Barnes | 2017-09-09 | 2 | -5/+14 | |
| | | | | On Solaris, /proc/self/fd is dynamic while /dev/fd is static. | |||||
* | mtab: Add support for Solaris | Tavian Barnes | 2017-09-09 | 1 | -0/+43 | |
| | ||||||
* | Revert "tests: Test hardlinks to symlinks" | Tavian Barnes | 2017-09-07 | 13 | -20/+0 | |
| | | | | | | Apparently macOS doesn't support ln -P. This reverts commit 80eec18020f531abbdb2abbb919ab6c6fa34107c. | |||||
* | parse: Don't reorder or remove tests with potential side effects | Tavian Barnes | 2017-09-06 | 3 | -3/+29 | |
| | | | | | | -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. | |||||
* | util: Factor out checks for nonexistent paths/broken links | Tavian Barnes | 2017-09-06 | 3 | -3/+12 | |
| | ||||||
* | parse: Factor out common initialization code for -print and friends | Tavian Barnes | 2017-09-06 | 1 | -35/+30 | |
| | ||||||
* | tests: Test hardlinks to symlinks | Tavian Barnes | 2017-09-06 | 13 | -0/+20 | |
| | ||||||
* | tests: Make test_deep pass with other find implementations | Tavian Barnes | 2017-09-04 | 3 | -22/+37 | |
| | | | | | And move test_deep_strict to the bfs-specific tests, since it's not likely to ever pass for other implementations. | |||||
* | Implement -D search | Tavian Barnes | 2017-09-02 | 3 | -6/+111 | |
| | ||||||
* | tests: Use human-readable filenames in links/ | Tavian Barnes | 2017-09-02 | 33 | -142/+128 | |
| | ||||||
* | mtab: Use __has_include() to check for <mntent.h> | Tavian Barnes | 2017-09-02 | 1 | -4/+15 | |
| | | | | | This fixes the build against musl, as long as you have a new enough compiler for __has_include. | |||||
* | Implement cost-based optimization | Tavian Barnes | 2017-08-27 | 5 | -61/+254 | |
| | ||||||
* | printf: Save some lines in time specifier parsing | Tavian Barnes | 2017-08-27 | 1 | -36/+4 | |
| | ||||||
* | Avoid multiple extra stat()s of broken symlinks for -xtype | Tavian Barnes | 2017-08-22 | 5 | -13/+18 | |
| | ||||||
* | tests: Remove unnecessary sort-args.sh invocations | Tavian Barnes | 2017-08-16 | 3 | -40/+40 | |
| | ||||||
* | tests: Add some syntax highlighting to --verbose | Tavian Barnes | 2017-08-12 | 1 | -3/+22 | |
| | ||||||
* | Unify broken symlink handling | Tavian Barnes | 2017-08-12 | 11 | -33/+74 | |
| | | | | | | | | | 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. | |||||
* | tests: Add a test for -exec ... {} + with a failing command | Tavian Barnes | 2017-08-12 | 2 | -0/+27 | |
| | ||||||
* | Update README.md | Tavian Barnes | 2017-08-10 | 1 | -4/+16 | |
| | ||||||
* | bftw: Assert that the queue is empty when freeing it | Tavian Barnes | 2017-08-10 | 1 | -0/+1 | |
| | ||||||
* | parse: Don't allow negative optimization levels | Tavian Barnes | 2017-08-10 | 1 | -1/+1 | |
| | ||||||
* | Release 1.1.11.1.1 | Tavian Barnes | 2017-08-10 | 3 | -2/+11 | |
| | ||||||
* | exec: Fix more corner cases with -ok ... + | Tavian Barnes | 2017-07-29 | 4 | -9/+58 | |
| | | | | -ok should look for a ; even if it sees {} +, according to POSIX. | |||||
* | tests.sh: Add a --verbose mode | Tavian Barnes | 2017-07-29 | 1 | -22/+58 | |
| | ||||||
* | exec: Don't allow anything between {} and + | Tavian Barnes | 2017-07-29 | 7 | -117/+99 | |
| | | | | | | | | | POSIX explicitly forbids this extension: > Only a <plus-sign> that immediately follows an argument containing > only the two characters "{}" shall punctuate the end of the primary > expression. Other uses of the <plus-sign> shall not be treated as > special. | |||||
* | util: Define O_DIRECTORY to 0 if it's not already defined | Tavian Barnes | 2017-07-29 | 4 | -15/+7 | |
| | ||||||
* | Re-license under the BSD Zero Clause License | Tavian Barnes | 2017-07-27 | 23 | -234/+343 | |
| | ||||||
* | Release 1.11.1 | Tavian Barnes | 2017-07-22 | 3 | -2/+20 | |
| | ||||||
* | Represent never returning as always_true && always_false | Tavian Barnes | 2017-07-21 | 3 | -34/+42 | |
| | | | | | | | | | | 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 | 4 | -2/+14 | |
| | | | | | | | 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 | 5 | -0/+81 | |
| | | | | Also from NetBSD. |