summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* configure: Use --with/--without for librariesTavian Barnes2024-05-2416-81/+128
|
* configure: Support more standard autoconf optionsTavian Barnes2024-05-241-2/+12
|
* opt: Don't raise RLIMIT_NOFILE if it would prevent using posix_spawn()Tavian Barnes2024-05-234-0/+22
| | | | | | | | | | If we raise RLIMIT_NOFILE, we have to lower it before calling exec() for compatibility with select(). If posix_spawn() doesn't support that, we fall back to fork(), which is quite a bit slower. Therefore, if we're going to exec() on most files, it's better to keep RLIMIT_NOFILE the same to avoid the fork() cost, even though it makes bftw() somewhat slower.
* opt: true is true with probability 1, not 0Tavian Barnes2024-05-231-1/+1
|
* opt: Implement a general estimate_odds() functionTavian Barnes2024-05-231-9/+17
|
* expr: New for_expr macroTavian Barnes2024-05-236-14/+20
|
* tests: Make hide_bar actually hide the barTavian Barnes2024-05-222-1/+15
|
* tests: Print progress outside the scroll regionTavian Barnes2024-05-223-44/+132
|
* tests: Restart wait when interrupted by a signalTavian Barnes2024-05-221-6/+15
|
* build: Simplify flags.mkTavian Barnes2024-05-211-64/+43
|
* build: Fix ubsan CFLAGS typoTavian Barnes2024-05-211-1/+1
|
* build: Allow flags.mk to override command line variablesTavian Barnes2024-05-214-31/+31
| | | | | | | | Previously, during something like ./configure LDFLAGS=..., any additions to LDFLAGS from the generated makefiles were ignored. I had thought that sub-make invocations would allow those variables to be overridden, but that is not the behaviour of make. So instead, set _LDFLAGS etc. in the generated files so that they don't conflict.
* prelude: Remove max_align_t polyfillTavian Barnes2024-05-203-24/+0
| | | | | | This has been fixed in Cosmopolitan. Link: https://github.com/jart/cosmopolitan/issues/944
* trie: Add some more target_clones wrappersTavian Barnes2024-05-201-2/+12
|
* prelude: Make sure to grab __GLIBC__Tavian Barnes2024-05-201-1/+2
|
* Stop using %mTavian Barnes2024-05-2010-52/+34
|
* build: Remove unused configure testTavian Barnes2024-05-191-13/+0
|
* printf: The ' ' (space) flag must be numericTavian Barnes2024-05-193-2/+3
|
* 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
|