summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* opt: Use a table for simple predicatesTavian Barnes2023-01-241-17/+27
|
* opt: Use a table to look up optimizer functionsTavian Barnes2023-01-241-44/+71
|
* mtab: Mitigate the race between bfs_mtab_parse() and bfs_mtab_fill_types()Tavian Barnes2023-01-221-2/+35
| | | | Fixes #97.
* bfstd: Add O_SEARCH/O_EXEC fallbacksTavian Barnes2023-01-221-0/+16
|
* bfstd: New wrappers for dirname()/basename()Tavian Barnes2023-01-199-27/+84
|
* parse: Mark another variable with BFS_UNINIT()Tavian Barnes2022-12-091-1/+1
|
* config: New BFS_UNINIT() macro for intentionally uninitialized variablesTavian Barnes2022-12-092-3/+12
|
* Turn on more aggressive format string warningsTavian Barnes2022-12-093-28/+62
|
* Add BFS_FORMATTER() to vprintf()-type functions tooTavian Barnes2022-12-084-0/+8
|
* opt: Pass a va_list to bfs_vwarning(), not bfs_warning()Tavian Barnes2022-12-081-1/+1
| | | | Luckily none of the callers actually pass any arguments.
* trie: Use static_assert() instead of #errorTavian Barnes2022-12-071-3/+1
|
* config: New BFS_COUNTOF macroTavian Barnes2022-12-072-2/+6
|
* expr: Rename bfs_expr_has_children() to _is_parent()Tavian Barnes2022-12-056-14/+14
|
* 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-304-174/+209
|
* expr: Remove the synthetic flagTavian Barnes2022-11-294-22/+8
| | | | | 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
|
* config: Support target_clones on more platformsTavian Barnes2022-11-212-1/+8
|
* expr: Don't use reftime for -lsTavian Barnes2022-11-174-9/+12
| | | | | reftime is part of a different union than the print actions are supposed to use.
* trie: Limit target_clones to glibcTavian Barnes2022-11-161-5/+5
| | | | Musl doesn't support ifuncs.
* Use BFS_COMMAND over "bfs" in more placesTavian Barnes2022-11-131-5/+8
|
* exec: Fix index overflow parsing -exec +Tavian Barnes2022-11-111-1/+1
|
* typo: Array bounds are exclusive, not inclusiveTavian Barnes2022-11-101-1/+1
|
* xregex: Fix build without OnigurumaTavian Barnes2022-11-101-0/+1
|
* Try to report I/O errors earlier and only onceTavian Barnes2022-11-104-10/+50
|
* Revert "exec: Don't flush if the user says no to -ok"Tavian Barnes2022-11-101-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 warningTavian Barnes2022-11-091-1/+1
|
* trie: Check __has_attribute(target_clones) before using itTavian Barnes2022-11-091-1/+1
|
* ctx: Flush the user/group caches when executing commandsTavian Barnes2022-11-093-24/+43
| | | | | | This fixes (admittedly uncommon) commands like $ bfs -nouser -exec add-missing-user.sh {} \;
* pwcache: Fill the user/group caches lazilyTavian Barnes2022-11-098-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 statTavian Barnes2022-11-081-0/+1
|
* tests/xtouch: Add some missing POSIX touch featuresTavian Barnes2022-11-083-8/+10
|
* xtime: Move parse_gettime() to xgettime()Tavian Barnes2022-11-073-24/+28
|
* xtime: s/parse_timestamp/xgetdate/Tavian Barnes2022-11-073-12/+12
|
* Fix includesTavian Barnes2022-11-0611-9/+10
|
* bfstd: Rename from util and reorganize itTavian Barnes2022-11-0619-401/+418
|
* config: Split out some of util.h into a new headerTavian Barnes2022-11-0616-188/+205
|
* util: Get rid of BFS_HAS_INCLUDE() wrapper for __has_include()Tavian Barnes2022-11-068-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 testingTavian Barnes2022-11-065-27/+19
|
* xspawn: Use _PATH_DEFPATH if _CS_PATH is not definedTavian Barnes2022-11-062-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 Barnes2022-11-011-11/+19
|
* trie: Optimize trie_mismatch() with tzcntTavian Barnes2022-11-011-13/+40
|
* trie: Use target_clones() for popcntTavian Barnes2022-10-301-6/+28
|
* trie: Refactor insertion to allocate the leaf in one placeTavian Barnes2022-10-301-49/+48
|
* trie: Make leaves into a linked listTavian Barnes2022-10-294-45/+76
|
* trie: New is_power_of_two() helperTavian Barnes2022-10-291-5/+10
|
* trie: Convert ASCII art to Unicode artTavian Barnes2022-10-291-31/+49
|
* Release 2.6.22.6.2Tavian Barnes2022-10-211-1/+1
|
* parse: Don't free uninitialized data on error pathsTavian Barnes2022-10-191-0/+13
|