Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | prelude: Split bfs-specific utilities into new bfs.h header | Tavian Barnes | 2024-08-28 | 1 | -0/+3 |
| | |||||
* | docs: Document the new -mount vs. -xdev behaviour | Tavian Barnes | 2024-08-16 | 1 | -2/+1 |
| | | | | Fixes: 33b85e1 ("Implement POSIX 2024's -mount") | ||||
* | New -noerror option to suppress error messages | Tavian Barnes | 2024-08-16 | 1 | -0/+11 |
| | | | | Closes: https://github.com/tavianator/bfs/issues/142 | ||||
* | expr: Tell expressions what kind of expression they are | Tavian Barnes | 2024-08-15 | 1 | -188/+161 |
| | |||||
* | Default to no for "Do you want to continue?" prompts | Tavian Barnes | 2024-08-13 | 1 | -1/+1 |
| | |||||
* | opt: Warn about ignored expressions after dangerous actions | Tavian Barnes | 2024-08-12 | 1 | -11/+23 |
| | | | | | | For example, `bfs -delete -type f` is almost certainly a mistake. Link: https://savannah.gnu.org/bugs/?65895 | ||||
* | prelude: s/fallthru/_fallthrough/ for consistency with other attributes | Tavian Barnes | 2024-08-09 | 1 | -9/+9 |
| | |||||
* | parse: Take umask into account in parse_mode() | Tavian Barnes | 2024-08-02 | 1 | -8/+15 |
| | | | | | | | 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 | ||||
* | parse: Fix names in parse_mode() | Tavian Barnes | 2024-08-02 | 1 | -14/+14 |
| | | | | | | | Commit 9c6e4ce ("parse: s/parser_state/bfs_parser/") was a little to overzealous in replacing "state" with "parser", resulting in the tortured phrase "parser machine parser" instead of "state machine state". | ||||
* | Update opengroup.org links to POSIX 2024 | Tavian Barnes | 2024-08-02 | 1 | -1/+1 |
| | |||||
* | prelude: Simplify attributes | Tavian Barnes | 2024-07-28 | 1 | -7/+7 |
| | |||||
* | Implement POSIX 2024's -mount | Tavian Barnes | 2024-07-08 | 1 | -4/+1 |
| | | | | | | This reverts commit 4f80c17192f2b28c96a489969d4435151d68d0ce. Link: https://www.austingroupbugs.net/view.php?id=1133 | ||||
* | build: Rename CONFIG to CONFFLAGS | Tavian Barnes | 2024-06-18 | 1 | -6/+6 |
| | |||||
* | build: Include CC in bfs --version output | Tavian Barnes | 2024-06-13 | 1 | -0/+1 |
| | |||||
* | Embed more configuration info in bfs --version | Tavian Barnes | 2024-06-08 | 1 | -1/+10 |
| | |||||
* | parse: Remove some unnecessary saving/restoring of errno | Tavian Barnes | 2024-06-05 | 1 | -14/+0 |
| | |||||
* | bfstd: New xstrtoll() wrapper | Tavian Barnes | 2024-06-04 | 1 | -15/+2 |
| | |||||
* | 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 | ||||
* | Implement the remaining regex types | Tavian Barnes | 2024-05-28 | 1 | -6/+26 |
| | | | | Closes: https://github.com/tavianator/bfs/issues/21 | ||||
* | configure: Use --with/--without for libraries | Tavian Barnes | 2024-05-24 | 1 | -2/+2 |
| | |||||
* | expr: New for_expr macro | Tavian Barnes | 2024-05-23 | 1 | -1/+1 |
| | |||||
* | Stop using %m | Tavian Barnes | 2024-05-20 | 1 | -7/+7 |
| | |||||
* | config: Check for struct tm::tm_gmtoff | Tavian Barnes | 2024-04-19 | 1 | -1/+1 |
| | |||||
* | Rename config.h to prelude.h | Tavian Barnes | 2024-04-19 | 1 | -1/+1 |
| | |||||
* | Implement -context | Tavian Barnes | 2024-04-10 | 1 | -48/+66 |
| | | | | Closes: https://github.com/tavianator/bfs/issues/27 | ||||
* | build: Add a separate configuration step | Tavian Barnes | 2024-04-09 | 1 | -1/+1 |
| | |||||
* | Implement -limit N | Tavian Barnes | 2024-03-20 | 1 | -1/+37 |
| | | | | Closes: https://github.com/tavianator/bfs/issues/133 | ||||
* | Re-run include-what-you-use | Tavian Barnes | 2024-03-11 | 1 | -2/+1 |
| | |||||
* | xtime: Call tzset() from main() instead of lazily | Tavian Barnes | 2024-03-07 | 1 | -6/+6 |
| | | | | | | | | | | | | | 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 | ||||
* | sanity: Don't use self-init for uninit() | Tavian Barnes | 2024-02-12 | 1 | -4/+4 |
| | | | | | | | | | | | Self-initialization like bool ret = ret; is a GCC trick to suppress uninitialized variable warnings, but it's not actually well-defined, and will trip a recent enough MemorySanitizer: src/eval.c:1088:13: runtime error: load of value 128, which is not a valid value for type 'bool' | ||||
* | ctx: Fill in ctx->threads earlier | Tavian Barnes | 2024-02-06 | 1 | -4/+2 |
| | |||||
* | expr: Make expressions variadic | Tavian Barnes | 2024-01-07 | 1 | -48/+25 |
| | | | | | | | | | Rather than only unary/binary expressions, we now support an arbitrary number of children. The optimizer has been re-written almost completely and now supports optimal reordering of longer expression chains, rather than just arm-swapping. Fixes #85. | ||||
* | expr: Arena-allocate expressions | Tavian Barnes | 2023-12-20 | 1 | -208/+132 |
| | |||||
* | parse: s/parser_state/bfs_parser/ | Tavian Barnes | 2023-12-20 | 1 | -476/+476 |
| | |||||
* | expr: Move some implementation into expr.c | Tavian Barnes | 2023-12-20 | 1 | -45/+0 |
| | |||||
* | config: s/attr_format/attr_printf/ | Tavian Barnes | 2023-12-18 | 1 | -7/+7 |
| | |||||
* | config: New variadic attr(...) macro | Tavian Barnes | 2023-12-18 | 1 | -7/+7 |
| | |||||
* | parse: Reject integers that start with whitespace | Tavian Barnes | 2023-12-09 | 1 | -1/+5 |
| | |||||
* | ctx: Switch paths from darray to RESERVE() | Tavian Barnes | 2023-11-23 | 1 | -10/+10 |
| | |||||
* | config: s/BFS_FORMATTER/attr_format/ | Tavian Barnes | 2023-11-09 | 1 | -7/+7 |
| | |||||
* | parse: Reject -{exec,ok}dir if $PATH contains a relative path | Tavian Barnes | 2023-11-07 | 1 | -0/+26 |
| | | | | This matches the behaviour of GNU find. | ||||
* | Treat NO_COLOR="" the same as unset | Tavian Barnes | 2023-11-06 | 1 | -1/+2 |
| | | | | | | | | | | | | | | The docs say > Command-line software which adds ANSI color to its output by default > should check for a NO_COLOR environment variable that, when present > and not an empty string (regardless of its value), prevents the > addition of ANSI color. but we were not checking for the empty string. Link: https://no-color.org/ Link: https://github.com/sharkdp/fd/pull/1421 | ||||
* | bfstd: New xwaitpid() wrapper | Tavian Barnes | 2023-10-31 | 1 | -1/+1 |
| | |||||
* | parse: Set BFTW_WHITEOUTS when parsing -type w | Tavian Barnes | 2023-10-17 | 1 | -0/+3 |
| | |||||
* | bfstd: Add a thread-safe wrapper for strerror() | Tavian Barnes | 2023-10-05 | 1 | -2/+2 |
| | |||||
* | Formatting fixes | Tavian Barnes | 2023-09-27 | 1 | -23/+22 |
| | |||||
* | parse: Give more ephemeral_fds to -no{user,group} | Tavian Barnes | 2023-09-12 | 1 | -7/+9 |
| | | | | | | | | Fewer than 3 can lead to Assertion failed: (retval->write_queue != -1), function __open_cached_connection, file /usr/src/lib/libc/net/nscachedcli.c, line 224. on a FreeBSD system with LDAP accounts. | ||||
* | Work around https://github.com/llvm/llvm-project/issues/64946 | Tavian Barnes | 2023-08-23 | 1 | -0/+3 |
| | |||||
* | parse: Allow -files0-from an empty set of paths | Tavian Barnes | 2023-08-14 | 1 | -10/+3 |
| | | | | This follows a behaviour change in GNU findutils 4.9.0. |