Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | stat: Don't assume blocks are 512 bytes | Tavian Barnes | 2018-07-24 | 1 | -2/+2 |
| | | | | | | | | | | | | POSIX says > The unit for the st_blocks member of the stat structure is not defined > within POSIX.1‐2008. and recommends using DEV_BSIZE from <sys/param.h> if available. Also, for -printf '%S', print 1 instead of NaN for empty files with no blocks. | ||||
* | 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 | 1 | -2/+15 |
| | | | | | Same bug as https://savannah.gnu.org/bugs/?46305. Please don't ever do this though. | ||||
* | eval: Don't use %m to report a non-errno error | Tavian Barnes | 2018-06-19 | 1 | -1/+1 |
| | | | | Fixes: 2a45ad01e211d0b36056c21d5211be46195b273d | ||||
* | 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. | ||||
* | stat: New wrapper around the stat() family | Tavian Barnes | 2018-01-08 | 1 | -94/+82 |
| | | | | | This lets bfs transparently support the new statx() system call on Linux, giving it access to file birth times. | ||||
* | Keep track of required FDs per-expr | Tavian Barnes | 2017-12-15 | 1 | -1/+3 |
| | |||||
* | color: Implement %m for cfprintf() | Tavian Barnes | 2017-11-13 | 1 | -4/+4 |
| | |||||
* | exec: Fix error reporting | Tavian Barnes | 2017-11-12 | 1 | -5/+9 |
| | |||||
* | cmdline: Account for files opened during/between evaluations more carefully | Tavian Barnes | 2017-11-12 | 1 | -2/+1 |
| | |||||
* | Add support for file birth/creation times on platforms that have it | Tavian Barnes | 2017-11-05 | 1 | -19/+37 |
| | | | | Fixes #19 | ||||
* | Use "error:" prefix consistently | Tavian Barnes | 2017-10-22 | 1 | -4/+4 |
| | |||||
* | util: Wrap faccessat() to fix some portability issues | Tavian Barnes | 2017-09-20 | 1 | -1/+1 |
| | |||||
* | opt: Move some aggressive optimizations back to -O4 | Tavian Barnes | 2017-09-17 | 1 | -8/+1 |
| | |||||
* | opt: Separate optimization from parsing | Tavian Barnes | 2017-09-16 | 1 | -1/+4 |
| | |||||
* | eval: Make sure nopenfd >= 2 for bftw() | Tavian Barnes | 2017-09-09 | 1 | -6/+5 |
| | |||||
* | Try /proc/self/fd before /dev/fd | Tavian Barnes | 2017-09-09 | 1 | -3/+6 |
| | | | | On Solaris, /proc/self/fd is dynamic while /dev/fd is static. | ||||
* | util: Factor out checks for nonexistent paths/broken links | Tavian Barnes | 2017-09-06 | 1 | -2/+2 |
| | |||||
* | Implement -D search | Tavian Barnes | 2017-09-02 | 1 | -0/+100 |
| | |||||
* | Implement cost-based optimization | Tavian Barnes | 2017-08-27 | 1 | -13/+10 |
| | |||||
* | Avoid multiple extra stat()s of broken symlinks for -xtype | Tavian Barnes | 2017-08-22 | 1 | -4/+9 |
| | |||||
* | Unify broken symlink handling | Tavian Barnes | 2017-08-12 | 1 | -16/+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. | ||||
* | util: Define O_DIRECTORY to 0 if it's not already defined | Tavian Barnes | 2017-07-29 | 1 | -5/+1 |
| | |||||
* | Re-license under the BSD Zero Clause License | Tavian Barnes | 2017-07-27 | 1 | -10/+15 |
| | |||||
* | Represent never returning as always_true && always_false | Tavian Barnes | 2017-07-21 | 1 | -3/+6 |
| | | | | | | | | | | Expressions that never return are vacuously always both true and false. Using this representation lets us take advantage of existing truth-based optimizations, which gets us optimizations of command lines like bfs -name foo -quit -print for free. | ||||
* | Implement -printx | Tavian Barnes | 2017-07-21 | 1 | -0/+38 |
| | | | | Also from NetBSD. | ||||
* | eval: Add some sanity checks | Tavian Barnes | 2017-07-20 | 1 | -0/+6 |
| | |||||
* | Implement -exit [STATUS] | Tavian Barnes | 2017-07-20 | 1 | -9/+19 |
| | | | | From NetBSD again. | ||||
* | Handle ENOTDIR the same as ENOENT | Tavian Barnes | 2017-07-09 | 1 | -2/+2 |
| | | | | | | 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. | ||||
* | Pass AT_EACCESS to faccessat() | Tavian Barnes | 2017-04-30 | 1 | -1/+1 |
| | | | | | That's the form that actually answers the expected question ("can I open() this"), and the only form Hurd supports. | ||||
* | Don't forget an access mode to openat() in -empty | Tavian Barnes | 2017-04-30 | 1 | -1/+1 |
| | |||||
* | Release 1.01.0 | Tavian Barnes | 2017-04-24 | 1 | -1/+1 |
| | |||||
* | Implement -fstype | Tavian Barnes | 2017-04-23 | 1 | -0/+14 |
| | | | | Fixes #6! | ||||
* | Implement -X | Tavian Barnes | 2017-04-16 | 1 | -0/+7 |
| | |||||
* | Implement -exec/-execdir ... + | Tavian Barnes | 2017-04-15 | 1 | -189/+15 |
| | |||||
* | Move bftw_typeflag converters to util.c | Tavian Barnes | 2017-04-08 | 1 | -1/+1 |
| | |||||
* | Color link targets for -ls | Tavian Barnes | 2017-03-16 | 1 | -7/+1 |
| | | | | Fixes #18. | ||||
* | Give struct expr a CFILE* instead of just a FILE* | Tavian Barnes | 2017-03-16 | 1 | -36/+14 |
| | | | | This unifies the behaviour of -print and -fprint /dev/stdout. | ||||
* | Implement -ls and -fls | Tavian Barnes | 2017-03-11 | 1 | -0/+105 |
| | |||||
* | Make a printf()-style API for colored messages | Tavian Barnes | 2017-03-11 | 1 | -9/+7 |
| | |||||
* | bftw: Make the nameoff of "///" point to "/" | Tavian Barnes | 2017-02-09 | 1 | -8/+3 |
| | | | | This simplifies a few things such as -name handling for ///. | ||||
* | Don't close stdin for -ok or -okdir | Tavian Barnes | 2017-02-09 | 1 | -9/+0 |
| | | | | Turns out it violates POSIX, even though GNU find does it. | ||||
* | Add support for -x?type with multiple types | Tavian Barnes | 2017-02-08 | 1 | -28/+2 |
| | | | | This functionality is already part of GNU findutils git. | ||||
* | Add some missing perror() calls | Tavian Barnes | 2017-02-07 | 1 | -20/+16 |
| | |||||
* | Make -quit happen immediately, not at the end of the current expression | Tavian Barnes | 2017-02-05 | 1 | -3/+31 |
| | |||||
* | Implement -printf/-fprintf | Tavian Barnes | 2017-02-05 | 1 | -30/+47 |
| | | | | | Based on a patch by Fangrui Song <i@maskray.me>. Closes #16. | ||||
* | Implement -nouser and -nogroup | Tavian Barnes | 2017-02-04 | 1 | -0/+26 |
| | |||||
* | Don't trust st_size when reading symlinks | Tavian Barnes | 2017-01-31 | 1 | -12/+1 |
| | | | | | Linux /proc, for example, reports a st_size of 0 for everything. It's nice to be able to use -lname on them anyway. |