Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | bfs(1): Fix some double spaces after exclamation marks | Tavian Barnes | 2018-12-03 | 1 | -9/+2 | |
| | ||||||
* | exec: Reject -exec \; without a command | Tavian Barnes | 2018-11-14 | 2 | -1/+20 | |
| | | | | | | | | | | | Prior to this, we'd fork and then segfault on every file as NULL was passed to execvpe(). Found while looking through old FreeBSD find bugs: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=36521 bfs still supports the (dubious, possibly unintentional?) GNU find extension to POSIX that allows $ bfs -exec {} \; | |||||
* | tests: Don't assume BSD find has the "implicit ." | Tavian Barnes | 2018-11-14 | 1 | -3/+2 | |
| | | | | Also, FreeBSD find rejects -L -delete, so don't test it under --bsd. | |||||
* | tests: Don't assume find continues after filesystem loops | Tavian Barnes | 2018-11-14 | 19 | -37/+100 | |
| | | | | | | | | | | | POSIX says > When it detects an infinite loop, find shall write a diagnostic > message to standard error and shall either recover its position in the > hierarchy or terminate. So make the 'links' folder not have any loops, and add a new 'loops' folder for testing the GNU/bfs behaviour. | |||||
* | Check for <sys/param.h> before including it | Tavian Barnes | 2018-11-08 | 4 | -9/+24 | |
| | | | | Fixes #38. | |||||
* | util: Provide fallback implementations of makedev()/major()/minor() | Tavian Barnes | 2018-11-02 | 1 | -0/+14 | |
| | ||||||
* | parse: Use a better reference point for incomplete expression errors | Tavian Barnes | 2018-11-02 | 1 | -1/+8 | |
| | | | | | This makes `bfs -not type d` complain about nothing following the `-not` rather than the `d`. | |||||
* | parse: Add support for -D all to enable all debug flags | Tavian Barnes | 2018-11-02 | 2 | -0/+5 | |
| | ||||||
* | parse: Improve -D diagnostics | Tavian Barnes | 2018-11-02 | 1 | -12/+26 | |
| | ||||||
* | util: Wrap __has_include() | Tavian Barnes | 2018-11-01 | 3 | -6/+8 | |
| | ||||||
* | Print device major/minor numbers for -ls | Tavian Barnes | 2018-11-01 | 5 | -9/+56 | |
| | ||||||
* | tests: Make the weird names tests POSIX-compliant | Tavian Barnes | 2018-11-01 | 1 | -6/+6 | |
| | ||||||
* | tests: Add testcases for -prune | Tavian Barnes | 2018-11-01 | 4 | -0/+45 | |
| | ||||||
* | Remove man page on make uninstall | Tavian Barnes | 2018-11-01 | 1 | -0/+1 | |
| | ||||||
* | tests: Sort test lists | Tavian Barnes | 2018-09-27 | 1 | -159/+292 | |
| | ||||||
* | tests: Move test for -H -newer out of POSIX | Tavian Barnes | 2018-09-27 | 1 | -1/+2 | |
| | | | | | The POSIX spec implies that -newer is actually not supposed to respect -H/-L. But all implementations I know about do anyway. | |||||
* | tests: Remove non-POSIX features from POSIX tests | Tavian Barnes | 2018-09-26 | 1 | -13/+21 | |
| | | | | Credit to http://core.suckless.org/sbase/ for identifying these. | |||||
* | Update some more copyright dates | Tavian Barnes | 2018-09-26 | 2 | -2/+2 | |
| | ||||||
* | Merge branch 'release-1.2.4' | Tavian Barnes | 2018-09-24 | 19 | -19/+32 | |
|\ | ||||||
| * | Release 1.2.41.2.4 | Tavian Barnes | 2018-09-24 | 3 | -2/+15 | |
| | | ||||||
| * | Update copyright dates | Tavian Barnes | 2018-09-24 | 19 | -19/+19 | |
| | | ||||||
* | | spawn: Add some docs | Tavian Barnes | 2018-09-19 | 2 | -9/+54 | |
| | | ||||||
* | | spawn: Implement execvpe() on platforms that lack it | Tavian Barnes | 2018-09-19 | 1 | -1/+11 | |
| | | | | | | | | | | | | Credit to https://github.com/nim-lang/Nim/issues/3138 for the idea to just overwrite environ and call execvp() instead of duplicating the path searching logic. | |||||
* | | spawn: New posix_spawn()-like API for exec | Tavian Barnes | 2018-09-18 | 6 | -85/+243 | |
|/ | ||||||
* | exec: Don't leave zombies around if the child fails to exec() | Tavian Barnes | 2018-09-12 | 1 | -10/+10 | |
| | ||||||
* | exec: More fixes for bfs_exec_debug() changing errno | Tavian Barnes | 2018-09-10 | 1 | -3/+4 | |
| | ||||||
* | opt: Re-run optimizations after reordering expressions | Tavian Barnes | 2018-08-18 | 4 | -25/+92 | |
| | | | | | This catches new data flow inferences that can be made after swapping the children of an expression. | |||||
* | color: Fix a doc comment typo | Tavian Barnes | 2018-08-16 | 1 | -1/+1 | |
| | ||||||
* | Add some missing fallthrough comments | Tavian Barnes | 2018-08-16 | 2 | -0/+2 | |
| | ||||||
* | util: Preserve errno in pipe_cloexec() | Tavian Barnes | 2018-07-24 | 1 | -0/+2 | |
| | ||||||
* | util: macOS doesn't have pipe2() | Tavian Barnes | 2018-07-24 | 1 | -1/+2 | |
| | | | | | | | The code was testing for BSD, since all the normal BSDs have it. But until recently, <sys/param.h> wasn't included, so BSD was undefined even on platforms that define it. Now that it is defined appropriately, exclude macOS specifically. | |||||
* | printf: Support all standard strftime() directives | Tavian Barnes | 2018-07-24 | 1 | -10/+20 | |
| | ||||||
* | printf: Support %B, GNU find's undocumented birth time specifier | Tavian Barnes | 2018-07-24 | 2 | -7/+8 | |
| | ||||||
* | stat: Don't assume blocks are 512 bytes | Tavian Barnes | 2018-07-24 | 3 | -6/+24 | |
| | | | | | | | | | | | | 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. | |||||
* | tests: Add tests for mode 000 | Tavian Barnes | 2018-07-20 | 5 | -0/+46 | |
| | ||||||
* | 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 | |
| |