Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | build: Move feature test macros to prelude.h | Tavian Barnes | 2024-08-28 | 12 | -18/+4 |
| | | | | | | This replaces the explicit CPPFLAGS list in flags.mk with just `-include src/prelude.h`, shortening our compiler command lines and allowing them to be easily documented. | ||||
* | prelude: Split bfs-specific utilities into new bfs.h header | Tavian Barnes | 2024-08-28 | 13 | -7/+34 |
| | |||||
* | diag: Get rid of bfs_static_assert() | Tavian Barnes | 2024-08-28 | 1 | -31/+37 |
| | | | | | In most cases, it's not too annoying to specify a message. For tests/bit.c, we can manually polyfill the 1-argument version. | ||||
* | prelude: Define thread_local | Tavian Barnes | 2024-08-28 | 1 | -1/+0 |
| | |||||
* | eval: Don't warn about suppressed errors without -noerror | Tavian Barnes | 2024-08-19 | 1 | -0/+2 |
| | |||||
* | tests/bfs: Add -noerror tests | Tavian Barnes | 2024-08-19 | 7 | -0/+21 |
| | |||||
* | xtime: Remove xgettime() | Tavian Barnes | 2024-08-09 | 1 | -2/+2 |
| | | | | clock_gettime() is available everywhere by now. | ||||
* | parse: Take umask into account in parse_mode() | Tavian Barnes | 2024-08-02 | 4 | -2/+21 |
| | | | | | | | POSIX 2024 clarified that find(1) is meant to work exactly like chmod(1) here, so for modes like +rw,-x with no "who" specified, apply the umask. Link: https://www.austingroupbugs.net/view.php?id=1392 | ||||
* | tests: Add more files to perms/ | Tavian Barnes | 2024-08-02 | 22 | -103/+333 |
| | |||||
* | tests: Make some more variables local | Tavian Barnes | 2024-08-01 | 1 | -2/+4 |
| | |||||
* | tests: Fix line number reported when wait -n fails | Tavian Barnes | 2024-08-01 | 1 | -2/+3 |
| | |||||
* | tests: Add tests for invalid users/groups | Tavian Barnes | 2024-07-27 | 28 | -0/+8 |
| | |||||
* | tests: Make more tests POSIX-compliant | Tavian Barnes | 2024-07-23 | 10 | -10/+10 |
| | |||||
* | tests/common: Add some missing paths | Tavian Barnes | 2024-07-23 | 4 | -4/+4 |
| | |||||
* | Implement POSIX 2024's -mount | Tavian Barnes | 2024-07-08 | 5 | -6/+2 |
| | | | | | | This reverts commit 4f80c17192f2b28c96a489969d4435151d68d0ce. Link: https://www.austingroupbugs.net/view.php?id=1133 | ||||
* | tests: -print0 is in POSIX 2024 | Tavian Barnes | 2024-07-08 | 2 | -0/+0 |
| | | | | Link: https://www.austingroupbugs.net/view.php?id=243 | ||||
* | tests: -iname is in POSIX 2024 | Tavian Barnes | 2024-07-08 | 3 | -2/+1 |
| | | | | Link: https://www.austingroupbugs.net/view.php?id=1031 | ||||
* | tests: Simplify unit tests with a global variable | Tavian Barnes | 2024-07-07 | 11 | -324/+263 |
| | | | | | It's a little awkward to thread the test result through manually; much easier to just make bfs_check() update a global variable. | ||||
* | sighook: Replace sigtables with RCU-protected linked lists | Tavian Barnes | 2024-07-07 | 1 | -34/+60 |
| | | | | | | | | This fixes an ABA problem where sigdispatch() could think no handlers are registered for a signal even when there are. Link: https://unix.stackexchange.com/a/779594/56202 Fixes: 375caac ("sighook: New utilities for hooking signals") | ||||
* | tests/bfs: New case-sensitivity ordering test | Tavian Barnes | 2024-07-03 | 2 | -0/+28 |
| | |||||
* | color: Delay the case_sensitive decision | Tavian Barnes | 2024-07-02 | 2 | -0/+28 |
| | |||||
* | xspawn: Check X_OK even without $PATH resolution | Tavian Barnes | 2024-06-08 | 1 | -0/+2 |
| | | | | | | | | | | Not all posix_spawn() implementations use errno to report execv() failures from the child process, as that requires either a kernel posix_spawn() implementation or a pipe to pass the error back. This should fix tests/posix/exec_nonexistent on OpenBSD and HPPA. Link: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=hppa&ver=3.3.1-1&stamp=1717489148&raw=0 | ||||
* | tests: Do chmod +rwX in clean_stddirs() | Tavian Barnes | 2024-06-08 | 1 | -0/+1 |
| | |||||
* | build: Add -Wmissing-variable-declarations | Tavian Barnes | 2024-06-08 | 1 | -2/+2 |
| | |||||
* | tests: Improve color case insensitivity coverage | Tavian Barnes | 2024-06-05 | 2 | -6/+6 |
| | |||||
* | tests: New inaccessible/ directory tree for permission errors | Tavian Barnes | 2024-06-04 | 9 | -38/+18 |
| | |||||
* | tests: Add directories with different permissions to perms/ | Tavian Barnes | 2024-06-04 | 20 | -80/+103 |
| | |||||
* | tests/common: Add tests for -[am]{min,time} | Tavian Barnes | 2024-06-04 | 8 | -0/+84 |
| | |||||
* | xtime: Add support for @epochseconds timestamps | Tavian Barnes | 2024-06-04 | 2 | -25/+12 |
| | |||||
* | Merge branch 'revert-eloop' | Tavian Barnes | 2024-06-03 | 4 | -2/+4 |
|\ | |||||
| * | Make ELOOP an error again, except for -xtype.3.3.1 | Tavian Barnes | 2024-06-03 | 4 | -2/+4 |
| | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | | parse: Allow -Darg/-Sarg as well as -D arg / -S arg | Tavian Barnes | 2024-06-03 | 6 | -0/+59 |
| | | |||||
* | | parse: Handle multiple flags at once like -LEXO2 | Tavian Barnes | 2024-06-03 | 11 | -0/+43 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | | list: New SLIST_SPLICE() macro | Tavian Barnes | 2024-05-31 | 3 | -0/+101 |
| | | |||||
* | | bit: Update to match C23 | Tavian Barnes | 2024-05-29 | 1 | -18/+18 |
|/ | | | | | | | | | | 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 | 12 | -0/+27 |
| | | | | Closes: https://github.com/tavianator/bfs/issues/21 | ||||
* | tests: Add some more weird names | Tavian Barnes | 2024-05-28 | 9 | -0/+67 |
| | |||||
* | xregex: Support non-capturing groups with -regextype emacs | Tavian Barnes | 2024-05-27 | 1 | -1/+1 |
| | | | | | Link: https://savannah.gnu.org/bugs/index.php?65770 Link: https://github.com/kkos/oniguruma/issues/296 | ||||
* | bfstd: Treat ELOOP like ENOENT | Tavian Barnes | 2024-05-27 | 4 | -1/+23 |
| | | | | | | | 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 | ||||
* | tests/posix: Add a test for -prune with EACCESS | Tavian Barnes | 2024-05-27 | 2 | -0/+9 |
| | | | | Link: https://savannah.gnu.org/bugs/?60207 | ||||
* | tests: Make diff listen to $NO_COLOR | Tavian Barnes | 2024-05-24 | 1 | -2/+2 |
| | |||||
* | tests: Make hide_bar actually hide the bar | Tavian Barnes | 2024-05-22 | 2 | -1/+15 |
| | |||||
* | tests: Print progress outside the scroll region | Tavian Barnes | 2024-05-22 | 3 | -44/+132 |
| | |||||
* | tests: Restart wait when interrupted by a signal | Tavian Barnes | 2024-05-22 | 1 | -6/+15 |
| | |||||
* | Stop using %m | Tavian Barnes | 2024-05-20 | 1 | -1/+2 |
| | |||||
* | printf: The ' ' (space) flag must be numeric | Tavian Barnes | 2024-05-19 | 2 | -1/+2 |
| | |||||
* | Cast AT_FDCWD to int for comparisons | Tavian Barnes | 2024-05-17 | 1 | -1/+1 |
| | | | | | 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 | 7 | -50/+42 |
| | |||||
* | sighook: New utilities for hooking signals | Tavian Barnes | 2024-05-16 | 3 | -0/+101 |
| | | | | This allows multiple hooks to be installed for a single signal. | ||||
* | xtime: Use the libc's timegm() if present | Tavian Barnes | 2024-05-06 | 1 | -4/+8 |
| |