summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* parse: Keep track of what files are already openTavian Barnes2017-10-216-50/+185
| | | | Fixes #22
* Report errors that occur when closing filesTavian Barnes2017-10-216-11/+60
| | | | Otherwise we miss write errors that occur when flushing the cache.
* Add a man pageTavian Barnes2017-10-153-15/+686
| | | | Fixes #31
* Don't use install -DTavian Barnes2017-10-131-3/+6
| | | | | | -D isn't portable to non-GNU Unices, so just use mkdir manually. Fixes #28
* Release 1.1.31.1.3Tavian Barnes2017-10-043-2/+11
|
* tests: -quit is not POSIXTavian Barnes2017-09-201-1/+1
|
* util: Wrap faccessat() to fix some portability issuesTavian Barnes2017-09-204-2/+21
|
* opt: More -O4 tweaksTavian Barnes2017-09-171-24/+15
|
* opt: Use the standard LLONG_MAX instead of the nonstandard LONG_LONG_MAXTavian Barnes2017-09-171-1/+1
|
* opt: Fix -depth with arguments bigger than INT_MAXTavian Barnes2017-09-173-4/+32
|
* opt: Move some aggressive optimizations back to -O4Tavian Barnes2017-09-172-18/+19
|
* parse: Document the bfs meaning of -O in -helpTavian Barnes2017-09-171-2/+15
|
* opt: Have data flow analysis respect always_{true,false}Tavian Barnes2017-09-171-6/+21
|
* tests: Add tests that trigger some optimizationsTavian Barnes2017-09-169-0/+87
|
* opt: Implement some data flow optimizationsTavian Barnes2017-09-161-108/+322
|
* opt: Separate optimization from parsingTavian Barnes2017-09-1611-665/+859
|
* Release 1.1.21.1.2Tavian Barnes2017-09-103-2/+14
|
* eval: Make sure nopenfd >= 2 for bftw()Tavian Barnes2017-09-091-6/+5
|
* tests: Silence error messages while creating deep/Tavian Barnes2017-09-091-1/+1
| | | | | Some platforms will print errors like "cannot access parent directories: Result too large"
* Try /proc/self/fd before /dev/fdTavian Barnes2017-09-092-5/+14
| | | | On Solaris, /proc/self/fd is dynamic while /dev/fd is static.
* mtab: Add support for SolarisTavian Barnes2017-09-091-0/+43
|
* Revert "tests: Test hardlinks to symlinks"Tavian Barnes2017-09-0713-20/+0
| | | | | | Apparently macOS doesn't support ln -P. This reverts commit 80eec18020f531abbdb2abbb919ab6c6fa34107c.
* parse: Don't reorder or remove tests with potential side effectsTavian Barnes2017-09-063-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 linksTavian Barnes2017-09-063-3/+12
|
* parse: Factor out common initialization code for -print and friendsTavian Barnes2017-09-061-35/+30
|
* tests: Test hardlinks to symlinksTavian Barnes2017-09-0613-0/+20
|
* tests: Make test_deep pass with other find implementationsTavian Barnes2017-09-043-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 searchTavian Barnes2017-09-023-6/+111
|
* tests: Use human-readable filenames in links/Tavian Barnes2017-09-0233-142/+128
|
* mtab: Use __has_include() to check for <mntent.h>Tavian Barnes2017-09-021-4/+15
| | | | | This fixes the build against musl, as long as you have a new enough compiler for __has_include.
* Implement cost-based optimizationTavian Barnes2017-08-275-61/+254
|
* printf: Save some lines in time specifier parsingTavian Barnes2017-08-271-36/+4
|
* Avoid multiple extra stat()s of broken symlinks for -xtypeTavian Barnes2017-08-225-13/+18
|
* tests: Remove unnecessary sort-args.sh invocationsTavian Barnes2017-08-163-40/+40
|
* tests: Add some syntax highlighting to --verboseTavian Barnes2017-08-121-3/+22
|
* Unify broken symlink handlingTavian Barnes2017-08-1211-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 commandTavian Barnes2017-08-122-0/+27
|
* Update README.mdTavian Barnes2017-08-101-4/+16
|
* bftw: Assert that the queue is empty when freeing itTavian Barnes2017-08-101-0/+1
|
* parse: Don't allow negative optimization levelsTavian Barnes2017-08-101-1/+1
|
* Release 1.1.11.1.1Tavian Barnes2017-08-103-2/+11
|
* exec: Fix more corner cases with -ok ... +Tavian Barnes2017-07-294-9/+58
| | | | -ok should look for a ; even if it sees {} +, according to POSIX.
* tests.sh: Add a --verbose modeTavian Barnes2017-07-291-22/+58
|
* exec: Don't allow anything between {} and +Tavian Barnes2017-07-297-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 definedTavian Barnes2017-07-294-15/+7
|
* Re-license under the BSD Zero Clause LicenseTavian Barnes2017-07-2723-234/+343
|
* Release 1.11.1Tavian Barnes2017-07-223-2/+20
|
* Represent never returning as always_true && always_falseTavian Barnes2017-07-213-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 bugsTavian Barnes2017-07-214-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 -printxTavian Barnes2017-07-215-0/+81
| | | | Also from NetBSD.