summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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
* config: Don't mix [[attr]] and __attribute__((attr))Tavian Barnes2024-03-191-6/+2
| | | | | GCC and Clang don't support combining the two attribute syntaxes in arbitrary order. For now, just use the GNU style.
* Re-run include-what-you-useTavian Barnes2024-03-1121-23/+26
|
* tests/xtime: Add tests for integer overflowTavian Barnes2024-03-101-1/+3
|
* xtime: Call tzset() from main() instead of lazilyTavian Barnes2024-03-076-66/+14
| | | | | | | | | | | | | POSIX specifies[1] that If a thread accesses tzname, daylight, or timezone directly while another thread is in a call to tzset(), or to any function that is required or allowed to set timezone information as if by calling tzset(), the behavior is undefined. So calling it lazily from arbitrary threads is risky. [1]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/tzset.html