Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | printf: Output ? for errors in %Y | Tavian Barnes | 2018-07-20 | 3 | -5/+35 | |
| | ||||||
* | Release 1.2.31.2.3 | Tavian Barnes | 2018-07-15 | 3 | -2/+14 | |
| | ||||||
* | eval: Debug all stat() calls | Tavian Barnes | 2018-07-15 | 1 | -47/+56 | |
| | ||||||
* | eval: Share the statbuf across multiple -xtype's | Tavian Barnes | 2018-07-12 | 1 | -18/+31 | |
| | ||||||
* | eval: Get rid of duplicate statbuf field | Tavian Barnes | 2018-07-12 | 1 | -24/+22 | |
| | | | | | Also shorten eval_bfs_stat() to eval_stat(). Looks like this was leftover from an incomplete conversion a while ago. | |||||
* | eval: Fix -delete when following symlinks. | Tavian Barnes | 2018-07-12 | 3 | -2/+31 | |
| | | | | | Same bug as https://savannah.gnu.org/bugs/?46305. Please don't ever do this though. | |||||
* | stat: Support the glibc statx() wrapper | Tavian Barnes | 2018-07-11 | 1 | -6/+18 | |
| | | | | | | | | | glibc 2.28 will ship with a wrapper for the statx() system call. Currently the build is broken against it, because sys/stat.h suddenly declares all the same types that linux/stat.h does. Fix it by taking the sys/stat.h ones if they exist. Fixes #35 | |||||
* | exec: Add some debugging info about failed commands | Tavian Barnes | 2018-07-08 | 1 | -5/+19 | |
| | ||||||
* | tests: Add some more tests for broken symlinks | Tavian Barnes | 2018-07-07 | 9 | -0/+55 | |
| | ||||||
* | exec: Make ARG_MAX accounting a bit less restrictive with large pages | Tavian Barnes | 2018-07-07 | 1 | -3/+6 | |
| | | | | | | | | | | | | | | | | | | | For Linux-style accounting, we really only need to handle a single page of wasted space due to rounding. Subtracting two pages for extra headroom was reasonable on systems with 4K pages, but overkill on systems like ppc64le with 64K pages. Worse yet was the fact that Alpine Linux only gives us 128K for arguments. Instead, only subtract a single page, plus the POSIX-recommended 2048 bytes. Credit to Mike Sullivan for the initial patch and testing on Alpine ppc64le. Fixes: http://build.alpinelinux.org/buildlogs/build-edge-ppc64le/testing/bfs/bfs-1.2.2-r0.log Co-authored-by: Mike Sullivan <mksully22@gmail.com> | |||||
* | tests: Use -maxdepth 0 instead of | head -n1 | Tavian Barnes | 2018-07-07 | 1 | -1/+1 | |
| | | | | | | | This avoids the potential for "broken pipe" errors observed on some systems, e.g. http://build.alpinelinux.org/buildlogs/build-edge-s390x/testing/bfs/bfs-1.2.2-r0.log | |||||
* | parse: Add some missing failure messages | Tavian Barnes | 2018-07-06 | 1 | -0/+2 | |
| | ||||||
* | stat: Handle platforms that don't support AT_EMPTY_PATH for fstatat() | Tavian Barnes | 2018-07-02 | 1 | -3/+12 | |
| | | | | | | | | In particular, this caused -fprint to break on Hurd since AT_EMPTY_PATH is defined and works for some syscalls but not fstatat(). Should fix: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=hurd-i386&ver=1.2.2-1&stamp=1529920401&raw=0 | |||||
* | stat: Don't try to statx() on architectures without the syscall | Tavian Barnes | 2018-07-02 | 1 | -2/+2 | |
| | | | | | | | | | | Turns out that ia64 and sh4 define all the structures and constants, but don't actually support the statx() system call itself. So instead of testing for the constants, just test for the syscall number directly. Should fix: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=ia64&ver=1.2.2-1&stamp=1529917943&raw=0 https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=sh4&ver=1.2.2-1&stamp=1529917893&raw=0 | |||||
* | exec: Don't assume bfs_exec_debug() doesn't change errno | Tavian Barnes | 2018-06-25 | 1 | -4/+3 | |
| | ||||||
* | bftw: Use bftw_action as the return type when applicable | Tavian Barnes | 2018-06-25 | 1 | -6/+8 | |
| | ||||||
* | tests: Relax test_depth_error | Tavian Barnes | 2018-06-24 | 2 | -5/+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. | |||||
* | Release 1.2.21.2.2 | Tavian Barnes | 2018-06-23 | 3 | -2/+16 | |
| | ||||||
* | bftw: Introduce bftw_reader type | Tavian Barnes | 2018-06-23 | 1 | -367/+336 | |
| | ||||||
* | tests: New test for -depth in the presence of read errors | Tavian Barnes | 2018-06-23 | 2 | -0/+22 | |
| | ||||||
* | eval: Don't use %m to report a non-errno error | Tavian Barnes | 2018-06-19 | 1 | -1/+1 | |
| | | | | Fixes: 2a45ad01e211d0b36056c21d5211be46195b273d | |||||
* | parse: Don't leave expr->mode_cmp uninitialized | Tavian Barnes | 2018-06-18 | 1 | -1/+1 | |
| | | | | | | | | | When adding support for -perm +7777, I introduced an unconditional break that should have been conditional. The bug was observable with $ ./tests.sh --verbose --bfs="valgrind $PWD/bfs" test_perm_leading_plus_symbolic Fixes: 7f8bacca4c2b1d35bb65ddf8cbf70fadf1adf66e | |||||
* | bftw: Replace the circular buffer queue with a linked list | Tavian Barnes | 2018-04-07 | 1 | -91/+39 | |
| | | | | The performance is within 1% with much simpler code. | |||||
* | README: Add a repology badge | Tavian Barnes | 2018-04-05 | 1 | -3/+6 | |
| | ||||||
* | tests: Work around broken rm in cleanup | Tavian Barnes | 2018-03-18 | 1 | -0/+7 | |
| | | | | | | | BusyBox rm, for example, doesn't handle long paths properly, so give it some help. C.f. http://lists.busybox.net/pipermail/busybox/2018-March/086302.html | |||||
* | tests: Don't use process substitution for diff | Tavian Barnes | 2018-03-18 | 1 | -7/+18 | |
| | | | | | This frees up an extra FD for some diff implementations like openbox that need it when ulimit -n is low. | |||||
* | tests: Be robust to ls -i implementation that output a leading space | Tavian Barnes | 2018-03-18 | 1 | -1/+1 | |
| | ||||||
* | tests: Add a --noclean option to preserve the test directory | Tavian Barnes | 2018-03-18 | 1 | -2/+14 | |
| | | | | Useful for debugging testsuite failures. | |||||
* | New 'sanitized' make target | Tavian Barnes | 2018-03-18 | 1 | -1/+4 | |
| | ||||||
* | mtab: Fall back on /proc/mounts if /etc/mtab isn't available | Tavian Barnes | 2018-03-04 | 1 | -0/+4 | |
| | ||||||
* | exec: Fix size accounting when recovering from E2BIG | Tavian Barnes | 2018-02-10 | 1 | -4/+6 | |
| | ||||||
* | Release 1.2.11.2.1 | Tavian Barnes | 2018-02-08 | 3 | -2/+10 | |
| | ||||||
* | exec: Avoid a warning when building with _FORTIFY_SOURCE | Tavian Barnes | 2018-02-06 | 1 | -1/+6 | |
| | | | | | Also, don't pass the address of errno itself to write(), since write() is allowed to modify it. | |||||
* | eval: Don't unnecessarily zero fields in struct eval_state | Tavian Barnes | 2018-02-01 | 1 | -7/+6 | |
| | | | | | | The designated initializer causes everything not mentioned to be zeroed, a waste of time that shows up on profiles. It also has the potential to hide uninitialized-use bugs. | |||||
* | bftw: Open-code the "."/".." checks | Tavian Barnes | 2018-02-01 | 1 | -3/+4 | |
| | | | | | | GCC doesn't (yet) produce very fast code for strcmp() against constant strings (see https://gcc.gnu.org/PR78809), so hand-coding the comparison manually helps significantly. | |||||
* | bftw: Fix the heap implementation | Tavian Barnes | 2018-02-01 | 1 | -1/+21 | |
| | | | | | | | | | | There were two problems: - bubble_down() would always bubble the entry all the way down the heap, instead of stopping at the appropriate place - remove() may need to bubble the replacement entry *up* the heap, if it came from a different subtree | |||||
* | Release 1.21.2 | Tavian Barnes | 2018-01-20 | 3 | -2/+16 | |
| | ||||||
* | printf: Add %w and %Wk for file birth times | Tavian Barnes | 2018-01-20 | 5 | -1/+37 | |
| | | | | | %w and %W were chosen to match the format specifiers for file birth times from stat(1) | |||||
* | stat: New wrapper around the stat() family | Tavian Barnes | 2018-01-08 | 15 | -299/+565 | |
| | | | | | This lets bfs transparently support the new statx() system call on Linux, giving it access to file birth times. | |||||
* | Minor header cleanups | Tavian Barnes | 2018-01-08 | 4 | -9/+12 | |
| | ||||||
* | parse: Minor cleanups from af7878c/7da0d28 | Tavian Barnes | 2018-01-06 | 1 | -6/+2 | |
| | ||||||
* | bftw: Rename 'last' to 'previous' | Tavian Barnes | 2018-01-06 | 1 | -11/+11 | |
| | ||||||
* | Keep track of required FDs per-expr | Tavian Barnes | 2017-12-15 | 5 | -16/+35 | |
| | ||||||
* | exec: Minor whitespace consistency fix | Tavian Barnes | 2017-11-13 | 1 | -1/+1 | |
| | ||||||
* | color: Optimize cfprintf() a bit | Tavian Barnes | 2017-11-13 | 1 | -76/+86 | |
| | ||||||
* | color: Implement %m for cfprintf() | Tavian Barnes | 2017-11-13 | 5 | -11/+19 | |
| | ||||||
* | exec: Fix error reporting | Tavian Barnes | 2017-11-12 | 1 | -5/+9 | |
| | ||||||
* | exec: Recover from E2BIG | Tavian Barnes | 2017-11-12 | 6 | -20/+135 | |
| | ||||||
* | cmdline: Account for files opened during/between evaluations more carefully | Tavian Barnes | 2017-11-12 | 3 | -9/+26 | |
| | ||||||
* | Add support for file birth/creation times on platforms that have it | Tavian Barnes | 2017-11-05 | 7 | -60/+145 | |
| | | | | Fixes #19 |