summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2022-02-24Makefile: Automatically discover the right flags to build with OnigurumaTavian Barnes
Fixes #82.
2022-02-23regex: Always set REG_STARTEND if availableTavian Barnes
2022-02-23regex: Use onig_match() to implement BFS_REGEX_ANCHORTavian Barnes
2022-02-22Release 2.42.4Tavian Barnes
2022-02-22README: Reformat with details blocks to make it more easily skimmableTavian Barnes
And add some extra information about bfs-specific features, and installing dependencies.
2022-02-21Use EXTRA_CFLAGS instead of CFLAGS in make distcheckTavian Barnes
2022-02-21Enable Oniguruma by defaultTavian Barnes
2022-02-21regex: Use the real Oniguruma API, not the POSIX wrapperTavian Barnes
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.
2022-02-21regex: Wrap the POSIX API in a facadeTavian Barnes
2022-02-18tests: Mark -fprint/-exec flushing test bfs-specificTavian Barnes
GNU find doesn't do it, so no reason to require it for compatibility.
2022-02-11exec: Flush I/O streams before executing anythingTavian Barnes
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.
2022-02-11ctx: Also check ferror(stdout)Tavian Barnes
Previously this was checked for all other files, but for stdout we just checked the return value of fflush(). Checking ferror() makes sure we don't miss any errors that occurred on a previous flush.
2022-02-11tests: Use skip_if for tests that need /dev/fullTavian Barnes
2022-02-10tests: Add a test that -exit suppresses the implicit -printTavian Barnes
2022-02-09Makefile: Allow extra flags to be passed with EXTRA_*FLAGS variablesTavian Barnes
2022-02-08tests: Skip case insensitive tests if FNM_CASEFOLD is missingTavian Barnes
2022-02-08tests: Separate skipped tests from passing testsTavian Barnes
2022-02-04tests: Disable some glob tests on macOSTavian Barnes
macOS seems to have a non-compliant fnmatch() that doesn't treat invalid character class expressions literally.
2022-02-04regex: Add support for emacs and grep typesTavian Barnes
2022-02-02tests: Add tests for syntactically invalid globsTavian Barnes
2022-02-01tests: New tests for -i?wholenameTavian Barnes
2022-02-01tests: New test for ** in a globTavian Barnes
2022-02-01tests: New test for -prune on a non-directoryTavian Barnes
2022-02-01tests: Try to color diff outputTavian Barnes
2022-02-01tests: set -P for the whole scriptTavian Barnes
We rely on physical path resolution in test_execdir_pwd.
2022-02-01tests: Allow tests.sh to be invoked from any directoryTavian Barnes
This also resolves the path passed to --bfs early, so --bfs=./bfs now works.
2022-01-30parse: Add support for ed and sed regexesTavian Barnes
They're apparently the same as POSIX basic regexes.
2022-01-29Revert "tests: Add a test for posix-basic alternation"Tavian Barnes
Turns out alternation is not actually part of the POSIX basic regular expression language, it's just a glibc extension. This reverts commit c898af13a671ee92a056467d324f16823594eb1c.
2022-01-29tests: Add a test for posix-basic alternationTavian Barnes
2022-01-29Standardize WITH_* make variables for configuring dependenciesTavian Barnes
2022-01-29Merge pull request #81 from data-man:oniguruma_1Tavian Barnes
2022-01-24Apply suggestions from code reviewdata-man
2022-01-24Simplifyingdata-man
2022-01-24Using Oniguruma library (optionally)data-man
2022-01-21Release 2.3.12.3.1Tavian Barnes
2022-01-18bftw: Use a dynamic array for the cacheTavian Barnes
Since commit 69a5227 ("eval: Raise RLIMIT_NOFILE if possible"), bfs can pass a large nopenfd (e.g. 512K) to bftw() by default. This resulted in a large up-front allocation even for small trees. Change it to grow on demand, lowering the footprint for small searches.
2022-01-18darray: New DARRAY_POP() macroTavian Barnes
2022-01-18dstring: Set a minimum capacity to avoid reallocating for small stringsTavian Barnes
2022-01-18tests: Add missing license headersTavian Barnes
2022-01-18tests/trie: Fix "handling" typoTavian Barnes
2022-01-18util: New close() wrappers to check for EBADF and preserve errnoTavian Barnes
2022-01-18dir: Fix extra close() if fdopendir() failsTavian Barnes
2022-01-18Add some missing (void)'sTavian Barnes
2021-12-19ci/macos: Switch back to macos-latestTavian Barnes
2021-12-10ci/macos: Downgrade to macOS 10.15Tavian Barnes
macOS 11 comes with a broken touch(1) that ignores -h. Work around it for now by downgrading macOS. Link: https://apple.stackexchange.com/a/425730/397839
2021-12-10tests: Set TZ to a real timezoneTavian Barnes
POSIX states that the offset is not optional in the TZ environment variable. Link: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
2021-12-10stat: Work around GNU Hurd bugTavian Barnes
fstatat(fd, "", buf, AT_EMPTY_PATH) fails with a nonsense errno on Hurd. Since fstat() itself works fine, just use that. Link: https://lists.gnu.org/archive/html/bug-hurd/2021-12/msg00001.html
2021-12-05eval: Check that RLIM_SAVED_{CUR,MAX} are defined before using themTavian Barnes
Apparently they're missing on Debian kfreebsd: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=kfreebsd-amd64&ver=2.3-1&stamp=1638379495&raw=0
2021-11-25ci/freebsd: Don't pin an old tailscale version2.3Tavian Barnes
2021-11-25Release 2.3Tavian Barnes