summaryrefslogtreecommitdiffstats
path: root/src/ctx.c
Commit message (Collapse)AuthorAgeFilesLines
* xtime: Remove xgettime()Tavian Barnes2024-08-091-1/+1
| | | | clock_gettime() is available everywhere by now.
* parse: Take umask into account in parse_mode()Tavian Barnes2024-08-021-0/+3
| | | | | | | POSIX 2024 clarified that find(1) is meant to work exactly like chmod(1) here, so for modes like +rw,-x with no "who" specified, apply the umask. Link: https://www.austingroupbugs.net/view.php?id=1392
* sighook: Allow sigunhook(NULL)Tavian Barnes2024-05-251-3/+1
|
* opt: Don't raise RLIMIT_NOFILE if it would prevent using posix_spawn()Tavian Barnes2024-05-231-0/+1
| | | | | | | | | | If we raise RLIMIT_NOFILE, we have to lower it before calling exec() for compatibility with select(). If posix_spawn() doesn't support that, we fall back to fork(), which is quite a bit slower. Therefore, if we're going to exec() on most files, it's better to keep RLIMIT_NOFILE the same to avoid the fork() cost, even though it makes bftw() somewhat slower.
* Stop using %mTavian Barnes2024-05-201-2/+2
|
* Work around https://github.com/llvm/llvm-project/issues/88163Tavian Barnes2024-05-161-1/+2
|
* ctx: Try to reset TTY state when terminating abnormallyTavian Barnes2024-05-161-40/+61
| | | | Fixes: https://github.com/tavianator/bfs/issues/138
* ctx: Escape paths when reporting errors in bfs_ctx_free()Tavian Barnes2024-04-241-1/+1
|
* Re-run include-what-you-useTavian Barnes2024-03-111-0/+1
|
* ctx: Fill in ctx->threads earlierTavian Barnes2024-02-061-0/+16
|
* expr: Make expressions variadicTavian Barnes2024-01-071-1/+1
| | | | | | | | | 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-3/+8
|
* ctx: Switch paths from darray to RESERVE()Tavian Barnes2023-11-231-3/+2
|
* ctx: Store the original and current RLIMIT_NOFILETavian Barnes2023-11-061-4/+2
|
* diag: Move enum debug_flags out of ctx.hTavian Barnes2023-10-121-25/+0
|
* Formatting fixesTavian Barnes2023-09-271-1/+0
|
* Use the new list macrosTavian Barnes2023-09-251-2/+2
|
* alloc: New header for memory allocation utilitiesTavian Barnes2023-06-201-28/+3
|
* bftw: Use an I/O queue to open directoriesTavian Barnes2023-06-131-0/+1
| | | | Parallelism is controlled by the new -j flag.
* Use bfs_bug("...") over assert(!"...")Tavian Barnes2023-05-181-2/+1
|
* 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/
* expr: Don't use reftime for -lsTavian Barnes2022-11-171-0/+5
| | | | | reftime is part of a different union than the print actions are supposed to use.
* Try to report I/O errors earlier and only onceTavian Barnes2022-11-101-5/+27
|
* ctx: Flush the user/group caches when executing commandsTavian Barnes2022-11-091-0/+5
| | | | | | This fixes (admittedly uncommon) commands like $ bfs -nouser -exec add-missing-user.sh {} \;
* pwcache: Fill the user/group caches lazilyTavian Barnes2022-11-091-35/+15
| | | | | | | 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.
* trie: Make leaves into a linked listTavian Barnes2022-10-291-3/+1
|
* Source / Include Folder (#88)トトも2022-04-161-0/+311
Moved Source Files Into `src` Folder