Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | xspawn: Don't use posix_spawnp() on macOS | Tavian Barnes | 2024-03-27 | 1 | -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 resolution | Tavian Barnes | 2024-03-27 | 1 | -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 Barnes | 2024-03-27 | 2 | -3/+67 | |
| | ||||||
* | bfstd: Escape ASCII tildes | Tavian Barnes | 2024-03-26 | 2 | -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() overflows | Tavian Barnes | 2024-03-26 | 2 | -41/+55 | |
| | ||||||
* | completions: Add -j | Tavian Barnes | 2024-03-25 | 3 | -4/+7 | |
| | ||||||
* | trie: Calculate representative indices branchlessly | Tavian Barnes | 2024-03-23 | 1 | -3/+4 | |
| | ||||||
* | bftw: Use a signed integer for dir_limit | Tavian Barnes | 2024-03-22 | 1 | -25/+8 | |
| | ||||||
* | Fix some -Wpedantic warnings | Tavian Barnes | 2024-03-22 | 2 | -10/+8 | |
| | ||||||
* | bfstd: Add an ASCII fast path to xstrwidth() | Tavian Barnes | 2024-03-21 | 1 | -1/+10 | |
| | ||||||
* | bfstd: New asciilen() function | Tavian Barnes | 2024-03-21 | 3 | -25/+73 | |
| | ||||||
* | bit: Check __BYTE_ORDER__ for the native endian | Tavian Barnes | 2024-03-21 | 2 | -2/+15 | |
| | | | | __ORDER_NATIVE_ENDIAN__ is not a thing. | |||||
* | bfstd: Check that wcwidth() is positive | Tavian Barnes | 2024-03-20 | 2 | -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 paths | Tavian Barnes | 2024-03-20 | 1 | -2/+4 | |
| | ||||||
* | Implement -limit N | Tavian Barnes | 2024-03-20 | 15 | -3/+103 | |
| | | | | Closes: https://github.com/tavianator/bfs/issues/133 | |||||
* | ci: Work around https://github.com/actions/runner-images/issues/9491 | Tavian Barnes | 2024-03-19 | 1 | -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 Barnes | 2024-03-19 | 1 | -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-use | Tavian Barnes | 2024-03-11 | 28 | -32/+33 | |
| | ||||||
* | tests/xtime: Add tests for integer overflow | Tavian Barnes | 2024-03-10 | 2 | -1/+31 | |
| | ||||||
* | xtime: Call tzset() from main() instead of lazily | Tavian Barnes | 2024-03-07 | 10 | -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 tests | Tavian Barnes | 2024-03-07 | 2 | -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.3 | Tavian Barnes | 2024-03-06 | 3 | -2/+14 | |
| | ||||||
* | ioq: Copy ring_ops from the previous thread | Tavian Barnes | 2024-03-06 | 1 | -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 punctuation | Tavian Barnes | 2024-03-06 | 1 | -1/+1 | |
| | ||||||
* | tests/ioq: Check that we push and pop the same number of times | Tavian Barnes | 2024-03-02 | 1 | -3/+5 | |
| | ||||||
* | Release 3.1.23.1.2 | Tavian Barnes | 2024-02-29 | 3 | -5/+21 | |
| | ||||||
* | tests: New bfs_check() macro | Tavian Barnes | 2024-02-29 | 6 | -234/+247 | |
| | | | | | We now report failures and continue, rather than aborting after the first failure. | |||||
* | diag: New bfs_diag() macro | Tavian Barnes | 2024-02-29 | 2 | -3/+27 | |
| | ||||||
* | tests: Add more datetime parsing integration tests | Tavian Barnes | 2024-02-29 | 2 | -4/+6 | |
| | ||||||
* | xtime: Fix some xgetdate() bugs | Tavian Barnes | 2024-02-28 | 2 | -18/+117 | |
| | | | | And add some more test cases. | |||||
* | stat: Use errno_is_like(ENOSYS) for EPERM kludge | Tavian Barnes | 2024-02-28 | 2 | -3/+5 | |
| | ||||||
* | tests/ioq: New unit test | Tavian Barnes | 2024-02-28 | 4 | -0/+78 | |
| | ||||||
* | tests/bfs/D_opt: Don't rely on directory link counts | Tavian Barnes | 2024-02-28 | 2 | -12/+1 | |
| | | | | Fixes: https://github.com/tavianator/bfs/issues/131 | |||||
* | ioq: Probe for supported io_uring operations | Tavian Barnes | 2024-02-28 | 1 | -18/+67 | |
| | ||||||
* | ioq: Remove some branches from ioq_slot_{push,pop}() | Tavian Barnes | 2024-02-18 | 1 | -12/+21 | |
| | ||||||
* | tests: Redirect stdin in bfs_pty() | Tavian Barnes | 2024-02-17 | 1 | -1/+1 | |
| | | | | Otherwise bfs will think it's interactive. | |||||
* | ioq: Ensure ioq_ent is sufficiently aligned | Tavian Barnes | 2024-02-16 | 2 | -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.1 | Tavian Barnes | 2024-02-16 | 3 | -2/+14 | |
| | ||||||
* | ioq: Add batched ioqq_push/pop operations | Tavian Barnes | 2024-02-15 | 1 | -49/+127 | |
| | ||||||
* | ioq: Don't push immediately in ioq_check_cancel() | Tavian Barnes | 2024-02-15 | 1 | -10/+6 | |
| | ||||||
* | ioq: Add a missing close() if bfs_opendir() fails | Tavian Barnes | 2024-02-15 | 1 | -0/+2 | |
| | ||||||
* | ioq: Don't use the symbolic IO_WQ_[UN]BOUND indices | Tavian Barnes | 2024-02-14 | 1 | -2/+2 | |
| | | | | They are only available since liburing 2.2, which is newer than CI. | |||||
* | ioq: Factor out io_uring initialization | Tavian Barnes | 2024-02-14 | 1 | -37/+73 | |
| | ||||||
* | ioq: Make -j also limit the io_uring worker threads | Tavian Barnes | 2024-02-14 | 1 | -0/+9 | |
| | ||||||
* | ioq: Replay IOQ_STOP messages rather than spam them | Tavian Barnes | 2024-02-14 | 1 | -4/+5 | |
| | ||||||
* | ioq: Pack ioq_ent args structs | Tavian Barnes | 2024-02-14 | 1 | -3/+3 | |
| | ||||||
* | bftw: Document which bftw_file nodes go with which lists | Tavian Barnes | 2024-02-14 | 1 | -3/+17 | |
| | ||||||
* | expr: Pack struct bfs_expr a bit | Tavian Barnes | 2024-02-14 | 1 | -15/+9 | |
| | ||||||
* | stat: Pack struct bfs_stat a bit | Tavian Barnes | 2024-02-14 | 2 | -28/+24 | |
| | ||||||
* | eval: Add thousands separators to -status | Tavian Barnes | 2024-02-12 | 1 | -2/+2 | |
| |