summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* util: New xstrwidth() functionTavian Barnes2022-03-262-0/+46
|
* opt: Warn about expressions we remove while optimizingTavian Barnes2022-03-263-28/+115
|
* parse: Stop warning for options after tests/actionsTavian Barnes2022-03-261-44/+7
| | | | | | | | | | | Part of the bfs design philosophy is to care less about the order of arguments. As such, there's no good reason to be warning-compatible with GNU find in this case. I don't even think things like this are confusing: bfs -print -color so why warn about it?
* expr: Store auxilliary data in a unionTavian Barnes2022-03-259-777/+815
| | | | And rename struct expr to bfs_expr.
* Update from C99 to C11Tavian Barnes2022-03-252-2/+2
| | | | This is necessary for standard anonymous structs/unions.
* printf: Switch from a linked list to an arrayTavian Barnes2022-03-251-129/+123
|
* main: Fix comment alignmentTavian Barnes2022-03-251-2/+2
|
* tests: Use bfs_diff in more casesTavian Barnes2022-03-152-22/+5
|
* tests: Shell style fixesTavian Barnes2022-03-142-58/+57
| | | | We now support `./tests.sh --bfs="path/with\ spaces/bfs"`
* exec: Check for errors when printing the -ok promptTavian Barnes2022-03-131-2/+6
|
* exec: Don't flush if the user says no to -okTavian Barnes2022-03-131-3/+3
|
* ctx: Factor out exec flushing behaviour into bfs_ctx_flush()Tavian Barnes2022-03-133-14/+27
|
* tests: Use -print0 instead of -printf '%p ' for exec flush testsTavian Barnes2022-03-133-4/+4
|
* tests: Use plain sort, not bfs_sortTavian Barnes2022-03-13113-548/+533
| | | | | bfs_sort existed to keep the test outputs nicely in breadth-first order. Unfortunately the implementation using awk didn't support NUL bytes.
* tests: Use skip_if for more testsTavian Barnes2022-03-131-15/+11
|
* Rename the include guards for the recently renamed headersTavian Barnes2022-03-134-12/+12
|
* Don't shadow standard headersTavian Barnes2022-03-1215-21/+21
| | | | | | | | | | | | | @italic on the AUR stated that bfs from the AUR fails to build on Manjaro. From the build log, it seems like <time.h> doesn't get included properly. I assume it's picking up ./time.h instead. I couldn't reproduce the build issue in the default configuration, but it does fail with EXTRA_CFLAGS="-I." which isn't good. So rename everything with an x prefix to stop clashing. Link: https://aur.archlinux.org/packages/bfs#comment-856102 Link: https://paste.rs/eqR
* CONTRIBUTING: Add a contribution guideTavian Barnes2022-03-111-0/+167
|
* README: Clarify some dependenciesTavian Barnes2022-03-111-5/+5
|
* Makefile: Disable onig-config for the 32-bit distcheck buildTavian Barnes2022-03-111-2/+2
| | | | | | | | | | | onig-config can redundantly add -L/usr/lib to LDLIBS, which results in a few warnings like /usr/bin/ld: skipping incompatible /usr/lib/libonig.so when searching for -lonig While I'm at it, explicitly restrict the -m32 build to Linux, since it doesn't work on FreeBSD and was only skipped because uname -m is amd64, not x86_64.
* Makefile: Enable time64Tavian Barnes2022-03-111-0/+1
|
* ctx: Don't include std{out,err} in the open file countTavian Barnes2022-03-091-1/+5
|
* bftw: Fix open FD accountingTavian Barnes2022-03-091-3/+2
| | | | | Due to the introduction of bfs_dir, we don't need to reserve an extra file descriptor for the currently open directory.
* bftw: Keep root paths at the head of the LRU listTavian Barnes2022-03-091-4/+25
| | | | | With a low ulimit -n, this brings performance back in line with the old heap based implementation.
* Revert "darray: New DARRAY_POP() macro"Tavian Barnes2022-03-092-32/+0
| | | | This reverts commit 6ac4deb451ccd4ed11fb0d022b83710b5b0522fe.
* bftw: Bring back the LRU listTavian Barnes2022-03-091-158/+78
|
* Makefile: Add lsan and tsan flag targetsTavian Barnes2022-03-091-1/+13
|
* Merge pull request #84 from chapmanjacobd/patch-1Tavian Barnes2022-03-071-0/+3
|\ | | | | docs: readme: add fedora deps
| * add fedora depsJacob Chapman2022-03-081-0/+3
|/
* README: Fix typoTavian Barnes2022-03-011-1/+1
|
* Makefile: Make separate variables for Oniguruma flagsTavian Barnes2022-02-281-3/+6
| | | | | | This allows customizing the necessary flags if onig-config isn't available or is undesirable (e.g. when linking against a non-system build of libonig).
* parse: Check for globs with unescaped trailing backslashesTavian Barnes2022-02-282-5/+23
| | | | | | | | | | Both macOS and musl fail to fail on an unescaped backslash, so check for it ourselves. Link: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fnmatch.html Link: https://github.com/void-linux/void-packages/pull/35836 Link: https://www.openwall.com/lists/musl/2022/02/25/2 Link: https://www.austingroupbugs.net/view.php?id=806
* Release 2.4.12.4.1Tavian Barnes2022-02-243-2/+16
|
* README: Fix CI status badgesTavian Barnes2022-02-242-4/+2
|
* regex: Rework error handlingTavian Barnes2022-02-245-91/+102
|
* regex: Use the encoding from the current localeTavian Barnes2022-02-243-10/+94
|
* regex: Test if the string is valid before matchingTavian Barnes2022-02-241-0/+8
|
* ci: Unify multiple workflows into one with separate jobsTavian Barnes2022-02-244-89/+87
|
* ci/freebsd: Fix missing trailing single quoteTavian Barnes2022-02-241-1/+1
|
* Makefile: Automatically discover the right flags to build with OnigurumaTavian Barnes2022-02-242-5/+12
| | | | Fixes #82.
* regex: Always set REG_STARTEND if availableTavian Barnes2022-02-231-5/+3
|
* regex: Use onig_match() to implement BFS_REGEX_ANCHORTavian Barnes2022-02-231-10/+8
|
* Release 2.42.4Tavian Barnes2022-02-223-2/+21
|
* README: Reformat with details blocks to make it more easily skimmableTavian Barnes2022-02-221-30/+111
| | | | | And add some extra information about bfs-specific features, and installing dependencies.
* Use EXTRA_CFLAGS instead of CFLAGS in make distcheckTavian Barnes2022-02-211-1/+1
|
* Enable Oniguruma by defaultTavian Barnes2022-02-214-7/+15
|
* regex: Use the real Oniguruma API, not the POSIX wrapperTavian Barnes2022-02-211-11/+84
| | | | | | | Not every Oniguruma installation enables the POSIX wrapper, so we need our own wrapper for portability. As well, older versions of Oniguruma have symbol clashes with libc for the POSIX regex API, so using it can be unsafe.
* regex: Wrap the POSIX API in a facadeTavian Barnes2022-02-217-63/+152
|
* tests: Mark -fprint/-exec flushing test bfs-specificTavian Barnes2022-02-181-2/+3
| | | | GNU find doesn't do it, so no reason to require it for compatibility.
* exec: Flush I/O streams before executing anythingTavian Barnes2022-02-115-1/+67
| | | | | | Otherwise output from commands may appear unexpectedly earlier than output from bfs. We use fflush(NULL) to flush all streams, which is more than GNU find does, but seems to be a useful extension.