Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Embed more configuration info in bfs --version | Tavian Barnes | 2024-06-08 | 4 | -1/+45 | |
| | ||||||
* | sighook: Shard the signal table | Tavian Barnes | 2024-06-07 | 1 | -7/+24 | |
| | ||||||
* | sighook: Ignore sigaction() errors in atsigexit() | Tavian Barnes | 2024-06-07 | 1 | -10/+6 | |
| | | | | This fixes bfs under Valgrind, which reserves SIGRTMAX for its own use. | |||||
* | atomic: Fix RISC-V build with GCC < 14 | Tavian Barnes | 2024-06-06 | 1 | -1/+1 | |
| | | | | | | | | | | | | Prior to GCC 14.1, the __builtin_riscv_pause() can cause an error if the appropriate extension is not enabled in -march: /tmp/ccR1L1lA.s: Assembler messages: /tmp/ccR1L1lA.s:670: Error: unrecognized opcode `pause', extension `zihintpause' required Link: https://gcc.gnu.org/pipermail/gcc-patches/2023-August/626748.html Link: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c2d04dd659c499d8df19f68d0602ad4c7d7065c2 Link: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=riscv64&ver=3.3.1-1&stamp=1717488400&raw=0 | |||||
* | Minor formatting fixes | Tavian Barnes | 2024-06-06 | 2 | -22/+22 | |
| | ||||||
* | parse: Remove some unnecessary saving/restoring of errno | Tavian Barnes | 2024-06-05 | 1 | -14/+0 | |
| | ||||||
* | Replace some switch-case lookups with arrays | Tavian Barnes | 2024-06-05 | 3 | -83/+45 | |
| | ||||||
* | xtime: Add support for @epochseconds timestamps | Tavian Barnes | 2024-06-04 | 1 | -0/+18 | |
| | ||||||
* | bfstd: New xstrtoll() wrapper | Tavian Barnes | 2024-06-04 | 3 | -15/+48 | |
| | ||||||
* | Merge branch 'revert-eloop' | Tavian Barnes | 2024-06-03 | 2 | -1/+8 | |
|\ | ||||||
| * | Make ELOOP an error again, except for -xtype.3.3.1 | Tavian Barnes | 2024-06-03 | 2 | -1/+8 | |
| | | | | | | | | | | | | | | | | | | | | POSIX requires an error if (for example) -L encounters a symlink loop. The GNU find change was restricted to -xtype, so add a manual ELOOP test to eval_xtype() for compatibility. This reverts commit 470589cbd9ca3e73d8c01ac3a96cbc065179dcc5. Link: https://savannah.gnu.org/bugs/?19605 | |||||
* | | eval: Fix -D stat printed return value | Tavian Barnes | 2024-06-03 | 1 | -1/+1 | |
| | | ||||||
* | | parse: Allow -Darg/-Sarg as well as -D arg / -S arg | Tavian Barnes | 2024-06-03 | 1 | -12/+20 | |
| | | ||||||
* | | parse: Handle multiple flags at once like -LEXO2 | Tavian Barnes | 2024-06-03 | 1 | -26/+138 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The POSIX Utility Syntax Guidelines specify that flag groups like -HL should be handled like -H -L. GNU find doesn't support grouping flags in this way, but BSD find does. To avoid conflicts with non-flag primaries, for now we require at least one flag in a group to be a capital letter. That is, we support things like -Lds but not -ds. We also do not support -fPATH (without a space) as it would conflict with -follow, -fprint, etc. It is impossible to be compatible with both GNU and BSD find here: user@gnu$ find -follow link link/file ... user@bsd$ find -follow find: ollow: No such file or directory Link: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html | |||||
* | | sighook: Check that atomic size_t is lock-free | Tavian Barnes | 2024-06-03 | 1 | -0/+4 | |
| | | ||||||
* | | list: New SLIST_SPLICE() macro | Tavian Barnes | 2024-05-31 | 2 | -5/+21 | |
| | | ||||||
* | | trie: Don't pass a bitfield directly to has_single_bit() | Tavian Barnes | 2024-05-30 | 1 | -1/+1 | |
| | | ||||||
* | | bit: Use <stdbit.h> if it exists, even without -std=c23 | Tavian Barnes | 2024-05-29 | 2 | -3/+7 | |
| | | | | | | | | glibc added an implementation in 2.39. | |||||
* | | bit: Update to match C23 | Tavian Barnes | 2024-05-29 | 1 | -51/+45 | |
|/ | | | | | | | | | | Based on the latest C23 draft (N3220): - Argument types to generic bit functions should be unsigned - Bit functions return unsigned int - Byte-swapping functions (stdc_memreverse8*()) weren't added - stdc_rotate_{left,right}() weren't added - first_leading_*() counts from the *left* | |||||
* | Implement the remaining regex types | Tavian Barnes | 2024-05-28 | 3 | -6/+71 | |
| | | | | Closes: https://github.com/tavianator/bfs/issues/21 | |||||
* | xregex: Support non-capturing groups with -regextype emacs | Tavian Barnes | 2024-05-27 | 1 | -1/+7 | |
| | | | | | Link: https://savannah.gnu.org/bugs/index.php?65770 Link: https://github.com/kkos/oniguruma/issues/296 | |||||
* | eval: Don't turn on NOKERNINFO | Tavian Barnes | 2024-05-27 | 1 | -95/+8 | |
| | | | | | Other utilities on FreeBSD like dd, sleep, etc. that respond to SIGINFO still print the kernel info line too. | |||||
* | eval: Use a flag instead of a counter for SIGINFO | Tavian Barnes | 2024-05-27 | 1 | -16/+13 | |
| | ||||||
* | bfstd: Treat ELOOP like ENOENT | Tavian Barnes | 2024-05-27 | 2 | -2/+2 | |
| | | | | | | | GNU findutils just made the same change, so looping symlinks will be considered broken rather than a hard error. Link: https://savannah.gnu.org/bugs/?51926 | |||||
* | eval: Print more information on filesystem loops | Tavian Barnes | 2024-05-27 | 3 | -3/+17 | |
| | ||||||
* | eval: Show/hide the bar on SIGINFO/SIGUSR1 | Tavian Barnes | 2024-05-25 | 1 | -1/+125 | |
| | ||||||
* | bfstd: New helper for open(ctermid()) | Tavian Barnes | 2024-05-25 | 3 | -8/+21 | |
| | ||||||
* | sighook: Allow sigunhook(NULL) | Tavian Barnes | 2024-05-25 | 2 | -3/+5 | |
| | ||||||
* | configure: Use --with/--without for libraries | Tavian Barnes | 2024-05-24 | 5 | -25/+25 | |
| | ||||||
* | opt: Don't raise RLIMIT_NOFILE if it would prevent using posix_spawn() | Tavian Barnes | 2024-05-23 | 4 | -0/+22 | |
| | | | | | | | | | | If we raise RLIMIT_NOFILE, we have to lower it before calling exec() for compatibility with select(). If posix_spawn() doesn't support that, we fall back to fork(), which is quite a bit slower. Therefore, if we're going to exec() on most files, it's better to keep RLIMIT_NOFILE the same to avoid the fork() cost, even though it makes bftw() somewhat slower. | |||||
* | opt: true is true with probability 1, not 0 | Tavian Barnes | 2024-05-23 | 1 | -1/+1 | |
| | ||||||
* | opt: Implement a general estimate_odds() function | Tavian Barnes | 2024-05-23 | 1 | -9/+17 | |
| | ||||||
* | expr: New for_expr macro | Tavian Barnes | 2024-05-23 | 6 | -14/+20 | |
| | ||||||
* | prelude: Remove max_align_t polyfill | Tavian Barnes | 2024-05-20 | 1 | -15/+0 | |
| | | | | | | This has been fixed in Cosmopolitan. Link: https://github.com/jart/cosmopolitan/issues/944 | |||||
* | trie: Add some more target_clones wrappers | Tavian Barnes | 2024-05-20 | 1 | -2/+12 | |
| | ||||||
* | prelude: Make sure to grab __GLIBC__ | Tavian Barnes | 2024-05-20 | 1 | -1/+2 | |
| | ||||||
* | Stop using %m | Tavian Barnes | 2024-05-20 | 9 | -51/+32 | |
| | ||||||
* | printf: The ' ' (space) flag must be numeric | Tavian Barnes | 2024-05-19 | 1 | -1/+1 | |
| | ||||||
* | dir: Use posix_getdents() on all platforms | Tavian Barnes | 2024-05-17 | 1 | -2/+6 | |
| | ||||||
* | dir: Add support for posix_getdents() | Tavian Barnes | 2024-05-17 | 1 | -4/+12 | |
| | | | | | | | | This will be added to the next POSIX standard, and is already implemented in musl. Link: https://www.austingroupbugs.net/view.php?id=697 Link: https://git.musl-libc.org/cgit/musl/commit/?id=1b0d48517f816e98f19111df82f32bfc1608ecec | |||||
* | Cast AT_FDCWD to int for comparisons | Tavian Barnes | 2024-05-17 | 5 | -7/+7 | |
| | | | | | Some platforms define AT_FDCWD to a constant like 0xFFFAFDCD that gets typed as an unsigned int. | |||||
* | diag: New helpers to include xstrerror(errno) automatically | Tavian Barnes | 2024-05-17 | 5 | -6/+51 | |
| | ||||||
* | stat: Support __st_birthtim on OpenBSD | Tavian Barnes | 2024-05-16 | 1 | -0/+3 | |
| | ||||||
* | Work around https://github.com/llvm/llvm-project/issues/88163 | Tavian Barnes | 2024-05-16 | 4 | -3/+24 | |
| | ||||||
* | ctx: Try to reset TTY state when terminating abnormally | Tavian Barnes | 2024-05-16 | 3 | -51/+105 | |
| | | | | Fixes: https://github.com/tavianator/bfs/issues/138 | |||||
* | bar: Use atsigexit() to reset the bar | Tavian Barnes | 2024-05-16 | 1 | -132/+47 | |
| | ||||||
* | sighook: New utilities for hooking signals | Tavian Barnes | 2024-05-16 | 3 | -0/+674 | |
| | | | | This allows multiple hooks to be installed for a single signal. | |||||
* | atomic: Add a spin_loop() hint | Tavian Barnes | 2024-05-15 | 1 | -0/+14 | |
| | ||||||
* | atomic: Add atomic_{thread,signal}_fence() wrappers | Tavian Barnes | 2024-05-15 | 1 | -0/+19 | |
| | ||||||
* | xspawn: Mask signals before fork() | Tavian Barnes | 2024-05-15 | 1 | -8/+29 | |
| | | | | This prevents signal handlers from running in the child before execve(). |