summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add new -capable testTavian Barnes2018-12-174-0/+33
|
* color: Support coloring files with capabilitiesTavian Barnes2018-12-174-5/+115
|
* Makefile: Link with -lrt on LinuxTavian Barnes2018-12-171-2/+14
| | | | Fixes #29.
* tests.sh: Add a --help with usage informationTavian Barnes2018-12-171-1/+36
|
* bftw: Move bftw_typeflag conversion out of utilTavian Barnes2018-12-176-112/+107
| | | | Turns out incomplete enum types are a GNU C extension.
* color: Make extension detection case-insensitiveTavian Barnes2018-12-171-8/+18
| | | | It's what GNU ls does.
* color: Don't print the leading directory color if there's no leading directoryTavian Barnes2018-12-172-24/+23
|
* bfs(1): Fix some double spaces after exclamation marksTavian Barnes2018-12-031-9/+2
|
* exec: Reject -exec \; without a commandTavian Barnes2018-11-142-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 Barnes2018-11-141-3/+2
| | | | Also, FreeBSD find rejects -L -delete, so don't test it under --bsd.
* tests: Don't assume find continues after filesystem loopsTavian Barnes2018-11-1419-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 itTavian Barnes2018-11-084-9/+24
| | | | Fixes #38.
* util: Provide fallback implementations of makedev()/major()/minor()Tavian Barnes2018-11-021-0/+14
|
* parse: Use a better reference point for incomplete expression errorsTavian Barnes2018-11-021-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 flagsTavian Barnes2018-11-022-0/+5
|
* parse: Improve -D diagnosticsTavian Barnes2018-11-021-12/+26
|
* util: Wrap __has_include()Tavian Barnes2018-11-013-6/+8
|
* Print device major/minor numbers for -lsTavian Barnes2018-11-015-9/+56
|
* tests: Make the weird names tests POSIX-compliantTavian Barnes2018-11-011-6/+6
|
* tests: Add testcases for -pruneTavian Barnes2018-11-014-0/+45
|
* Remove man page on make uninstallTavian Barnes2018-11-011-0/+1
|
* tests: Sort test listsTavian Barnes2018-09-271-159/+292
|
* tests: Move test for -H -newer out of POSIXTavian Barnes2018-09-271-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 testsTavian Barnes2018-09-261-13/+21
| | | | Credit to http://core.suckless.org/sbase/ for identifying these.
* Update some more copyright datesTavian Barnes2018-09-262-2/+2
|
* Merge branch 'release-1.2.4'Tavian Barnes2018-09-2419-19/+32
|\
| * Release 1.2.41.2.4Tavian Barnes2018-09-243-2/+15
| |
| * Update copyright datesTavian Barnes2018-09-2419-19/+19
| |
* | spawn: Add some docsTavian Barnes2018-09-192-9/+54
| |
* | spawn: Implement execvpe() on platforms that lack itTavian Barnes2018-09-191-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 execTavian Barnes2018-09-186-85/+243
|/
* exec: Don't leave zombies around if the child fails to exec()Tavian Barnes2018-09-121-10/+10
|
* exec: More fixes for bfs_exec_debug() changing errnoTavian Barnes2018-09-101-3/+4
|
* opt: Re-run optimizations after reordering expressionsTavian Barnes2018-08-184-25/+92
| | | | | This catches new data flow inferences that can be made after swapping the children of an expression.
* color: Fix a doc comment typoTavian Barnes2018-08-161-1/+1
|
* Add some missing fallthrough commentsTavian Barnes2018-08-162-0/+2
|
* util: Preserve errno in pipe_cloexec()Tavian Barnes2018-07-241-0/+2
|
* util: macOS doesn't have pipe2()Tavian Barnes2018-07-241-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() directivesTavian Barnes2018-07-241-10/+20
|
* printf: Support %B, GNU find's undocumented birth time specifierTavian Barnes2018-07-242-7/+8
|
* stat: Don't assume blocks are 512 bytesTavian Barnes2018-07-243-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 000Tavian Barnes2018-07-205-0/+46
|
* printf: Output ? for errors in %YTavian Barnes2018-07-203-5/+35
|
* Release 1.2.31.2.3Tavian Barnes2018-07-153-2/+14
|
* eval: Debug all stat() callsTavian Barnes2018-07-151-47/+56
|
* eval: Share the statbuf across multiple -xtype'sTavian Barnes2018-07-121-18/+31
|
* eval: Get rid of duplicate statbuf fieldTavian Barnes2018-07-121-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 Barnes2018-07-123-2/+31
| | | | | Same bug as https://savannah.gnu.org/bugs/?46305. Please don't ever do this though.
* stat: Support the glibc statx() wrapperTavian Barnes2018-07-111-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 commandsTavian Barnes2018-07-081-5/+19
|