summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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-163-0/+674
| | | | 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.
* dstring: Make dstrprintf() return dchar *Tavian Barnes2024-05-082-4/+4
|
* 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-071-2/+2
|
* build: Add a check for getmntinfo()Tavian Barnes2024-05-071-2/+1
|
* 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-071-7/+9
|
* 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-061-3/+33
|
* config: Add BFS_USE_LIB* to config.h instead of CPPFLAGSTavian Barnes2024-04-251-0/+1
|
* 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.
* dstring: Add missing va_end() to dstrvcatf() error pathTavian Barnes2024-04-241-0/+1
|
* eval: Plug memory leak if bfs_opendir() failsTavian Barnes2024-04-241-18/+22
|
* fsade: Implement ACL detection on IllumosTavian Barnes2024-04-222-12/+21
|
* config: Check for acl_get_file()Tavian Barnes2024-04-222-8/+1
|
* fsade: Simplify BFS_CAN_CHECK_CAPABILITIESTavian Barnes2024-04-222-13/+1
|
* config: Check for acl_get_{entry,tag_type}()Tavian Barnes2024-04-221-12/+20
|
* config: Check for extattr_{get,list}_{file,link}()Tavian Barnes2024-04-222-11/+53
| | | | This lets us implement -xattr on DragonFly BSD.
* config: Check for max_align_tTavian Barnes2024-04-191-4/+15
|
* config: Check for aligned_alloc()Tavian Barnes2024-04-191-3/+3
|
* config: Check for struct stat::st_flagsTavian Barnes2024-04-191-1/+1
|
* config: Check for struct stat::st_{a,c,m,birth}{tim,timespec}Tavian Barnes2024-04-192-9/+22
|
* config: Check for struct tm::tm_gmtoffTavian Barnes2024-04-191-1/+1
|
* config: Check for fdclosedir()Tavian Barnes2024-04-192-2/+2
|
* config: Check for strerror_[lr]()Tavian Barnes2024-04-191-22/+20
|
* config: Check for pipe2()Tavian Barnes2024-04-191-1/+1
|
* config: Check for statx()Tavian Barnes2024-04-192-8/+4
|
* config: Check for acl_is_trivial_np()Tavian Barnes2024-04-191-2/+2
|
* config: Check for confstr()Tavian Barnes2024-04-191-5/+5
|
* config: Check for getdents{,64}()Tavian Barnes2024-04-192-8/+10
|
* config: Check for posix_spawn_file_actions_addfchdir{,_np}()Tavian Barnes2024-04-191-20/+6
|
* config: Check for program_invocation_short_nameTavian Barnes2024-04-192-3/+5
| | | | | | This lets us pick it up on musl too, since there's no __MUSL__ macro. Link: https://wiki.musl-libc.org/faq#Q:-Why-is-there-no-%3Ccode%3E__MUSL__%3C/code%3E-macro?
* Rename config.h to prelude.hTavian Barnes2024-04-1941-44/+44
|
* build: Directly generate version.cTavian Barnes2024-04-172-7/+0
|
* mtab: Arena-allocate struct bfs_mountTavian Barnes2024-04-171-15/+28
|