summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* dir: Use posix_getdents() on all platformsTavian Barnes2024-05-171-2/+6
|
* dir: Add support for posix_getdents()Tavian Barnes2024-05-174-4/+35
| | | | | | | | This will be added to the next POSIX standard, and is already implemented in musl. Link: https://www.austingroupbugs.net/view.php?id=697 Link: https://git.musl-libc.org/cgit/musl/commit/?id=1b0d48517f816e98f19111df82f32bfc1608ecec
* Cast AT_FDCWD to int for comparisonsTavian Barnes2024-05-176-8/+8
| | | | | Some platforms define AT_FDCWD to a constant like 0xFFFAFDCD that gets typed as an unsigned int.
* ci: Surface compiler warnings/errors as GitHub actions messagesTavian Barnes2024-05-172-7/+23
|
* build: Add missing SPDX headersTavian Barnes2024-05-173-0/+9
|
* diag: New helpers to include xstrerror(errno) automaticallyTavian Barnes2024-05-1712-56/+93
|
* stat: Support __st_birthtim on OpenBSDTavian Barnes2024-05-163-0/+13
|
* distcheck: Disable tsan on FreeBSDTavian Barnes2024-05-161-1/+1
| | | | | | | | | ThreadSanitizer has some FreeBSD-specific bugs that are too difficult to work around. In particular, deadlock is possible if any signal with a user-defined handler interrupts an atomic operation. Link: https://github.com/llvm/llvm-project/issues/92313 Link: https://github.com/llvm/llvm-project/issues/92437
* Work around https://github.com/llvm/llvm-project/issues/88163Tavian Barnes2024-05-164-3/+24
|
* ctx: Try to reset TTY state when terminating abnormallyTavian Barnes2024-05-163-51/+105
| | | | Fixes: https://github.com/tavianator/bfs/issues/138
* bar: Use atsigexit() to reset the barTavian Barnes2024-05-161-132/+47
|
* sighook: New utilities for hooking signalsTavian Barnes2024-05-167-0/+777
| | | | This allows multiple hooks to be installed for a single signal.
* atomic: Add a spin_loop() hintTavian Barnes2024-05-151-0/+14
|
* atomic: Add atomic_{thread,signal}_fence() wrappersTavian Barnes2024-05-151-0/+19
|
* xspawn: Mask signals before fork()Tavian Barnes2024-05-151-8/+29
| | | | This prevents signal handlers from running in the child before execve().
* bar: Make SIGWINCH move the cursor out of the barTavian Barnes2024-05-151-23/+16
|
* bar: Defend bfs_bar::fd against signal handler racesTavian Barnes2024-05-091-31/+102
| | | | | This is not currently a problem because bfs_bar_hide() is only ever called while single-threaded, but we might as well program defensively.
* build: Sort generated headersTavian Barnes2024-05-081-4/+4
|
* dstring: Make dstrprintf() return dchar *Tavian Barnes2024-05-082-4/+4
|
* build/has/getdents: Squelch warningsTavian Barnes2024-05-073-9/+6
|
* ci: Save config.log filesTavian Barnes2024-05-071-5/+30
|
* distcheck: Don't build with make -sTavian Barnes2024-05-071-6/+6
| | | | That way I can see the ./configure output on CI.
* prelude: Kill #include <sys/param.h>Tavian Barnes2024-05-071-7/+0
| | | | We don't check for `BSD` anymore.
* build: Check for 1- and 2-argument getmntent() variantsTavian Barnes2024-05-074-2/+23
|
* build: Add a check for getmntinfo()Tavian Barnes2024-05-073-2/+12
|
* mtab: Fix getmntinfo() error checkTavian Barnes2024-05-071-1/+1
| | | | The man pages all say "if an error occurs, zero is returned"
* build: Add checks for strtofflags() and string_to_flags()Tavian Barnes2024-05-074-7/+29
|
* prelude: Remove unused __GLIBC_PREREQ() polyfillTavian Barnes2024-05-071-4/+0
|
* stat: Remove __GNU__ guardTavian Barnes2024-05-071-1/+1
| | | | | The number of people running bfs on Hurd with an outdated glibc version is vanishingly small (I hope).
* stat: Prefer fstat(fd) to fstatat(fd, "", AT_EMPTY_PATH)Tavian Barnes2024-05-071-19/+13
| | | | | | | | | This lets us get rid of the runtime probe for AT_EMPTY_PATH support, and should be more efficient anyway. We still use statx(fd, "", AT_EMPTY_PATH) if available. Link: https://lore.kernel.org/linux-fsdevel/CAHk-=wiYnnv7Kw7v+Cp2xU6_Fd-qxQMZuuxZ61LgA2=Gtftw-A@mail.gmail.com/
* prelude: Kill unused __NetBSD_Prereq__() polyfillTavian Barnes2024-05-071-4/+0
|
* xtime: Don't use timegm() on FreeBSD+msanTavian Barnes2024-05-061-1/+3
|
* xtime: Use the libc's timegm() if presentTavian Barnes2024-05-064-7/+51
|
* build: Don't look for -s inside VAR=val in $MAKEFLAGSTavian Barnes2024-05-031-0/+2
|
* Makefile: Recommend --enable-release over RELEASE=yTavian Barnes2024-05-021-2/+2
|
* Release 3.23.2Tavian Barnes2024-05-022-1/+31
|
* Prefer ./configure --enable-release to RELEASE=yTavian Barnes2024-05-022-3/+3
|
* build: Add some nice aliases to ./configureTavian Barnes2024-05-016-138/+221
|
* build: Listen to make -sTavian Barnes2024-04-3010-55/+115
|
* build: Replace `make config` with a `./configure` scriptTavian Barnes2024-04-2963-387/+445
| | | | | | | | | | This lets us do more traditional out-of-tree builds like $ ../path/to/bfs/configure $ make The .mk files are moved from ./config to ./build, mostly so that ./configure will auto-complete easily.
* bench: Get rid of stray lsTavian Barnes2024-04-271-1/+0
|
* config: Just use NOT to implement NORTavian Barnes2024-04-262-19/+4
|
* config: Move .c files into config/{use,has} subdirectoriesTavian Barnes2024-04-2643-68/+70
|
* bench: Run make config when buildingTavian Barnes2024-04-251-2/+9
|
* config: Add BFS_USE_LIB* to config.h instead of CPPFLAGSTavian Barnes2024-04-259-75/+50
|
* ioq: Fix uninitialized values in ioq_create() cleanup pathTavian Barnes2024-04-241-4/+1
| | | | | | | | I switched from ZALLOC_FLEX() to ALLOC_FLEX() in hopes that msan would catch uninitialized values in ioq_thread_create(), but in doing so, forgot to initialize all fields before the first goto fail. Fixes: f64f76b ("ioq: Copy ring_ops from the previous thread")
* printf: Check dynamic format strings more carefullyTavian Barnes2024-04-242-41/+48
|
* printf: Refactor %y/%Y implementationTavian Barnes2024-04-243-59/+53
|
* ctx: Escape paths when reporting errors in bfs_ctx_free()Tavian Barnes2024-04-241-1/+1
|
* opt: Add missing NULL check in visit_shallow()Tavian Barnes2024-04-241-1/+5
| | | | | visit_shallow() should propagate NULL, but look_up_visitor() dereferences expr to know which visitor to return.