Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | dir: Add support for posix_getdents() | Tavian Barnes | 2024-05-17 | 1 | -4/+12 | |
| | | | | | | | | 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 comparisons | Tavian Barnes | 2024-05-17 | 5 | -7/+7 | |
| | | | | | Some platforms define AT_FDCWD to a constant like 0xFFFAFDCD that gets typed as an unsigned int. | |||||
* | diag: New helpers to include xstrerror(errno) automatically | Tavian Barnes | 2024-05-17 | 5 | -6/+51 | |
| | ||||||
* | stat: Support __st_birthtim on OpenBSD | Tavian Barnes | 2024-05-16 | 1 | -0/+3 | |
| | ||||||
* | Work around https://github.com/llvm/llvm-project/issues/88163 | Tavian Barnes | 2024-05-16 | 4 | -3/+24 | |
| | ||||||
* | ctx: Try to reset TTY state when terminating abnormally | Tavian Barnes | 2024-05-16 | 3 | -51/+105 | |
| | | | | Fixes: https://github.com/tavianator/bfs/issues/138 | |||||
* | bar: Use atsigexit() to reset the bar | Tavian Barnes | 2024-05-16 | 1 | -132/+47 | |
| | ||||||
* | sighook: New utilities for hooking signals | Tavian Barnes | 2024-05-16 | 3 | -0/+674 | |
| | | | | This allows multiple hooks to be installed for a single signal. | |||||
* | atomic: Add a spin_loop() hint | Tavian Barnes | 2024-05-15 | 1 | -0/+14 | |
| | ||||||
* | atomic: Add atomic_{thread,signal}_fence() wrappers | Tavian Barnes | 2024-05-15 | 1 | -0/+19 | |
| | ||||||
* | xspawn: Mask signals before fork() | Tavian Barnes | 2024-05-15 | 1 | -8/+29 | |
| | | | | This prevents signal handlers from running in the child before execve(). | |||||
* | bar: Make SIGWINCH move the cursor out of the bar | Tavian Barnes | 2024-05-15 | 1 | -23/+16 | |
| | ||||||
* | bar: Defend bfs_bar::fd against signal handler races | Tavian Barnes | 2024-05-09 | 1 | -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 Barnes | 2024-05-08 | 2 | -4/+4 | |
| | ||||||
* | prelude: Kill #include <sys/param.h> | Tavian Barnes | 2024-05-07 | 1 | -7/+0 | |
| | | | | We don't check for `BSD` anymore. | |||||
* | build: Check for 1- and 2-argument getmntent() variants | Tavian Barnes | 2024-05-07 | 1 | -2/+2 | |
| | ||||||
* | build: Add a check for getmntinfo() | Tavian Barnes | 2024-05-07 | 1 | -2/+1 | |
| | ||||||
* | mtab: Fix getmntinfo() error check | Tavian Barnes | 2024-05-07 | 1 | -1/+1 | |
| | | | | The man pages all say "if an error occurs, zero is returned" | |||||
* | build: Add checks for strtofflags() and string_to_flags() | Tavian Barnes | 2024-05-07 | 1 | -7/+9 | |
| | ||||||
* | prelude: Remove unused __GLIBC_PREREQ() polyfill | Tavian Barnes | 2024-05-07 | 1 | -4/+0 | |
| | ||||||
* | stat: Remove __GNU__ guard | Tavian Barnes | 2024-05-07 | 1 | -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 Barnes | 2024-05-07 | 1 | -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__() polyfill | Tavian Barnes | 2024-05-07 | 1 | -4/+0 | |
| | ||||||
* | xtime: Don't use timegm() on FreeBSD+msan | Tavian Barnes | 2024-05-06 | 1 | -1/+3 | |
| | ||||||
* | xtime: Use the libc's timegm() if present | Tavian Barnes | 2024-05-06 | 1 | -3/+33 | |
| | ||||||
* | config: Add BFS_USE_LIB* to config.h instead of CPPFLAGS | Tavian Barnes | 2024-04-25 | 1 | -0/+1 | |
| | ||||||
* | ioq: Fix uninitialized values in ioq_create() cleanup path | Tavian Barnes | 2024-04-24 | 1 | -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 carefully | Tavian Barnes | 2024-04-24 | 2 | -41/+48 | |
| | ||||||
* | printf: Refactor %y/%Y implementation | Tavian Barnes | 2024-04-24 | 3 | -59/+53 | |
| | ||||||
* | ctx: Escape paths when reporting errors in bfs_ctx_free() | Tavian Barnes | 2024-04-24 | 1 | -1/+1 | |
| | ||||||
* | opt: Add missing NULL check in visit_shallow() | Tavian Barnes | 2024-04-24 | 1 | -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 path | Tavian Barnes | 2024-04-24 | 1 | -0/+1 | |
| | ||||||
* | eval: Plug memory leak if bfs_opendir() fails | Tavian Barnes | 2024-04-24 | 1 | -18/+22 | |
| | ||||||
* | fsade: Implement ACL detection on Illumos | Tavian Barnes | 2024-04-22 | 2 | -12/+21 | |
| | ||||||
* | config: Check for acl_get_file() | Tavian Barnes | 2024-04-22 | 2 | -8/+1 | |
| | ||||||
* | fsade: Simplify BFS_CAN_CHECK_CAPABILITIES | Tavian Barnes | 2024-04-22 | 2 | -13/+1 | |
| | ||||||
* | config: Check for acl_get_{entry,tag_type}() | Tavian Barnes | 2024-04-22 | 1 | -12/+20 | |
| | ||||||
* | config: Check for extattr_{get,list}_{file,link}() | Tavian Barnes | 2024-04-22 | 2 | -11/+53 | |
| | | | | This lets us implement -xattr on DragonFly BSD. | |||||
* | config: Check for max_align_t | Tavian Barnes | 2024-04-19 | 1 | -4/+15 | |
| | ||||||
* | config: Check for aligned_alloc() | Tavian Barnes | 2024-04-19 | 1 | -3/+3 | |
| | ||||||
* | config: Check for struct stat::st_flags | Tavian Barnes | 2024-04-19 | 1 | -1/+1 | |
| | ||||||
* | config: Check for struct stat::st_{a,c,m,birth}{tim,timespec} | Tavian Barnes | 2024-04-19 | 2 | -9/+22 | |
| | ||||||
* | config: Check for struct tm::tm_gmtoff | Tavian Barnes | 2024-04-19 | 1 | -1/+1 | |
| | ||||||
* | config: Check for fdclosedir() | Tavian Barnes | 2024-04-19 | 2 | -2/+2 | |
| | ||||||
* | config: Check for strerror_[lr]() | Tavian Barnes | 2024-04-19 | 1 | -22/+20 | |
| | ||||||
* | config: Check for pipe2() | Tavian Barnes | 2024-04-19 | 1 | -1/+1 | |
| | ||||||
* | config: Check for statx() | Tavian Barnes | 2024-04-19 | 2 | -8/+4 | |
| | ||||||
* | config: Check for acl_is_trivial_np() | Tavian Barnes | 2024-04-19 | 1 | -2/+2 | |
| | ||||||
* | config: Check for confstr() | Tavian Barnes | 2024-04-19 | 1 | -5/+5 | |
| | ||||||
* | config: Check for getdents{,64}() | Tavian Barnes | 2024-04-19 | 2 | -8/+10 | |
| |