summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* bftw: Plug a leak if dirqueue_push() failsTavian Barnes2017-02-061-16/+28
| | | | | | | | | | If bftw_add() succeeds but dirqueue_push() fails, we need to clean up the just-added dircache_entry. Otherwise it will leak, and we'll also fail the cache->size == 0 assertion. Fix it by extracting the dircache-related parts of bftw_pop() into a new helper function bftw_gc(), and call it from bftw_pop() as well as the bftw_push() failure path.
* Fix a memory leak parsing -printfTavian Barnes2017-02-063-1/+9
|
* tests.sh: Set the umask before creating the test treesTavian Barnes2017-02-061-0/+1
|
* Make -quit happen immediately, not at the end of the current expressionTavian Barnes2017-02-054-4/+43
|
* bftw: Compute nameoff correctly for the root in BFTW_DEPTH modeTavian Barnes2017-02-053-2/+11
|
* Implement -printf/-fprintfTavian Barnes2017-02-0517-46/+1087
| | | | | Based on a patch by Fangrui Song <i@maskray.me>. Closes #16.
* Implement -nouser and -nogroupTavian Barnes2017-02-046-1/+62
|
* Don't trust st_size when reading symlinksTavian Barnes2017-01-313-12/+44
| | | | | Linux /proc, for example, reports a st_size of 0 for everything. It's nice to be able to use -lname on them anyway.
* Simplify exec_chdir()Tavian Barnes2017-01-141-16/+10
| | | | | | The previous code recomputed the name offset for no reason, and had an embarrassing typo that was hypothetically a bug (`} if` instead of `} else if`).
* Don't set _POSIX_C_SOURCETavian Barnes2017-01-061-5/+4
| | | | | | The BSD behaviour is to hide all BSD extensions if standard-conformance feature test macros are present. We don't want strict POSIX, we want all available extensions, so ask for that.
* tests: Add a test for -inumTavian Barnes2017-01-032-1/+9
|
* tests: Add tests for -quitTavian Barnes2017-01-025-1/+27
|
* eval: Check that O_DIRECTORY is defined before using itTavian Barnes2017-01-021-1/+5
|
* travis: Do 32-bit builds tooTavian Barnes2016-12-211-2/+13
|
* Set _FILE_OFFSET_BITS to 64Tavian Barnes2016-12-213-1/+8
| | | | | With the new support for -size n[TP], this is needed to avoid overflow on 32-bit platforms.
* Bump the version to 0.880.88Tavian Barnes2016-12-203-2/+19
|
* Add some text to the -help outputTavian Barnes2016-12-201-1/+27
|
* Implement -mnewerTavian Barnes2016-12-204-1/+20
|
* Add tera and peta suffices for -sizeTavian Barnes2016-12-203-3/+15
|
* Implement -sparse from FreeBSD findTavian Barnes2016-12-203-0/+22
|
* Support -[gu]id NAME like BSD findTavian Barnes2016-12-204-25/+59
|
* Don't check errno after get{gr,pw}nam()Tavian Barnes2016-12-201-24/+6
| | | | | Turns out it doesn't always keep errno 0, even if the only problem is a failed lookup. This was observed on a machine with Kerberos auth.
* Implement BSD find's -depth NTavian Barnes2016-12-1810-2/+95
|
* tests: Allow limiting the testsuite to POSIX, BSD, GNU, and bfs-specific ↵Tavian Barnes2016-12-187-11/+188
| | | | features
* tests.sh: Let the bfs binary be specified on the command lineTavian Barnes2016-12-181-21/+35
|
* Add support for -x (same as -mount/-xdev, from BSD)Tavian Barnes2016-12-181-0/+1
|
* Implement -regex, -iregex, and -regextype/-ETavian Barnes2016-12-1813-8/+218
|
* bftw: Clean up the dirqueue implementation a bitTavian Barnes2016-12-171-38/+34
|
* Fix the build on macOSTavian Barnes2016-12-171-0/+1
| | | | | macOS hides st_[acm]timespec if _POSIX_C_SOURCE is defined, unless _DARWIN_C_SOURCE is too.
* Fix the build on OpenIndianaTavian Barnes2016-12-162-1/+19
|
* Add a .travis.ymlTavian Barnes2016-12-082-0/+19
|
* tests: Fix failure when /tmp is a symlink.Tavian Barnes2016-12-081-1/+4
|
* tests: Don't use install -DTavian Barnes2016-12-081-7/+14
| | | | -D is a GNU-ism that doesn't work on BSD or macOS.
* tests: Don't check -size for directoriesTavian Barnes2016-12-055-29/+6
|
* tests: Don't check -links for directoriesTavian Barnes2016-12-054-12/+3
|
* Move portability code into util.hTavian Barnes2016-12-046-21/+51
|
* Release 0.84.10.84.1Tavian Barnes2016-11-243-2/+19
|
* Update some copyright dates.Tavian Barnes2016-11-246-6/+6
|
* Allow // to be different from /Tavian Barnes2016-11-244-10/+8
| | | | | | 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.
* bftw: Infer the flags in ftwbuf_stat()Tavian Barnes2016-11-231-5/+5
|
* tests: Make sure the temporary directory is owned by the current user/groupTavian Barnes2016-11-221-0/+1
| | | | | BSDs apparently prefer to create new files/directories with the same group as the parent directory, rather than the current primary group.
* tests: Mkae LC_ALL=C apply to the whole pipeline when sorting.Tavian Barnes2016-11-224-40/+43
|
* Don't pass AT_SYMLINK_NOFOLLOW to faccessat()Tavian Barnes2016-11-221-1/+1
| | | | It's an invalid flag for that call, and FreeBSD actually complains.
* bftw: Make a defensive copy of the ftwbufTavian Barnes2016-11-211-1/+4
| | | | | The callback may modify the ftwbuf, but we check it after the callback (for typeflag and statbuf). Have them mutate a copy instead.
* bftw: Always initialize dircache_entry::{dev,ino}Tavian Barnes2016-11-211-6/+7
| | | | | If stat() fails, they won't get filled in otherwise. Then cycle detection would have read uninitialized values.
* bftw: Make bftw_flags more similar to fts() options.Tavian Barnes2016-11-214-25/+30
|
* Support -perm +MODE for symbolic modes.Tavian Barnes2016-11-213-5/+1
| | | | Only things like -perm +777 are disallowed by GNU find.
* Fix -execdir for /Tavian Barnes2016-11-215-6/+30
|
* Fix -execdir for root paths with no slashes.Tavian Barnes2016-11-212-2/+6
|
* tests: Don't rely on the system 'find' for the expected output.Tavian Barnes2016-11-2188-142/+1011
|