summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2024-03-28tests/common: Add a -delete error handling testTavian Barnes
2024-03-27xspawn: Fix bfs_resolve_late() error reportingTavian Barnes
2024-03-27tests/xspawn: Test path resolution failureTavian Barnes
2024-03-27tests/xspawn: Also test dup2()Tavian Barnes
2024-03-27tests/xspawn: New unit testTavian Barnes
2024-03-27tests: New bfs_pcheck() macro to report xstrerror(errno)Tavian Barnes
2024-03-27xspawn: Don't use posix_spawnp() on macOSTavian Barnes
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
2024-03-27xspawn: Refactor $PATH resolutionTavian Barnes
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.
2024-03-27xspawn: Implement bfs_spawn_addopen()Tavian Barnes
2024-03-26bfstd: Escape ASCII tildesTavian Barnes
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
2024-03-26xtime: Don't update tm if xtimegm() overflowsTavian Barnes
2024-03-25completions: Add -jTavian Barnes
2024-03-23trie: Calculate representative indices branchlesslyTavian Barnes
2024-03-22bftw: Use a signed integer for dir_limitTavian Barnes
2024-03-22Fix some -Wpedantic warningsTavian Barnes
2024-03-21bfstd: Add an ASCII fast path to xstrwidth()Tavian Barnes
2024-03-21bfstd: New asciilen() functionTavian Barnes
2024-03-21bit: Check __BYTE_ORDER__ for the native endianTavian Barnes
__ORDER_NATIVE_ENDIAN__ is not a thing.
2024-03-20bfstd: Check that wcwidth() is positiveTavian Barnes
wcwidth() returns -1 for non-printable characters, but terminals typically don't print anything for them, so treat them as 0.
2024-03-20ioq: Fix some allocation failure pathsTavian Barnes
2024-03-20Implement -limit NTavian Barnes
Closes: https://github.com/tavianator/bfs/issues/133
2024-03-19ci: Work around https://github.com/actions/runner-images/issues/9491Tavian Barnes
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/
2024-03-19config: Don't mix [[attr]] and __attribute__((attr))Tavian Barnes
GCC and Clang don't support combining the two attribute syntaxes in arbitrary order. For now, just use the GNU style.
2024-03-11Re-run include-what-you-useTavian Barnes
2024-03-10tests/xtime: Add tests for integer overflowTavian Barnes
2024-03-07xtime: Call tzset() from main() instead of lazilyTavian Barnes
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
2024-03-07tests: Change the timezone for -daystart testsTavian Barnes
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
2024-03-06Release 3.1.33.1.3Tavian Barnes
2024-03-06ioq: Copy ring_ops from the previous threadTavian Barnes
Otherwise threads 2-N won't use io_uring at all! Oops. Fixes: 8bc72d6c ("ioq: Probe for supported io_uring operations")
2024-03-06eval: Tweak status bar punctuationTavian Barnes
2024-03-02tests/ioq: Check that we push and pop the same number of timesTavian Barnes
2024-02-29Release 3.1.23.1.2Tavian Barnes
2024-02-29tests: New bfs_check() macroTavian Barnes
We now report failures and continue, rather than aborting after the first failure.
2024-02-29diag: New bfs_diag() macroTavian Barnes
2024-02-29tests: Add more datetime parsing integration testsTavian Barnes
2024-02-28xtime: Fix some xgetdate() bugsTavian Barnes
And add some more test cases.
2024-02-28stat: Use errno_is_like(ENOSYS) for EPERM kludgeTavian Barnes
2024-02-28tests/ioq: New unit testTavian Barnes
2024-02-28tests/bfs/D_opt: Don't rely on directory link countsTavian Barnes
Fixes: https://github.com/tavianator/bfs/issues/131
2024-02-28ioq: Probe for supported io_uring operationsTavian Barnes
2024-02-18ioq: Remove some branches from ioq_slot_{push,pop}()Tavian Barnes
2024-02-17tests: Redirect stdin in bfs_pty()Tavian Barnes
Otherwise bfs will think it's interactive.
2024-02-16ioq: Ensure ioq_ent is sufficiently alignedTavian Barnes
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
2024-02-16Release 3.1.13.1.1Tavian Barnes
2024-02-15ioq: Add batched ioqq_push/pop operationsTavian Barnes
2024-02-15ioq: Don't push immediately in ioq_check_cancel()Tavian Barnes
2024-02-15ioq: Add a missing close() if bfs_opendir() failsTavian Barnes
2024-02-14ioq: Don't use the symbolic IO_WQ_[UN]BOUND indicesTavian Barnes
They are only available since liburing 2.2, which is newer than CI.
2024-02-14ioq: Factor out io_uring initializationTavian Barnes
2024-02-14ioq: Make -j also limit the io_uring worker threadsTavian Barnes