summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* dstring: Add an infallible dstrshrink() functionTavian Barnes2024-10-174-9/+47
| | | | And mark the fallible ones with _nodiscard.
* color: Don't color files like directories on ENOTDIRTavian Barnes2024-10-162-116/+232
|
* color: Fix an infinite loop colorizing some invalid pathsTavian Barnes2024-10-133-8/+13
| | | | | | | | | | | | | | Previously, given $ touch file $ ln -s file/file notdir $ bfs notdir/file bfs would loop forever when printing the error message, since it expected stripping the trailing slash from "notdir/" to fix the ENOTDIR error, but the broken symlink still gave the same error. Fixes: b4c3201 ("color: Only highlight the trailing slash on ENOTDIR")
* tests/gnu: Test -L -printf %YTavian Barnes2024-10-102-0/+18
|
* tests/trie: Improve code coverageTavian Barnes2024-10-101-1/+4
|
* sighook: Don't forget to reset list->tail on the last sigpop()Tavian Barnes2024-10-102-0/+9
| | | | | | | This was causing a UAF if we ever unregistered the last hook for a signal and then re-registered one. Fixes: 75b7f70 ("sighook: Make sigunhook() O(1)")
* eval: Use xtimer_start() for status bar updatesTavian Barnes2024-10-101-36/+76
|
* tests/sighook: Use the new xtimer_start() APITavian Barnes2024-10-101-8/+6
|
* xtime: Add a wrapper for timer_create()/setitimer()Tavian Barnes2024-10-104-0/+130
| | | | | | setitimer() is obsolescent in POSIX 2008 and removed from POSIX 2024. However, at least macOS doesn't implement the new timer_create() API, so we still need the setitimer() fallback.
* Adjust in/out parameter docsTavian Barnes2024-10-105-11/+11
|
* Fix some -Wundef-prefix warningsTavian Barnes2024-10-104-6/+14
|
* trie: Switch the tag bits aroundTavian Barnes2024-10-081-31/+28
| | | | | | First of all, almost all checks were !trie_is_leaf(), so it makes sense to use trie_is_node() instead. Secondly, using the tag bit for internal nodes allows us to remove some NULL checks.
* trie: Add some extra bounds checkingTavian Barnes2024-10-081-13/+24
|
* opt: Remove duplicate assignment in canonicalize_not()Tavian Barnes2024-10-041-1/+0
|
* color: Fix an assertion failure with embedded NUL bytesTavian Barnes2024-10-023-0/+42
| | | | | | | | | | | | | Leading NUL bytes (e.g. `*\0.gz=...`) could cause us to insert a non-prefix-free set of strings into the case-insensitive extension trie, which would lead to crashes like bfs: trie_split@src/trie.c:538: Assertion failed: `key_nibble != rep_nibble` and OOB accesses to trie leaf keys. Fix it by ignoring those extensions, since filenames cannot contain NUL bytes. Fixes: 08030aea ("color: Delay the case_sensitive decision")
* Write @arg instead of @param arg in doc commentsTavian Barnes2024-10-0127-367/+367
|
* ci: Group distcheck messagesTavian Barnes2024-10-011-0/+2
|
* build: Add -Wundef-prefix=BFS_Tavian Barnes2024-10-014-0/+22
|
* list: Make SLIST_REMOVE() more type-safeTavian Barnes2024-09-301-25/+20
| | | | | | This avoids what might be a strict aliasing violation in some models. Link: https://github.com/llvm/llvm-project/pull/108385#issuecomment-2352938645
* Fix spellingTavian Barnes2024-09-2315-17/+17
|
* list: New drain_slist() macroTavian Barnes2024-09-194-39/+49
|
* build/prelude: Remove vestigal OBJS definitionTavian Barnes2024-09-181-11/+0
|
* Release 4.0.24.0.2Tavian Barnes2024-09-173-3/+37
|
* opt: #include "xspawn.h" before #ifdef POSIX_SPAWN_SETRLIMITTavian Barnes2024-09-171-0/+1
| | | | Fixes: 65a7814 ("opt: Don't raise RLIMIT_NOFILE if it would prevent using posix_spawn()")
* opt: Fix an invalid assertion in sink_not_comma()Tavian Barnes2024-09-173-4/+39
| | | | | | | When optimizing -not \( -a , -b \), the child is a comma expression, not the parent. Fixes: 4a36bb9 ("expr: Make expressions variadic")
* parse: Add a "logo" to bfs --versionTavian Barnes2024-09-141-1/+32
|
* dstring: New dstrepeat() functionTavian Barnes2024-09-142-0/+22
|
* build: Remove gen/deps.mkTavian Barnes2024-09-145-84/+68
| | | | | | | | | | | | | | | | Since commit 3552b79 ("build/flags: Infrastructure to detect compiler flag support"), this file only listed a bunch of lines like -include obj/src/alloc.d -include obj/src/bar.d ... We can do that just as well from the main Makefile, and in one line too: -include ${OBJS:.o=.d} This lets us pull the list of all objects out of build/prelude.mk and put it closer to where those objects are actually used.
* opt: Add missing newline to debug statementTavian Barnes2024-09-121-1/+1
| | | | Fixes: 9b8cf46 ("opt: Warn about all ignored tests")
* ci: Remove vmactions pip workaroundTavian Barnes2024-09-081-10/+0
|
* build/flags: Use auto-detection for all warning flagsTavian Barnes2024-09-059-12/+73
|
* 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
|