summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use "error:" prefix consistentlyTavian Barnes2017-10-221-4/+4
|
* cmdline: Declare functions in a more natural orderTavian Barnes2017-10-211-7/+7
|
* 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.