summaryrefslogtreecommitdiffstats
path: root/src/parse.c
Commit message (Collapse)AuthorAgeFilesLines
* sanity: Don't use self-init for uninit()Tavian Barnes2024-02-121-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 earlierTavian Barnes2024-02-061-4/+2
|
* expr: Make expressions variadicTavian Barnes2024-01-071-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 expressionsTavian Barnes2023-12-201-208/+132
|
* parse: s/parser_state/bfs_parser/Tavian Barnes2023-12-201-476/+476
|
* expr: Move some implementation into expr.cTavian Barnes2023-12-201-45/+0
|
* config: s/attr_format/attr_printf/Tavian Barnes2023-12-181-7/+7
|
* config: New variadic attr(...) macroTavian Barnes2023-12-181-7/+7
|
* parse: Reject integers that start with whitespaceTavian Barnes2023-12-091-1/+5
|
* ctx: Switch paths from darray to RESERVE()Tavian Barnes2023-11-231-10/+10
|
* config: s/BFS_FORMATTER/attr_format/Tavian Barnes2023-11-091-7/+7
|
* parse: Reject -{exec,ok}dir if $PATH contains a relative pathTavian Barnes2023-11-071-0/+26
| | | | This matches the behaviour of GNU find.
* Treat NO_COLOR="" the same as unsetTavian Barnes2023-11-061-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() wrapperTavian Barnes2023-10-311-1/+1
|
* parse: Set BFTW_WHITEOUTS when parsing -type wTavian Barnes2023-10-171-0/+3
|
* bfstd: Add a thread-safe wrapper for strerror()Tavian Barnes2023-10-051-2/+2
|
* Formatting fixesTavian Barnes2023-09-271-23/+22
|
* parse: Give more ephemeral_fds to -no{user,group}Tavian Barnes2023-09-121-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/64946Tavian Barnes2023-08-231-0/+3
|
* parse: Allow -files0-from an empty set of pathsTavian Barnes2023-08-141-10/+3
| | | | This follows a behaviour change in GNU findutils 4.9.0.
* parse: Reject -j0Tavian Barnes2023-07-121-1/+9
|
* Use strcmp() instead of fnmatch() if possibleTavian Barnes2023-07-061-5/+12
|
* parse: Warn about errors parsing $LS_COLORSTavian Barnes2023-06-291-1/+5
|
* Unify macro naming conventionsTavian Barnes2023-06-241-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 utilitiesTavian Barnes2023-06-201-25/+3
|
* bfstd: New xmemdup() functionTavian Barnes2023-06-201-5/+2
|
* parse: Shell-escape arguments in diagnosticsTavian Barnes2023-06-161-6/+6
|
* parse: Don't default to depth-first when argv[0] is "find"Tavian Barnes2023-06-141-6/+0
|
* bftw: Use an I/O queue to open directoriesTavian Barnes2023-06-131-1/+25
| | | | Parallelism is controlled by the new -j flag.
* sanity: Add wrappers for sanitizer interfacesTavian Barnes2023-05-251-0/+1
|
* Switch from assert() to bfs_assert()/bfs_verify()Tavian Barnes2023-05-181-4/+3
|
* Use bfs_bug("...") over assert(!"...")Tavian Barnes2023-05-181-2/+2
|
* config: Provide <stdalign.h> and <stdbool.h>Tavian Barnes2023-05-111-1/+0
| | | | In anticipation of C23, since those headers won't be necessary any more.
* config: s/BFS_FALLTHROUGH/fallthru/Tavian Barnes2023-05-101-9/+9
|
* config: s/BFS_UNINIT/uninit/Tavian Barnes2023-05-101-4/+4
|
* config: Hoist the assignment outside of BFS_UNINIT()Tavian Barnes2023-05-081-4/+4
|
* Replace license boilerplate with SPDX tagsTavian Barnes2023-01-251-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 parserTavian Barnes2023-01-241-120/+29
|
* opt: Move costs out of the parserTavian Barnes2023-01-241-51/+3
|
* opt: Move always_{true,false} out of the parserTavian Barnes2023-01-241-50/+6
|
* opt: Move purity out of the parserTavian Barnes2023-01-241-25/+2
|
* bfstd: New wrappers for dirname()/basename()Tavian Barnes2023-01-191-2/+4
|
* parse: Mark another variable with BFS_UNINIT()Tavian Barnes2022-12-091-1/+1
|
* config: New BFS_UNINIT() macro for intentionally uninitialized variablesTavian Barnes2022-12-091-3/+3
|
* expr: Rename bfs_expr_has_children() to _is_parent()Tavian Barnes2022-12-051-6/+6
|
* parse: Fix crash on -xdev -mountTavian Barnes2022-11-301-1/+1
|
* parse: Pass the right argument when warning about -O9Tavian Barnes2022-11-301-1/+1
|
* expr: Remove the singleton bfs_{true,false} expressionsTavian Barnes2022-11-301-138/+168
|
* expr: Remove the synthetic flagTavian Barnes2022-11-291-9/+0
| | | | | Only diagnostics cares about this, and we can just check if the pointers are equal.
* Dump expression trees in a multi-line formatTavian Barnes2022-11-291-50/+71
|