summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* docs/bfs.1: Fix some mandoc lint warningsTavian Barnes2024-09-053-12/+11
| | | | And add mandoc -Tlint to make check-man.
* build/embed.sh: Simplify a sed expressionTavian Barnes2024-09-031-1/+1
|
* build: Mark some recipes as .SILENTTavian Barnes2024-09-031-4/+7
| | | | | | | | | This suppresses output like this on a no-op remake with BSD make: $ make -j8 --- gen/config.mk --- --- gen/version.i.new --- --- gen/version.i ---
* distcheck: Pass MAKE="${MAKE}" to ./configureTavian Barnes2024-09-031-1/+1
| | | | | Otherwise ./configure will run with the default make but inherit MAKEFLAGS from the current make, breaking e.g. gmake distcheck on BSD.
* Fix includesTavian Barnes2024-08-2914-10/+10
|
* build: Move feature test macros to prelude.hTavian Barnes2024-08-2859-100/+62
| | | | | | This replaces the explicit CPPFLAGS list in flags.mk with just `-include src/prelude.h`, shortening our compiler command lines and allowing them to be easily documented.
* prelude: Split bfs-specific utilities into new bfs.h headerTavian Barnes2024-08-2863-201/+373
|
* prelude: Rely more on __has_include()Tavian Barnes2024-08-287-96/+31
| | | | | Rather than a bunch of manual fallback macros, just provide a fallback definition that returns false.
* build: Move tsan/target_clones conflict to the preludeTavian Barnes2024-08-282-5/+3
|
* prelude: Define __SANITIZE_*__Tavian Barnes2024-08-286-24/+21
|
* diag: Get rid of bfs_static_assert()Tavian Barnes2024-08-284-44/+39
| | | | | In most cases, it's not too annoying to specify a message. For tests/bit.c, we can manually polyfill the 1-argument version.
* prelude: Define thread_localTavian Barnes2024-08-283-12/+17
|
* build: Move per-file flag support into cc.shTavian Barnes2024-08-283-11/+33
|
* build: Move the "compiler works at all" test earlierTavian Barnes2024-08-283-12/+19
|
* build: Include the auto-flag build logs in config.logTavian Barnes2024-08-282-1/+2
|
* build/flags-if: Fix sed expression on BSDTavian Barnes2024-08-281-1/+1
| | | | | | | | `p` needs a terminating semicolon; otherwise we get sed: 1: "\|^///|{s|^/// ||; s|[^ ...": extra characters at the end of p command Fixes: 3552b79 ("build/flags: Infrastructure to detect compiler flag support")
* bftw: Handle a hypothetical platform where AT_FDCWD == -1Tavian Barnes2024-08-281-2/+2
|
* docs/BUILDING: Update example test outputTavian Barnes2024-08-281-4/+4
|
* build: Allow ./configure --version=X.Y.ZTavian Barnes2024-08-282-5/+8
|
* build/version.sh: Move version calculation hereTavian Barnes2024-08-282-7/+19
|
* build: Add check-{install,man} to distcheckTavian Barnes2024-08-281-1/+3
|
* build: Fix ./configure --helpTavian Barnes2024-08-231-2/+2
| | | | Fixes: 49a5d48 ("configure: Fix VAR=value before --option")
* prelude: Stub out __has_builtin() if necessaryTavian Barnes2024-08-231-0/+4
| | | | Fixes: c964524 ("atomic: Add a spin_loop() hint")
* ci: Update runners to Ubuntu 24.04Tavian Barnes2024-08-233-8/+18
|
* Release 4.0.14.0.1Tavian Barnes2024-08-193-2/+13
|
* eval: Don't warn about suppressed errors without -noerrorTavian Barnes2024-08-192-1/+3
|
* tests/bfs: Add -noerror testsTavian Barnes2024-08-197-0/+21
|
* bench: Remove workaround for : in $PATHTavian Barnes2024-08-181-6/+1
|
* sighook: Fix typo in commentTavian Barnes2024-08-171-1/+1
|
* eval: Capitalize -noerror warning messageTavian Barnes2024-08-171-1/+1
|
* Release 4.04.0Tavian Barnes2024-08-161-2/+2
|
* docs: Document the new -mount vs. -xdev behaviourTavian Barnes2024-08-164-7/+7
| | | | Fixes: 33b85e1 ("Implement POSIX 2024's -mount")
* New -noerror option to suppress error messagesTavian Barnes2024-08-168-1/+38
| | | | Closes: https://github.com/tavianator/bfs/issues/142
* eval: Remove info_hook from callback_argsTavian Barnes2024-08-161-4/+2
|
* opt: Warn about all ignored testsTavian Barnes2024-08-151-31/+34
| | | | | This lets us warn about `bfs -delete -empty`, even though -empty is impure.
* expr: Tell expressions what kind of expression they areTavian Barnes2024-08-155-200/+205
|
* Default to no for "Do you want to continue?" promptsTavian Barnes2024-08-132-2/+2
|
* ci/codeql: Ignore cpp/constant-comparisonTavian Barnes2024-08-121-0/+2
| | | | | It triggers on "constants" that vary by platform, e.g. the new sysoption() macro testing _POSIX_<OPTION>.
* opt: Add a missing NULL check in lift_andor_not()Tavian Barnes2024-08-121-0/+4
| | | | | The annotation visitor probably can't fail, but we might as well check consistently.
* opt: Warn about ignored expressions after dangerous actionsTavian Barnes2024-08-123-25/+79
| | | | | | For example, `bfs -delete -type f` is almost certainly a mistake. Link: https://savannah.gnu.org/bugs/?65895
* opt: Copy data flow back up from the nested context in optimize()Tavian Barnes2024-08-121-2/+11
| | | | | | | | This fixes warnings on commands like `bfs -exclude -true` or `bfs -exclude -type f -type f`, because the data flow is properly shared between the -exclude expression and the main one. Fixes: 4a36bb9 ("expr: Make expressions variadic")
* sighook: Disable semaphores on NetBSDTavian Barnes2024-08-111-1/+2
|
* bfstd: New sysoption() macro to check for POSIX option runtime supportTavian Barnes2024-08-095-39/+84
| | | | | | | | | | POSIX allows optional features to be supported at compile time but not necessarily at run time by defining _POSIX_OPTION to 0 and requiring users to check sysconf(_SC_OPTION) > 0. The new sysoption() macro simplifies the check. sighook() and bfs_spawn() now check for conditional runtime support for the relevant POSIX options.
* xtime: Remove xgettime()Tavian Barnes2024-08-095-39/+10
| | | | clock_gettime() is available everywhere by now.
* prelude: s/fallthru/_fallthrough/ for consistency with other attributesTavian Barnes2024-08-095-15/+15
|
* bar: Hide the bar unless the TTY is tall enoughTavian Barnes2024-08-071-13/+23
|
* docs/CHANGELOG: Add some new changesTavian Barnes2024-08-021-0/+6
|
* parse: Take umask into account in parse_mode()Tavian Barnes2024-08-027-10/+43
| | | | | | | POSIX 2024 clarified that find(1) is meant to work exactly like chmod(1) here, so for modes like +rw,-x with no "who" specified, apply the umask. Link: https://www.austingroupbugs.net/view.php?id=1392
* tests: Add more files to perms/Tavian Barnes2024-08-0222-103/+333
|
* parse: Fix names in parse_mode()Tavian Barnes2024-08-021-14/+14
| | | | | | | Commit 9c6e4ce ("parse: s/parser_state/bfs_parser/") was a little to overzealous in replacing "state" with "parser", resulting in the tortured phrase "parser machine parser" instead of "state machine state".