Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | bftw: Add a caching stat() API to struct BFTW | Tavian Barnes | 2019-05-04 | 1 | -0/+20 |
| | |||||
* | tests: Add some tests that require sudo | Tavian Barnes | 2019-04-24 | 3 | -0/+9 |
| | |||||
* | parse: Allow things like -uid ++10 | Tavian Barnes | 2019-04-21 | 4 | -0/+76 |
| | | | | GNU find does too. | ||||
* | tests: Don't test symlink permissions | Tavian Barnes | 2019-04-20 | 1 | -31/+31 |
| | | | | They're different between platforms. | ||||
* | tests: Add a test with -printf %H and multiple roots | Tavian Barnes | 2019-04-20 | 1 | -0/+31 |
| | | | | To make sure we're keeping track of different root paths correctly | ||||
* | tests: Fix color NUL byte test on platforms where sort expects text | Tavian Barnes | 2019-03-28 | 2 | -0/+0 |
| | |||||
* | color: Implement ln=target | Tavian Barnes | 2019-03-28 | 1 | -0/+20 |
| | | | | | With ln=target in LS_COLORS, links should be colored according to their target's stat() info, not their own. | ||||
* | color: Implement escape sequence parsing | Tavian Barnes | 2019-03-28 | 2 | -0/+20 |
| | | | | | GNU ls allows custom escape sequences inside color values, including control characters and embedded NULs. | ||||
* | opt: Optimize redundant comma expressions | Tavian Barnes | 2019-03-21 | 2 | -0/+2 |
| | |||||
* | opt: Replace -a -false/-o -true with -not when possible | Tavian Barnes | 2019-03-20 | 1 | -0/+1 |
| | |||||
* | tests: Add utilities for comparing colors to ls | Tavian Barnes | 2019-03-19 | 2 | -0/+92 |
| | |||||
* | tests: Use archive extensions for color tests | Tavian Barnes | 2019-03-17 | 25 | -4/+79 |
| | |||||
* | color: Match the behaviour of GNU ls more closely | Tavian Barnes | 2019-03-17 | 25 | -25/+212 |
| | |||||
* | tests: Add a test for extension overrides | Tavian Barnes | 2019-03-07 | 2 | -0/+34 |
| | |||||
* | eval: Fix -unique with -depth | Tavian Barnes | 2019-03-07 | 2 | -0/+22 |
| | |||||
* | Implement -unique | Tavian Barnes | 2019-03-01 | 3 | -0/+6 |
| | | | | Closes #48 | ||||
* | tests: Add a test for symlink coloring to a device | Tavian Barnes | 2019-02-18 | 12 | -0/+28 |
| | |||||
* | tests: Add tests for -no{group,user} under fd pressure | Tavian Barnes | 2019-02-07 | 2 | -0/+0 |
| | |||||
* | tests: New utility for making and testing socket files | Tavian Barnes | 2019-02-01 | 12 | -0/+142 |
| | |||||
* | main: Fix closed standard stream handling | Tavian Barnes | 2019-02-01 | 3 | -0/+19 |
| | | | | | bfs >&- should complain about a missing file descriptor, rather than silently succeeding. | ||||
* | color: Fix more incompatibilities with GNU ls | Tavian Barnes | 2019-01-02 | 12 | -12/+165 |
| | |||||
* | tests: Fix test_exit() to not depend on breadth-first ordering | Tavian Barnes | 2018-12-28 | 1 | -15/+0 |
| | |||||
* | color: Don't print the leading directory color if there's no leading directory | Tavian Barnes | 2018-12-17 | 1 | -1/+1 |
| | |||||
* | tests: Don't assume find continues after filesystem loops | Tavian Barnes | 2018-11-14 | 18 | -24/+55 |
| | | | | | | | | | | | POSIX says > When it detects an infinite loop, find shall write a diagnostic > message to standard error and shall either recover its position in the > hierarchy or terminate. So make the 'links' folder not have any loops, and add a new 'loops' folder for testing the GNU/bfs behaviour. | ||||
* | tests: Add testcases for -prune | Tavian Barnes | 2018-11-01 | 3 | -0/+29 |
| | |||||
* | spawn: New posix_spawn()-like API for exec | Tavian Barnes | 2018-09-18 | 1 | -16/+0 |
| | |||||
* | opt: Re-run optimizations after reordering expressions | Tavian Barnes | 2018-08-18 | 2 | -0/+24 |
| | | | | | This catches new data flow inferences that can be made after swapping the children of an expression. | ||||
* | tests: Add tests for mode 000 | Tavian Barnes | 2018-07-20 | 4 | -0/+25 |
| | |||||
* | printf: Output ? for errors in %Y | Tavian Barnes | 2018-07-20 | 1 | -0/+3 |
| | |||||
* | eval: Fix -delete when following symlinks. | Tavian Barnes | 2018-07-12 | 1 | -0/+2 |
| | | | | | Same bug as https://savannah.gnu.org/bugs/?46305. Please don't ever do this though. | ||||
* | tests: Add some more tests for broken symlinks | Tavian Barnes | 2018-07-07 | 8 | -0/+10 |
| | |||||
* | tests: Relax test_depth_error | Tavian Barnes | 2018-06-24 | 1 | -2/+0 |
| | | | | | Whether bfs can return children of a directory without search permission depends on whether d_type is filled in, which can't be guaranteed. | ||||
* | tests: New test for -depth in the presence of read errors | Tavian Barnes | 2018-06-23 | 1 | -0/+4 |
| | |||||
* | printf: Add %w and %Wk for file birth times | Tavian Barnes | 2018-01-20 | 1 | -0/+0 |
| | | | | | %w and %W were chosen to match the format specifiers for file birth times from stat(1) | ||||
* | exec: Recover from E2BIG | Tavian Barnes | 2017-11-12 | 1 | -0/+16 |
| | |||||
* | parse: Support -perm +7777, for compatibility with BSD and old GNU find | Tavian Barnes | 2017-11-05 | 2 | -0/+12 |
| | |||||
* | parse: Keep track of what files are already open | Tavian Barnes | 2017-10-21 | 1 | -0/+57 |
| | | | | Fixes #22 | ||||
* | opt: Fix -depth with arguments bigger than INT_MAX | Tavian Barnes | 2017-09-17 | 1 | -0/+19 |
| | |||||
* | tests: Add tests that trigger some optimizations | Tavian Barnes | 2017-09-16 | 8 | -0/+47 |
| | |||||
* | Revert "tests: Test hardlinks to symlinks" | Tavian Barnes | 2017-09-07 | 12 | -18/+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 | 1 | -0/+0 |
| | | | | | | -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. | ||||
* | tests: Test hardlinks to symlinks | Tavian Barnes | 2017-09-06 | 12 | -0/+18 |
| | |||||
* | tests: Make test_deep pass with other find implementations | Tavian Barnes | 2017-09-04 | 2 | -16/+32 |
| | | | | | And move test_deep_strict to the bfs-specific tests, since it's not likely to ever pass for other implementations. | ||||
* | tests: Use human-readable filenames in links/ | Tavian Barnes | 2017-09-02 | 32 | -116/+101 |
| | |||||
* | tests: Remove unnecessary sort-args.sh invocations | Tavian Barnes | 2017-08-16 | 2 | -38/+38 |
| | |||||
* | Unify broken symlink handling | Tavian Barnes | 2017-08-12 | 5 | -0/+6 |
| | | | | | | | | | 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 | 1 | -0/+19 |
| | |||||
* | exec: Fix more corner cases with -ok ... + | Tavian Barnes | 2017-07-29 | 2 | -0/+38 |
| | | | | -ok should look for a ; even if it sees {} +, according to POSIX. | ||||
* | exec: Don't allow anything between {} and + | Tavian Barnes | 2017-07-29 | 4 | -12/+38 |
| | | | | | | | | | 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. | ||||
* | Fix a couple terrible optimizer bugs | Tavian Barnes | 2017-07-21 | 2 | -0/+0 |
| | | | | | | | 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. |