Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
| | |||||
* | build: Replace `make config` with a `./configure` script | Tavian Barnes | 2024-04-29 | 2 | -18/+6 |
| | | | | | | | | | | This lets us do more traditional out-of-tree builds like $ ../path/to/bfs/configure $ make The .mk files are moved from ./config to ./build, mostly so that ./configure will auto-complete easily. | ||||
* | eval: Plug memory leak if bfs_opendir() fails | Tavian Barnes | 2024-04-24 | 6 | -0/+10 |
| | |||||
* | config: Check for struct stat::st_{a,c,m,birth}{tim,timespec} | Tavian Barnes | 2024-04-19 | 1 | -2/+2 |
| | |||||
* | Rename config.h to prelude.h | Tavian Barnes | 2024-04-19 | 10 | -10/+10 |
| | |||||
* | tests: Add ../src to the include path | Tavian Barnes | 2024-04-19 | 11 | -36/+36 |
| | |||||
* | tests: Quiet diff | Tavian Barnes | 2024-04-16 | 1 | -2/+2 |
| | | | | | | On Solaris/Illumos, `diff` prints "No differences encountered" if the files are the same. Guard it with `cmp -s` so we get no output for passing tests. | ||||
* | tests: Move newer_link out of posix/ | Tavian Barnes | 2024-04-09 | 4 | -0/+5 |
| | | | | | | | | POSIX has clarified that it's unspecified whether -newer uses times from stat() or lstat(), because implementations vary. It does specify that it must fall back to lstat() for broken links, so test that. Link: https://austingroupbugs.net/view.php?id=1776 | ||||
* | build: Add a separate configuration step | Tavian Barnes | 2024-04-09 | 2 | -3/+9 |
| | |||||
* | tests/bsd: Add a -sparse test | Tavian Barnes | 2024-03-28 | 2 | -0/+13 |
| | |||||
* | tests/gnu: Add a -used test | Tavian Barnes | 2024-03-28 | 2 | -0/+44 |
| | |||||
* | tests/common: Add a -delete error handling test | Tavian Barnes | 2024-03-28 | 2 | -0/+17 |
| | |||||
* | xspawn: Fix bfs_resolve_late() error reporting | Tavian Barnes | 2024-03-27 | 1 | -0/+23 |
| | |||||
* | tests/xspawn: Test path resolution failure | Tavian Barnes | 2024-03-27 | 1 | -3/+30 |
| | |||||
* | tests/xspawn: Also test dup2() | Tavian Barnes | 2024-03-27 | 1 | -1/+3 |
| | |||||
* | tests/xspawn: New unit test | Tavian Barnes | 2024-03-27 | 4 | -0/+175 |
| | |||||
* | tests: New bfs_pcheck() macro to report xstrerror(errno) | Tavian Barnes | 2024-03-27 | 3 | -3/+25 |
| | |||||
* | bfstd: Escape ASCII tildes | Tavian Barnes | 2024-03-26 | 1 | -0/+2 |
| | | | | | | | | 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 | 1 | -12/+22 |
| | |||||
* | bfstd: New asciilen() function | Tavian Barnes | 2024-03-21 | 1 | -0/+15 |
| | |||||
* | bit: Check __BYTE_ORDER__ for the native endian | Tavian Barnes | 2024-03-21 | 1 | -0/+13 |
| | | | | __ORDER_NATIVE_ENDIAN__ is not a thing. | ||||
* | bfstd: Check that wcwidth() is positive | Tavian Barnes | 2024-03-20 | 1 | -0/+3 |
| | | | | | wcwidth() returns -1 for non-printable characters, but terminals typically don't print anything for them, so treat them as 0. | ||||
* | Implement -limit N | Tavian Barnes | 2024-03-20 | 6 | -0/+9 |
| | | | | Closes: https://github.com/tavianator/bfs/issues/133 |