Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Replace license boilerplate with SPDX tags | Tavian Barnes | 2023-01-25 | 49 | -736/+98 |
| | | | | | | | 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/ | ||||
* | mtab: Flags are separated with | not , | Tavian Barnes | 2023-01-25 | 1 | -1/+1 |
| | |||||
* | mtab: Keep parent dirs open during fill_types() | Tavian Barnes | 2023-01-25 | 3 | -27/+65 |
| | |||||
* | mtab: Always fill in the root fstype | Tavian Barnes | 2023-01-25 | 1 | -1/+1 |
| | | | | Fixes: 869e4010433c8610ba59f9a6a310df8be228d718 | ||||
* | opt: Move probabilities out of the parser | Tavian Barnes | 2023-01-24 | 2 | -120/+161 |
| | |||||
* | opt: Move costs out of the parser | Tavian Barnes | 2023-01-24 | 2 | -51/+57 |
| | |||||
* | 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. |