summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* printf: Implement %ZTavian Barnes2024-04-101-0/+23
|
* Implement -contextTavian Barnes2024-04-103-62/+96
| | | | Closes: https://github.com/tavianator/bfs/issues/27
* fsade: Add libselinux wrappersTavian Barnes2024-04-102-0/+50
|
* build: Add a separate configuration stepTavian Barnes2024-04-094-6/+14
|
* xspawn: Fix $PATH resolution on NetBSD 10Tavian Barnes2024-04-091-2/+2
|
* config: Allow inlining allocator functionsTavian Barnes2024-03-281-1/+1
| | | | | GCC disables inlining on custom allocator/deallocator pairs, so that they can be matched up accurately in stack traces.
* xspawn: Fix bfs_resolve_late() error reportingTavian Barnes2024-03-271-8/+2
|
* xspawn: Don't use posix_spawnp() on macOSTavian Barnes2024-03-271-1/+33
| | | | | | | | On macOS, posix_spawnp() resolves the executable against the $PATH *before* the file_actions are applied, contrary to the upcoming POSIX wording [1] for posix_spawn_file_actions_addfchdir(). [1]: https://www.austingroupbugs.net/view.php?id=1208#c4830
* xspawn: Refactor $PATH resolutionTavian Barnes2024-03-271-81/+240
| | | | | | | | | Technically, we should be resolving executables *after* applying the file actions. It's only safe to resolve earlier if $PATH contains no relative entries, or if there are no fchdir() actions. The new implementation resolves as early as possible, deferring to posix_spawnp() if necessary for correctness.
* xspawn: Implement bfs_spawn_addopen()Tavian Barnes2024-03-272-3/+67
|
* bfstd: Escape ASCII tildesTavian Barnes2024-03-261-1/+1
| | | | | | | | The POSIX spec [1] lists some characters that may need to be escaped. Unfortunately, the document uses ˜ (U+02DC SMALL TILDE) instead of ~ (U+007E TILDE), and I copy-pasted from it. [1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02
* xtime: Don't update tm if xtimegm() overflowsTavian Barnes2024-03-261-29/+33
|
* trie: Calculate representative indices branchlesslyTavian Barnes2024-03-231-3/+4
|
* bftw: Use a signed integer for dir_limitTavian Barnes2024-03-221-25/+8
|
* Fix some -Wpedantic warningsTavian Barnes2024-03-222-10/+8
|
* bfstd: Add an ASCII fast path to xstrwidth()Tavian Barnes2024-03-211-1/+10
|
* bfstd: New asciilen() functionTavian Barnes2024-03-212-25/+58
|
* bit: Check __BYTE_ORDER__ for the native endianTavian Barnes2024-03-211-2/+2
| | | | __ORDER_NATIVE_ENDIAN__ is not a thing.
* bfstd: Check that wcwidth() is positiveTavian Barnes2024-03-201-2/+6
| | | | | wcwidth() returns -1 for non-printable characters, but terminals typically don't print anything for them, so treat them as 0.
* ioq: Fix some allocation failure pathsTavian Barnes2024-03-201-2/+4
|
* Implement -limit NTavian Barnes2024-03-204-1/+52
| | | | Closes: https://github.com/tavianator/bfs/issues/133