Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | opt: Move always_{true,false} out of the parser | Tavian Barnes | 2023-01-24 | 2 | -50/+61 | |
| | ||||||
* | opt: Move purity out of the parser | Tavian Barnes | 2023-01-24 | 2 | -25/+64 | |
| | ||||||
* | opt: Use a table for simple range comparisons | Tavian Barnes | 2023-01-24 | 1 | -14/+24 | |
| | ||||||
* | opt: Use a table for simple predicates | Tavian Barnes | 2023-01-24 | 1 | -17/+27 | |
| | ||||||
* | opt: Use a table to look up optimizer functions | Tavian Barnes | 2023-01-24 | 1 | -44/+71 | |
| | ||||||
* | mtab: Mitigate the race between bfs_mtab_parse() and bfs_mtab_fill_types() | Tavian Barnes | 2023-01-22 | 1 | -2/+35 | |
| | | | | Fixes #97. | |||||
* | bfstd: Add O_SEARCH/O_EXEC fallbacks | Tavian Barnes | 2023-01-22 | 1 | -0/+16 | |
| | ||||||
* | bfstd: New wrappers for dirname()/basename() | Tavian Barnes | 2023-01-19 | 9 | -27/+84 | |
| | ||||||
* | 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 | 2 | -3/+12 | |
| | ||||||
* | Turn on more aggressive format string warnings | Tavian Barnes | 2022-12-09 | 3 | -28/+62 | |
| | ||||||
* | Add BFS_FORMATTER() to vprintf()-type functions too | Tavian Barnes | 2022-12-08 | 4 | -0/+8 | |
| | ||||||
* | opt: Pass a va_list to bfs_vwarning(), not bfs_warning() | Tavian Barnes | 2022-12-08 | 1 | -1/+1 | |
| | | | | Luckily none of the callers actually pass any arguments. | |||||
* | trie: Use static_assert() instead of #error | Tavian Barnes | 2022-12-07 | 1 | -3/+1 | |
| | ||||||
* | config: New BFS_COUNTOF macro | Tavian Barnes | 2022-12-07 | 2 | -2/+6 | |
| | ||||||
* | expr: Rename bfs_expr_has_children() to _is_parent() | Tavian Barnes | 2022-12-05 | 6 | -14/+14 | |
| | ||||||
* | 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 | 4 | -174/+209 | |
| | ||||||
* | expr: Remove the synthetic flag | Tavian Barnes | 2022-11-29 | 4 | -22/+8 | |
| | | | | | Only diagnostics cares about this, and we can just check if the pointers are equal. | |||||
* | Dump expression trees in a multi-line format | Tavian Barnes | 2022-11-29 | 1 | -50/+71 | |
| | ||||||
* | config: Support target_clones on more platforms | Tavian Barnes | 2022-11-21 | 2 | -1/+8 | |
| | ||||||
* | expr: Don't use reftime for -ls | Tavian Barnes | 2022-11-17 | 4 | -9/+12 | |
| | | | | | reftime is part of a different union than the print actions are supposed to use. | |||||
* | trie: Limit target_clones to glibc | Tavian Barnes | 2022-11-16 | 1 | -5/+5 | |
| | | | | Musl doesn't support ifuncs. | |||||
* | Use BFS_COMMAND over "bfs" in more places | Tavian Barnes | 2022-11-13 | 1 | -5/+8 | |
| | ||||||
* | exec: Fix index overflow parsing -exec + | Tavian Barnes | 2022-11-11 | 1 | -1/+1 | |
| | ||||||
* | typo: Array bounds are exclusive, not inclusive | Tavian Barnes | 2022-11-10 | 1 | -1/+1 | |
| | ||||||
* | xregex: Fix build without Oniguruma | Tavian Barnes | 2022-11-10 | 1 | -0/+1 | |
| | ||||||
* | Try to report I/O errors earlier and only once | Tavian Barnes | 2022-11-10 | 4 | -10/+50 | |
| | ||||||
* | Revert "exec: Don't flush if the user says no to -ok" | Tavian Barnes | 2022-11-10 | 1 | -3/+3 | |
| | | | | | | | | | | | From the bfs_ctx_flush() implementation: // Before executing anything, flush all open streams. This ensures that // - the user sees everything relevant before an -ok[dir] prompt But that only works if we call it before the prompt. This reverts commit 21344dfb72f9b65b366ca5f754f1bc35f52da3c7. | |||||
* | parse: Squelch an uninitialized variable warning | Tavian Barnes | 2022-11-09 | 1 | -1/+1 | |
| | ||||||
* | trie: Check __has_attribute(target_clones) before using it | Tavian Barnes | 2022-11-09 | 1 | -1/+1 | |
| | ||||||
* | ctx: Flush the user/group caches when executing commands | Tavian Barnes | 2022-11-09 | 3 | -24/+43 | |
| | | | | | | This fixes (admittedly uncommon) commands like $ bfs -nouser -exec add-missing-user.sh {} \; | |||||
* | pwcache: Fill the user/group caches lazily | Tavian Barnes | 2022-11-09 | 8 | -364/+226 | |
| | | | | | | | Iterating all the users/groups can be expensive, especially with NSS. Android has so many that it doesn't even return them all from get{pw,gr}ent() for performance reasons, leading to incorrect behaviour of -user/-group/etc. | |||||
* | eval: Add missing flag to -D stat | Tavian Barnes | 2022-11-08 | 1 | -0/+1 | |
| | ||||||
* | tests/xtouch: Add some missing POSIX touch features | Tavian Barnes | 2022-11-08 | 3 | -8/+10 | |
| | ||||||
* | xtime: Move parse_gettime() to xgettime() | Tavian Barnes | 2022-11-07 | 3 | -24/+28 | |
| | ||||||
* | xtime: s/parse_timestamp/xgetdate/ | Tavian Barnes | 2022-11-07 | 3 | -12/+12 | |
| | ||||||
* | Fix includes | Tavian Barnes | 2022-11-06 | 11 | -9/+10 | |
| | ||||||
* | bfstd: Rename from util and reorganize it | Tavian Barnes | 2022-11-06 | 19 | -401/+418 | |
| | ||||||
* | config: Split out some of util.h into a new header | Tavian Barnes | 2022-11-06 | 16 | -188/+205 | |
| | ||||||
* | util: Get rid of BFS_HAS_INCLUDE() wrapper for __has_include() | Tavian Barnes | 2022-11-06 | 8 | -48/+81 | |
| | | | | | | | | | Since __has_include() needs special preprocessing rules (e.g. not expanding `linux` in `__has_include(<linux/stat.h>)`, macros that expand to __has_include() do not necessarily behave correctly. Instead, we have to directly test `#if __has_include(...)`. See https://bugs.llvm.org/show_bug.cgi?id=37990 for more details. | |||||
* | util: Use fewer BFS_*() wrappers for feature testing | Tavian Barnes | 2022-11-06 | 5 | -27/+19 | |
| | ||||||
* | xspawn: Use _PATH_DEFPATH if _CS_PATH is not defined | Tavian Barnes | 2022-11-06 | 2 | -2/+14 | |
| | | | | | And set errno correctly if neither one is. Fixes tests/posix/exec_nopath on Android. | |||||
* | color: Avoid dynamic allocation in get_ext_color() | Tavian Barnes | 2022-11-01 | 1 | -11/+19 | |
| | ||||||
* | trie: Optimize trie_mismatch() with tzcnt | Tavian Barnes | 2022-11-01 | 1 | -13/+40 | |
| | ||||||
* | trie: Use target_clones() for popcnt | Tavian Barnes | 2022-10-30 | 1 | -6/+28 | |
| | ||||||
* | trie: Refactor insertion to allocate the leaf in one place | Tavian Barnes | 2022-10-30 | 1 | -49/+48 | |
| | ||||||
* | trie: Make leaves into a linked list | Tavian Barnes | 2022-10-29 | 4 | -45/+76 | |
| | ||||||
* | trie: New is_power_of_two() helper | Tavian Barnes | 2022-10-29 | 1 | -5/+10 | |
| |