Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Implement -rm as an alias for -delete | Tavian Barnes | 2017-07-20 | 2 | -0/+2 | |
| | | | | From NetBSD. | |||||
* | Handle ENOTDIR the same as ENOENT | Tavian Barnes | 2017-07-09 | 7 | -0/+7 | |
| | | | | | | For a/b/c, ENOTDIR is returned instead of ENOENT if a or b are not directories. Handle this uniformly when detecting broken symlinks, readdir races, etc. | |||||
* | bftw: Fix ENAMETOOLONG handling when the root is closed | Tavian Barnes | 2017-07-08 | 2 | -8/+16 | |
| | | | | | The root has depth == 0, but we still need to include it in the components array. | |||||
* | bftw: Recover from ENAMETOOLONG | Tavian Barnes | 2017-07-08 | 1 | -0/+8 | |
| | | | | | | | | | | | | | | | | | | | | | | | | It is always possible to force a breadth-first traversal to encounter ENAMETOOLONG, regardless of the dircache eviction policy. As a concrete example, consider this directory structure: ./1/{NAME_MAX}/{NAME_MAX}/{NAME_MAX}/... (longer than {PATH_MAX}) ./2/{NAME_MAX}/{NAME_MAX}/{NAME_MAX}/... ./3/{NAME_MAX}/{NAME_MAX}/{NAME_MAX}/... ... (more than RLIMIT_NOFILE directories under .) Eventually, the next file to be processed will not have any parents in the cache, as the cache can only hold RLIMIT_NOFILE entries. Then the whole path must be traversed from ., which will exceed {PATH_MAX} bytes. Work around this by performing a component-by-component traversal manually when we see ENAMETOOLONG. This is required by POSIX: > The find utility shall be able to descend to arbitrary depths in a file > hierarchy and shall not fail due to path length limitations (unless a > path operand specified by the application exceeds {PATH_MAX} > requirements). | |||||
* | -perm: Handle permcopy (e.g. u=rw,g=u) correctly | Tavian Barnes | 2017-06-15 | 1 | -0/+1 | |
| | ||||||
* | tests: Fix test_printf_nul with non-GNU sort | Tavian Barnes | 2017-06-11 | 1 | -0/+0 | |
| | | | | | Other UNIX sort implementations seem to truncate at the nul bytes, so open-code it without the sort. | |||||
* | printf: Fix embedded nul bytes | Tavian Barnes | 2017-06-10 | 1 | -0/+0 | |
| | | | | Fixes #26. | |||||
* | Don't make -quit disable the implicit -print | Tavian Barnes | 2017-05-11 | 1 | -0/+1 | |
| | ||||||
* | Implement -fstype | Tavian Barnes | 2017-04-23 | 1 | -0/+19 | |
| | | | | Fixes #6! | |||||
* | Implement -X | Tavian Barnes | 2017-04-16 | 3 | -0/+25 | |
| | ||||||
* | tests: Add tests for bfs extensions to -exec ... + | Tavian Barnes | 2017-04-16 | 2 | -0/+12 | |
| | ||||||
* | Implement -exec/-execdir ... + | Tavian Barnes | 2017-04-15 | 3 | -0/+16 | |
| | ||||||
* | tests: Run everything in UTC | Tavian Barnes | 2017-03-11 | 1 | -3/+3 | |
| | ||||||
* | Add a test for colored output | Tavian Barnes | 2017-03-11 | 1 | -0/+10 | |
| | ||||||
* | Implement -printf %Ak, %Ck, and %Tk | Tavian Barnes | 2017-03-11 | 1 | -0/+3 | |
| | ||||||
* | Add some tests for the operators themselves | Tavian Barnes | 2017-02-11 | 8 | -0/+68 | |
| | ||||||
* | Add tests for bfs's flexible command line parsing | Tavian Barnes | 2017-02-10 | 5 | -0/+10 | |
| | ||||||
* | bftw: Make the nameoff of "///" point to "/" | Tavian Barnes | 2017-02-09 | 2 | -2/+2 | |
| | | | | This simplifies a few things such as -name handling for ///. | |||||
* | Give the test cases human-readable names | Tavian Barnes | 2017-02-09 | 137 | -0/+19 | |
| | ||||||
* | Don't close stdin for -ok or -okdir | Tavian Barnes | 2017-02-09 | 2 | -0/+38 | |
| | | | | Turns out it violates POSIX, even though GNU find does it. | |||||
* | Add support for -x?type with multiple types | Tavian Barnes | 2017-02-08 | 2 | -0/+15 | |
| | | | | This functionality is already part of GNU findutils git. | |||||
* | Fix a memory leak parsing -printf | Tavian Barnes | 2017-02-06 | 1 | -0/+1 | |
| | ||||||
* | Make -quit happen immediately, not at the end of the current expression | Tavian Barnes | 2017-02-05 | 2 | -0/+1 | |
| | ||||||
* | bftw: Compute nameoff correctly for the root in BFTW_DEPTH mode | Tavian Barnes | 2017-02-05 | 1 | -0/+1 | |
| | ||||||
* | Implement -printf/-fprintf | Tavian Barnes | 2017-02-05 | 8 | -0/+89 | |
| | | | | | Based on a patch by Fangrui Song <i@maskray.me>. Closes #16. | |||||
* | Implement -nouser and -nogroup | Tavian Barnes | 2017-02-04 | 2 | -0/+0 | |
| | ||||||
* | tests: Add a test for -inum | Tavian Barnes | 2017-01-03 | 1 | -0/+1 | |
| | ||||||
* | tests: Add tests for -quit | Tavian Barnes | 2017-01-02 | 4 | -0/+6 | |
| | ||||||
* | Set _FILE_OFFSET_BITS to 64 | Tavian Barnes | 2016-12-21 | 1 | -0/+1 | |
| | | | | | With the new support for -size n[TP], this is needed to avoid overflow on 32-bit platforms. | |||||
* | Implement -mnewer | Tavian Barnes | 2016-12-20 | 2 | -0/+8 | |
| | ||||||
* | Support -[gu]id NAME like BSD find | Tavian Barnes | 2016-12-20 | 2 | -0/+38 | |
| | ||||||
* | Implement BSD find's -depth N | Tavian Barnes | 2016-12-18 | 6 | -0/+38 | |
| | ||||||
* | tests: Allow limiting the testsuite to POSIX, BSD, GNU, and bfs-specific ↵ | Tavian Barnes | 2016-12-18 | 6 | -0/+60 | |
| | | | | features | |||||
* | Implement -regex, -iregex, and -regextype/-E | Tavian Barnes | 2016-12-18 | 6 | -0/+10 | |
| | ||||||
* | tests: Don't check -size for directories | Tavian Barnes | 2016-12-05 | 4 | -26/+2 | |
| | ||||||
* | tests: Don't check -links for directories | Tavian Barnes | 2016-12-05 | 3 | -9/+0 | |
| | ||||||
* | Allow // to be different from / | Tavian Barnes | 2016-11-24 | 2 | -2/+2 | |
| | | | | | | POSIX says that // may be resolved in an implementation-defined way (generally, to access network shares). So don't use it in tests, and don't canonicalize it to '/' in -execdir. | |||||
* | tests: Mkae LC_ALL=C apply to the whole pipeline when sorting. | Tavian Barnes | 2016-11-22 | 3 | -39/+39 | |
| | ||||||
* | Support -perm +MODE for symbolic modes. | Tavian Barnes | 2016-11-21 | 1 | -0/+0 | |
| | | | | Only things like -perm +777 are disallowed by GNU find. | |||||
* | Fix -execdir for / | Tavian Barnes | 2016-11-21 | 3 | -0/+3 | |
| | ||||||
* | Fix -execdir for root paths with no slashes. | Tavian Barnes | 2016-11-21 | 1 | -1/+1 | |
| | ||||||
* | tests: Don't rely on the system 'find' for the expected output. | Tavian Barnes | 2016-11-21 | 87 | -0/+800 | |
| | ||||||
* | Implement -ignore_readdir_race. | Tavian Barnes | 2016-10-24 | 1 | -0/+10 | |