summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* config: Allow inlining allocator functionsHEADmainTavian Barnes6 hours1-1/+1
| | | | | GCC disables inlining on custom allocator/deallocator pairs, so that they can be matched up accurately in stack traces.
* tests/bsd: Add a -sparse testTavian Barnes9 hours2-0/+13
|
* tests/gnu: Add a -used testTavian Barnes9 hours2-0/+44
|
* tests/common: Add a -delete error handling testTavian Barnes10 hours2-0/+17
|
* xspawn: Fix bfs_resolve_late() error reportingTavian Barnes30 hours2-8/+25
|
* tests/xspawn: Test path resolution failureTavian Barnes30 hours1-3/+30
|
* tests/xspawn: Also test dup2()Tavian Barnes30 hours1-1/+3
|
* tests/xspawn: New unit testTavian Barnes32 hours5-2/+183
|
* tests: New bfs_pcheck() macro to report xstrerror(errno)Tavian Barnes32 hours3-3/+25
|
* xspawn: Don't use posix_spawnp() on macOSTavian Barnes32 hours1-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 Barnes32 hours1-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 Barnes32 hours2-3/+67
|
* bfstd: Escape ASCII tildesTavian Barnes2 days2-1/+3
| | | | | | | | 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 Barnes2 days2-41/+55
|
* completions: Add -jTavian Barnes3 days3-4/+7
|
* trie: Calculate representative indices branchlesslyTavian Barnes5 days1-3/+4
|
* bftw: Use a signed integer for dir_limitTavian Barnes6 days1-25/+8
|
* Fix some -Wpedantic warningsTavian Barnes6 days2-10/+8
|
* bfstd: Add an ASCII fast path to xstrwidth()Tavian Barnes7 days1-1/+10
|
* bfstd: New asciilen() functionTavian Barnes7 days3-25/+73
|
* bit: Check __BYTE_ORDER__ for the native endianTavian Barnes7 days2-2/+15
| | | | __ORDER_NATIVE_ENDIAN__ is not a thing.
* bfstd: Check that wcwidth() is positiveTavian Barnes8 days2-2/+9
| | | | | 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 Barnes8 days1-2/+4
|
* Implement -limit NTavian Barnes8 days15-3/+103
| | | | Closes: https://github.com/tavianator/bfs/issues/133
* ci: Work around https://github.com/actions/runner-images/issues/9491Tavian Barnes9 days1-0/+2
| | | | | | Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113430 Link: https://github.com/llvm/llvm-project/issues/78354 Link: https://zolutal.github.io/aslrnt/
* config: Don't mix [[attr]] and __attribute__((attr))Tavian Barnes9 days1-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-1128-32/+33
|
* tests/xtime: Add tests for integer overflowTavian Barnes2024-03-102-1/+31
|
* xtime: Call tzset() from main() instead of lazilyTavian Barnes2024-03-0710-79/+32
| | | | | | | | | | | | | 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
* tests: Change the timezone for -daystart testsTavian Barnes2024-03-072-2/+2
| | | | | | | Otherwise, if the test files are created just before midnight, and the test runs just after midnight, -daystart will consider them one day old. Fixes #132
* Release 3.1.33.1.3Tavian Barnes2024-03-063-2/+14
|
* ioq: Copy ring_ops from the previous threadTavian Barnes2024-03-061-1/+4
| | | | | | Otherwise threads 2-N won't use io_uring at all! Oops. Fixes: 8bc72d6c ("ioq: Probe for supported io_uring operations")
* eval: Tweak status bar punctuationTavian Barnes2024-03-061-1/+1
|
* tests/ioq: Check that we push and pop the same number of timesTavian Barnes2024-03-021-3/+5
|
* Release 3.1.23.1.2Tavian Barnes2024-02-293-5/+21
|
* tests: New bfs_check() macroTavian Barnes2024-02-296-234/+247
| | | | | We now report failures and continue, rather than aborting after the first failure.
* diag: New bfs_diag() macroTavian Barnes2024-02-292-3/+27
|
* tests: Add more datetime parsing integration testsTavian Barnes2024-02-292-4/+6
|
* xtime: Fix some xgetdate() bugsTavian Barnes2024-02-282-18/+117
| | | | And add some more test cases.
* stat: Use errno_is_like(ENOSYS) for EPERM kludgeTavian Barnes2024-02-282-3/+5
|
* tests/ioq: New unit testTavian Barnes2024-02-284-0/+78
|
* tests/bfs/D_opt: Don't rely on directory link countsTavian Barnes2024-02-282-12/+1
| | | | Fixes: https://github.com/tavianator/bfs/issues/131
* ioq: Probe for supported io_uring operationsTavian Barnes2024-02-281-18/+67
|
* ioq: Remove some branches from ioq_slot_{push,pop}()Tavian Barnes2024-02-181-12/+21
|
* tests: Redirect stdin in bfs_pty()Tavian Barnes2024-02-171-1/+1
| | | | Otherwise bfs will think it's interactive.
* ioq: Ensure ioq_ent is sufficiently alignedTavian Barnes2024-02-162-2/+9
| | | | | | | The natural alignment of struct ioq_ent is only 2 on m68k, so over-align it to at least 4 bytes on all platforms. Link: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=m68k&ver=3.1-1&stamp=1707699583
* Release 3.1.13.1.1Tavian Barnes2024-02-163-2/+14
|
* ioq: Add batched ioqq_push/pop operationsTavian Barnes2024-02-151-49/+127
|
* ioq: Don't push immediately in ioq_check_cancel()Tavian Barnes2024-02-151-10/+6
|
* ioq: Add a missing close() if bfs_opendir() failsTavian Barnes2024-02-151-0/+2
|