summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* tests: Add a test for -printf %u/%g with a low ulimitTavian Barnes2020-03-011-0/+7
|
* passwd: Cache the user/group tablesTavian Barnes2020-02-298-35/+471
| | | | | | | | | | | | | | | | | | | | | | This is a significant optimization for conditions that need these tables: Benchmark #1: ./bfs ~/code/linux -nouser >/dev/null Time (mean ± σ): 232.0 ms ± 2.5 ms [User: 44.3 ms, System: 185.0 ms] Range (min … max): 228.7 ms … 238.7 ms 12 runs Benchmark #2: ./bfs-1.6 ~/code/linux -nouser >/dev/null Time (mean ± σ): 1.050 s ± 0.012 s [User: 544.2 ms, System: 500.0 ms] Range (min … max): 1.025 s … 1.063 s 10 runs Benchmark #3: find ~/code/linux -nouser >/dev/null Time (mean ± σ): 1.040 s ± 0.012 s [User: 533.6 ms, System: 500.6 ms] Range (min … max): 1.017 s … 1.054 s 10 runs Summary './bfs ~/code/linux -nouser >/dev/null' ran 4.48 ± 0.07 times faster than 'find ~/code/linux -nouser >/dev/null' 4.52 ± 0.07 times faster than './bfs-1.6 ~/code/linux -nouser >/dev/null'
* parse: Give -ls and -fls an ephemeral FD for getpwuid()/getgrgid()Tavian Barnes2020-02-291-0/+2
| | | | | | Similar to 9009456c, those functions may open /etc/{passwd,group}, so they need an FD available. Right now, -ls on large trees eventually starts printing numeric IDs instead of usernames/group names.
* Release 1.61.6Tavian Barnes2020-02-253-2/+11
|
* parse: Don't return success for invalid parse_int() calls with -DNDEBUGTavian Barnes2020-02-251-2/+2
|
* eval: Irregular files aren't emptyTavian Barnes2020-02-143-2/+20
| | | | | GNU find's -empty returns false for devices, sockets, etc., even though their st_size is 0. Match that behaviour.
* time: Implement xtimegm() without mktime()Tavian Barnes2020-02-131-32/+99
| | | | Using setenv("TZ") is ugly and adds unnecessary failure paths.
* time: Split out time-related functions from utilTavian Barnes2020-02-139-278/+351
|
* parse: Handle 1969-12-31T23:59:59ZTavian Barnes2020-02-135-19/+66
| | | | | mktime() returns -1 on error, but also for one second before the epoch. Compare the input against localtime(-1) to distinguish those cases.
* Implement -{a,B,c,m,}sinceTavian Barnes2020-02-125-20/+111
|
* parse: Set tm_isdst to -1Tavian Barnes2020-02-121-1/+3
| | | | | This is required by POSIX to ensure the mktime() determines itself whether DST is in effect.
* parse: Work around missing `timezone` on FreeBSDTavian Barnes2020-02-121-0/+5
| | | | | FreeBSD has a function timezone() that conflicts with the global variable, despite that being specified by POSIX. Use tm_gmtoff instead.
* Implement explicit reference times (-newerXt)Tavian Barnes2020-02-115-3/+261
|
* parse: Add a missing NULL check for trie_insert_mem()Tavian Barnes2020-01-221-0/+5
|
* README: Add FreeBSD install instructionsTavian Barnes2020-01-211-0/+3
|
* tests: Make test_xattr a sudo test in exactly the right casesTavian Barnes2020-01-141-11/+14
| | | | This was broken on GNU Hurd, for example.
* Release 1.5.21.5.2Tavian Barnes2020-01-095-6/+18
|
* fsade: Support checking for xattrs (extattrs) on FreeBSDTavian Barnes2020-01-084-26/+50
|
* tests: Fix setting ACLs on LinuxTavian Barnes2020-01-081-14/+15
|
* Update copyright datesTavian Barnes2020-01-075-5/+5
|
* util: Support ports and whiteouts in format_mode()Tavian Barnes2020-01-071-3/+13
|
* eval: For -ls, print a + if a file has ACLsTavian Barnes2020-01-071-1/+2
|
* fsade: Support NFSv4 ACLs on FreeBSDTavian Barnes2020-01-072-37/+58
|
* fsade: Don't treat EINVAL as an errorTavian Barnes2020-01-061-0/+6
| | | | | | | | | acl_get_file() will return EINVAL on some platforms (e.g. FreeBSD, macOS) when the requested ACL type is not supported for that file. This fixes `bfs -acl` spewing "Invalid argument." for every file on FreeBSD with ZFS where ACLs are NFSv4 and thus the POSIX.1e ones are not supported.
* tests.sh: Bail out if setup failsTavian Barnes2019-11-011-0/+2
|
* bftw: Avoid shadowing a variableTavian Barnes2019-11-011-5/+2
|
* mtab: Use struct statvfs on NetBSDTavian Barnes2019-09-241-2/+8
| | | | Fixes #53.
* tests: Fix some commentsTavian Barnes2019-09-191-3/+3
|
* Release 1.5.11.5.1Tavian Barnes2019-09-143-2/+13
|
* Update documentation for the -mount/-xdev revertTavian Barnes2019-09-142-2/+5
|
* tests: Don't redirect to /dev/null when unnecessaryTavian Barnes2019-09-131-4/+4
|
* README: Add a version badge, remove the LOC badgeTavian Barnes2019-09-131-1/+1
|
* Makefile: Test different search strategies in parallelTavian Barnes2019-09-131-4/+4
|
* Makefile: Include -fsanitize=* in the sanitizer flag variablesTavian Barnes2019-09-131-3/+7
|
* main: Add darray.[ch] to the indexTavian Barnes2019-09-121-0/+1
|
* tests.sh: Use an array for the enabled testsTavian Barnes2019-09-111-15/+11
| | | | | The separate $run_test_* variables were sensitive to the environment that ran the script.
* parse: Don't treat -mount differently from -xdev yetTavian Barnes2019-09-113-1/+12
| | | | | | | | The new POSIX version with -mount isn't out yet, so there's no point in conforming to a non-existent document while breaking compatibility with GNU find, which hasn't changed yet either. But a warning is added for the future incompatibility. This patch can be reverted to re-enable the feature.
* tests: Add -mount/-xdev tests with -LTavian Barnes2019-09-113-0/+39
|
* tests: Test more cases in test_color_lsTavian Barnes2019-09-052-5/+13
|
* color: Actually resolve symlinks against their parent directoryTavian Barnes2019-09-042-1/+2
|
* color: Fix unsigned < 0 comparisonTavian Barnes2019-09-031-1/+1
|
* color: Fix directory coloring when resolving symlinks at the rootTavian Barnes2019-09-033-27/+73
|
* dstring: New dstrndup() functionTavian Barnes2019-09-032-1/+19
|
* darray: Clarify some documentation/commentsTavian Barnes2019-09-022-15/+26
|
* stat: Check that AT_STATX_DONT_SYNC exists before using itTavian Barnes2019-08-301-0/+3
|
* mtab: Rename maybe_mount to might_be_mountTavian Barnes2019-08-293-3/+3
|
* mtab: Lazy-load the device IDs from the mount tableTavian Barnes2019-08-291-27/+66
| | | | Fixes #50.
* mtab: Use BFS_STAT_NOSYNCTavian Barnes2019-08-291-69/+41
| | | | | And factor out the stat() call into bfs_mtab_add(). One step toward improving #50, at least on Linux.
* stat: New BFS_STAT_NOSYNC flagTavian Barnes2019-08-292-0/+5
|
* darray: New dynamic array libraryTavian Barnes2019-08-296-19/+210
|