Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | bfstd: Fix printable_len() off-by-one | Tavian Barnes | 2023-09-06 | 1 | -0/+15 | |
| | | | | | | | If xmbrtowc() fails, or if xiswprint() is false, then we shouldn't include that wide char in the printable length. Fixes: 19c96abe0a1ee56cf206fd5e87defb1fd3e0daa5 | |||||
* | bfstd: Fix an OOB string index in xmbrtowc() | Tavian Barnes | 2023-09-06 | 2 | -0/+22 | |
| | | | | | | | | | | | | | | | | | | | | | | This bug could be reproduced with something like $ bfs -samefile $'\xFA\xFA' bfs: error: bfs: dstrnescat@src/dstring.c:252: wordesc() result truncated or worse, with -DNDEBUG, $ bfs -samefile $'.....................\xFA\xFA' bfs: error: bfs -samefile $'.....................\xFA\xFA\x00\x55\x53\x45\x52\x3D\x74\x61\x76\x69\x61\x6E\x61\x74\x6F\x72 bfs: error: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bfs: error: No such file or directory. which prints the memory after the end of the string (in this case, the environment variable USER=tavianator). The bug was caused by the line `*i += len`, which was intended to be `*i = len`. But actually, the right behaviour seems to be `*i += 1`. Fixes: 19c96abe0a1ee56cf206fd5e87defb1fd3e0daa5 | |||||
* | Work around https://github.com/llvm/llvm-project/issues/64946 | Tavian Barnes | 2023-08-23 | 1 | -0/+3 | |
| | ||||||
* | tests: Add missing .out file | Tavian Barnes | 2023-08-14 | 1 | -0/+0 | |
| | ||||||
* | parse: Allow -files0-from an empty set of paths | Tavian Barnes | 2023-08-14 | 1 | -1/+1 | |
| | | | | This follows a behaviour change in GNU findutils 4.9.0. | |||||
* | color: Only highlight the trailing slash on ENOTDIR | Tavian Barnes | 2023-07-13 | 2 | -5/+5 | |
| | ||||||
* | color: Don't break up leading and trailing dirs | Tavian Barnes | 2023-07-13 | 39 | -61/+63 | |
| | ||||||
* | color: TTY-escape filenames | Tavian Barnes | 2023-07-13 | 40 | -0/+78 | |
| | ||||||
* | color: Get rid of EXT_MAX | Tavian Barnes | 2023-07-13 | 2 | -0/+23 | |
| | ||||||
* | parse: Reject -j0 | Tavian Barnes | 2023-07-12 | 1 | -0/+1 | |
| | ||||||
* | tests/bfs: Add tests for -j | Tavian Barnes | 2023-07-12 | 5 | -0/+41 | |
| | ||||||
* | color: Compare values too when deciding to smart-case | Tavian Barnes | 2023-06-30 | 2 | -2/+7 | |
| | ||||||
* | color: Implement smart casing | Tavian Barnes | 2023-06-29 | 5 | -10/+12 | |
| | | | | | | | | | Since coreutils 9.2, ls does case-sensitive extension matching if the same extension is capitalized differently in $LS_COLORS. Implement the same logic. Link: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33123 Link: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9086 | |||||
* | tests/bfs/color: Add mixed-case extensions | Tavian Barnes | 2023-06-29 | 40 | -118/+315 | |
| | ||||||
* | tests: Get more tests passing with --bfs=tests/find-color.sh | Tavian Barnes | 2023-06-27 | 1 | -5/+32 | |
| | ||||||
* | tests/gnu/printf_times: Correct %T@ to %A@ | Tavian Barnes | 2023-06-22 | 1 | -1/+1 | |
| | ||||||
* | alloc: Implement an arena for flexible structs | Tavian Barnes | 2023-06-20 | 1 | -1/+13 | |
| | ||||||
* | alloc: New header for memory allocation utilities | Tavian Barnes | 2023-06-20 | 2 | -11/+26 | |
| | ||||||
* | color: `fi=0` should not fall back to `no` | Tavian Barnes | 2023-06-08 | 8 | -0/+84 | |
| | ||||||
* | tests/bfstd: Use bfs_verify() over explicit abort() | Tavian Barnes | 2023-05-19 | 1 | -14/+5 | |
| | ||||||
* | Switch from assert() to bfs_assert()/bfs_verify() | Tavian Barnes | 2023-05-18 | 3 | -86/+83 | |
| | ||||||
* | bit: Rename int.h to bit.h | Tavian Barnes | 2023-05-18 | 1 | -1/+1 | |
| | ||||||
* | config: Align after saturating in flex_sizeof() | Tavian Barnes | 2023-05-16 | 1 | -1/+2 | |
| | | | | | This ensures that it's legal to call aligned_alloc() with the result, which requires a multiple of the alignment. | |||||
* | int: Backport C23's bit utilities | Tavian Barnes | 2023-05-16 | 1 | -0/+57 | |
| | ||||||
* | int: Backport C23's endian utilities | Tavian Barnes | 2023-05-16 | 1 | -0/+10 | |
| | ||||||
* | int: Backport C23's _WIDTH macros | Tavian Barnes | 2023-05-16 | 1 | -0/+54 | |
| | ||||||
* | config: Saturate on overflow in flex_sizeof() | Tavian Barnes | 2023-05-11 | 1 | -0/+1 | |
| | ||||||
* | config: Properly align flex_sizeof() | Tavian Barnes | 2023-05-11 | 1 | -0/+13 | |
| | ||||||
* | config: Provide <stdalign.h> and <stdbool.h> | Tavian Barnes | 2023-05-11 | 2 | -2/+2 | |
| | | | | In anticipation of C23, since those headers won't be necessary any more. | |||||
* | config: s/BFS_COUNTOF/countof/ | Tavian Barnes | 2023-05-10 | 1 | -1/+1 | |
| | ||||||
* | build: Fix tsan | Tavian Barnes | 2023-04-12 | 1 | -5/+6 | |
| | ||||||
* | list: Use macros instead of type-erased lists | Tavian Barnes | 2023-03-31 | 1 | -0/+2 | |
| | ||||||
* | trie: Use list.h for the list of leaves | Tavian Barnes | 2023-03-29 | 1 | -2/+0 | |
| | ||||||
* | tests: Use close() wrappers | Tavian Barnes | 2023-01-31 | 2 | -5/+3 | |
| | ||||||
* | Replace license boilerplate with SPDX tags | Tavian Barnes | 2023-01-25 | 8 | -120/+16 | |
| | | | | | | | And while I'm at it, remove years from copyright declarations. Link: https://spdx.dev/about/ Link: https://daniel.haxx.se/blog/2023/01/08/copyright-without-years/ | |||||
* | mtab: Mitigate the race between bfs_mtab_parse() and bfs_mtab_fill_types() | Tavian Barnes | 2023-01-22 | 2 | -0/+12 | |
| | | | | Fixes #97. | |||||
* | tests/xtouch: Fix macOS build | Tavian Barnes | 2023-01-19 | 1 | -0/+1 | |
| | ||||||
* | bfstd: New wrappers for dirname()/basename() | Tavian Barnes | 2023-01-19 | 3 | -15/+65 | |
| | ||||||
* | tests: Use bfs_sudo wrapper instead of testing $SUDO | Tavian Barnes | 2022-12-29 | 13 | -51/+49 | |
| | ||||||
* | tests/bfs/printf_everything: Simplify double negation | Tavian Barnes | 2022-12-16 | 1 | -2/+2 | |
| | ||||||
* | tests: New test for -fstype on a stacked mount point | Tavian Barnes | 2022-12-16 | 2 | -0/+14 | |
| | ||||||
* | tests: Save test stderr to separate files | Tavian Barnes | 2022-12-16 | 1 | -2/+2 | |
| | ||||||
* | tests: Fail early in bfs_diff if the diff fails | Tavian Barnes | 2022-12-16 | 10 | -19/+12 | |
| | | | | Otherwise, propagate the exit code from bfs | |||||
* | tests: Print the skip reason for --verbose=skipped | Tavian Barnes | 2022-12-16 | 2 | -8/+10 | |
| | ||||||
* | tests: Turn on set -e | Tavian Barnes | 2022-12-16 | 26 | -98/+69 | |
| | ||||||
* | tests: Move crash detection into invoke_bfs, use ! instead of fail | Tavian Barnes | 2022-12-16 | 67 | -78/+72 | |
| | ||||||
* | tests: Replace skip_unless test with test || skip | Tavian Barnes | 2022-12-16 | 44 | -78/+67 | |
| | ||||||
* | tests: Fix crash when stderr is redirected | Tavian Barnes | 2022-12-14 | 1 | -1/+7 | |
| | | | | | | | | | | | | | bash uses fileno(stderr) to keep track of $COLUMNS. With stderr redirected, $COLUMNS will be unset, leading to $ ./tests/tests.sh 2> >(cat) ./tests/tests.sh: line 635: COLUMNS: unbound variable Fix it by using $(tput cols) if $COLUMNS is unset, which is almost POSIX. Link: https://www.austingroupbugs.net/view.php?id=1053 | |||||
* | tests/posix/readdir_error: Fix flakiness | Tavian Barnes | 2022-12-14 | 1 | -7/+23 | |
| | ||||||
* | tests: Add a test for readdir() errors | Tavian Barnes | 2022-12-13 | 1 | -0/+21 | |
| |