summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* main: Fix closed standard stream handlingTavian Barnes2019-02-016-22/+76
| | | | | bfs >&- should complain about a missing file descriptor, rather than silently succeeding.
* Makefile: New distcheck targetTavian Barnes2019-02-012-28/+27
| | | | | | To catch more errors automatically, this new target runs the tests in multiple configurations, including various sanitizers and with/without optimization.
* util: Allow configuration macros to be specified with -DTavian Barnes2019-02-012-7/+24
| | | | In case we need to override them at build time.
* stat: Work around msan not knowing about statx()Tavian Barnes2019-01-312-1/+14
|
* tests: Fail if bfs failsTavian Barnes2019-01-311-3/+17
| | | | | For tests that expect bfs to fail, the return value disambiguates whether bfs itself failed or whether the output was unexpected.
* dstring: Initialize freshly-allocated stringsTavian Barnes2019-01-311-0/+1
| | | | | | | | | | Previously, a string allocated with dstralloc() had length 0 but no terminating NUL byte there. This was problematic if such a string was used without being modified. In particular, this was reproducible with bfs -ok by not typing any response to the prompt. In that case, uninitialized memory was being tested for a y/n response, with unpredictable results.
* Release 1.3.21.3.2Tavian Barnes2019-01-113-2/+11
|
* parse: Allow multiple comma-separated debug flagsTavian Barnes2019-01-112-54/+91
|
* color.c: Fix an out-of-bounds read if LS_COLORS doesn't end in a colonTavian Barnes2019-01-111-9/+9
|
* Release 1.3.11.3.1Tavian Barnes2019-01-033-3/+11
|
* posix1e: Don't #include <sys/capability.h> on FreeBSDTavian Barnes2019-01-033-7/+9
| | | | | | | | The file is there by default, but deprecated and not a POSIX.1E implementation. While I'm at it, move the logic to posix1e.h so other files aren't burdened with an extra include. Fixes the other half of #40.
* stat: s/ENODATA/ENOTSUP, since ENODATA is POSIX-optionalTavian Barnes2019-01-031-3/+3
| | | | Fixes half of #40.
* Release 1.31.3Tavian Barnes2019-01-023-4/+4
|
* posix1e: Split out ACL and capability handling from utilTavian Barnes2019-01-029-185/+248
|
* color: Fix more incompatibilities with GNU lsTavian Barnes2019-01-0215-31/+267
|
* color: Check format strings + args for cfprintf()Tavian Barnes2019-01-028-312/+353
| | | | | | %{cc} is now ${cc} to avoid warnings about an unrecognized format specifier, and %P and %L are now %pP and %pL to make them look more like standard format strings.
* diag: Unify diagnostic formattingTavian Barnes2019-01-029-136/+271
| | | | | | This adds a bfs: prefix to error/warning messages for consistency with other command line tools, and leaves only the "error:"/"warning:" part colored like GCC. It also uniformly adds full stops after messages.
* README.md: Fix broken macOS find man page linkTavian Barnes2018-12-301-1/+1
|
* Hide unsupported options from -helpTavian Barnes2018-12-301-0/+6
|
* RELEASES.md: Update for the next releaseTavian Barnes2018-12-301-0/+21
|
* tests: Fix test_exit() to not depend on breadth-first orderingTavian Barnes2018-12-282-16/+1
|
* color: Don't bail out on colors that exist but are NULLTavian Barnes2018-12-281-14/+7
|
* parse: Handle argc == 0Tavian Barnes2018-12-281-0/+6
| | | | | Linux allows you to exec() with no argument list at all. Default to "bfs" in that case.
* stat: Provide a helper for getting human-readable field namesTavian Barnes2018-12-254-60/+73
| | | | And fix -newerXY if the Y time doesn't exist.
* stat: Unify bfs_stat_time() implementationsTavian Barnes2018-12-204-45/+39
|
* stat: Handle statx() not returning some timesTavian Barnes2018-12-192-14/+44
| | | | | | /sys/fs/cgroup, for example, doesn't return access times from statx(). That shouldn't matter unless we actually need them, so make it not an error.
* parse: Fix probabilities when -types are duplicatedTavian Barnes2018-12-191-16/+24
| | | | -type f,f does not have more than a 100% probability of success.
* parse: Add cost info for -acl and -capableTavian Barnes2018-12-191-2/+6
| | | | And set ephemeral_fds correctly too.
* util: Don't leak an acl_t on non-POSIX.1e platformsTavian Barnes2018-12-191-1/+2
|
* util: Support systems that don't define the POSIX.1e ACL tag valuesTavian Barnes2018-12-181-0/+4
|
* travis: Install the POSIX.1e headersTavian Barnes2018-12-181-0/+8
|
* Implement -acl testTavian Barnes2018-12-177-2/+110
|
* 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
|