Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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. | ||||
* | parse: Reject -j0 | Tavian Barnes | 2023-07-12 | 1 | -1/+9 |
| | |||||
* | Use strcmp() instead of fnmatch() if possible | Tavian Barnes | 2023-07-06 | 1 | -5/+12 |
| | |||||
* | parse: Warn about errors parsing $LS_COLORS | Tavian Barnes | 2023-06-29 | 1 | -1/+5 |
| | |||||
* | Unify macro naming conventions | Tavian Barnes | 2023-06-24 | 1 | -2/+2 |
| | | | | | In particular, macros that decide whether to use a particular API/ dependency should be spelled BFS_USE_*, and should be configurable. | ||||
* | alloc: New header for memory allocation utilities | Tavian Barnes | 2023-06-20 | 1 | -25/+3 |
| | |||||
* | bfstd: New xmemdup() function | Tavian Barnes | 2023-06-20 | 1 | -5/+2 |
| | |||||
* | parse: Shell-escape arguments in diagnostics | Tavian Barnes | 2023-06-16 | 1 | -6/+6 |
| | |||||
* | parse: Don't default to depth-first when argv[0] is "find" | Tavian Barnes | 2023-06-14 | 1 | -6/+0 |
| | |||||
* | bftw: Use an I/O queue to open directories | Tavian Barnes | 2023-06-13 | 1 | -1/+25 |
| | | | | Parallelism is controlled by the new -j flag. | ||||
* | sanity: Add wrappers for sanitizer interfaces | Tavian Barnes | 2023-05-25 | 1 | -0/+1 |
| | |||||
* | Switch from assert() to bfs_assert()/bfs_verify() | Tavian Barnes | 2023-05-18 | 1 | -4/+3 |
| | |||||
* | Use bfs_bug("...") over assert(!"...") | Tavian Barnes | 2023-05-18 | 1 | -2/+2 |
| | |||||
* | config: Provide <stdalign.h> and <stdbool.h> | Tavian Barnes | 2023-05-11 | 1 | -1/+0 |
| | | | | In anticipation of C23, since those headers won't be necessary any more. | ||||
* | config: s/BFS_FALLTHROUGH/fallthru/ | Tavian Barnes | 2023-05-10 | 1 | -9/+9 |
| | |||||
* | config: s/BFS_UNINIT/uninit/ | Tavian Barnes | 2023-05-10 | 1 | -4/+4 |
| | |||||
* | config: Hoist the assignment outside of BFS_UNINIT() | Tavian Barnes | 2023-05-08 | 1 | -4/+4 |
| | |||||
* | Replace license boilerplate with SPDX tags | Tavian Barnes | 2023-01-25 | 1 | -15/+2 |
| | | | | | | | 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/ | ||||
* | opt: Move probabilities out of the parser | Tavian Barnes | 2023-01-24 | 1 | -120/+29 |
| | |||||
* | opt: Move costs out of the parser | Tavian Barnes | 2023-01-24 | 1 | -51/+3 |
| | |||||
* | opt: Move always_{true,false} out of the parser | Tavian Barnes | 2023-01-24 | 1 | -50/+6 |
| | |||||
* | opt: Move purity out of the parser | Tavian Barnes | 2023-01-24 | 1 | -25/+2 |
| | |||||
* | bfstd: New wrappers for dirname()/basename() | Tavian Barnes | 2023-01-19 | 1 | -2/+4 |
| | |||||
* | parse: Mark another variable with BFS_UNINIT() | Tavian Barnes | 2022-12-09 | 1 | -1/+1 |
| | |||||
* | config: New BFS_UNINIT() macro for intentionally uninitialized variables | Tavian Barnes | 2022-12-09 | 1 | -3/+3 |
| | |||||
* | expr: Rename bfs_expr_has_children() to _is_parent() | Tavian Barnes | 2022-12-05 | 1 | -6/+6 |
| | |||||
* | parse: Fix crash on -xdev -mount | Tavian Barnes | 2022-11-30 | 1 | -1/+1 |
| | |||||
* | parse: Pass the right argument when warning about -O9 | Tavian Barnes | 2022-11-30 | 1 | -1/+1 |
| | |||||
* | expr: Remove the singleton bfs_{true,false} expressions | Tavian Barnes | 2022-11-30 | 1 | -138/+168 |
| | |||||
* | expr: Remove the synthetic flag | Tavian Barnes | 2022-11-29 | 1 | -9/+0 |
| | | | | | Only diagnostics cares about this, and we can just check if the pointers are equal. |