Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Makefile: Split build into bin and obj directories | Tavian Barnes | 2022-05-16 | 1 | -3435/+0 |
| | | | | | This also moves the main binary from ./bfs to ./bin/bfs, and ./tests.sh to ./tests/tests.sh, with the goal of keeping the repository root clean. | ||||
* | tests: New --stop flag to stop after the first failure | Tavian Barnes | 2022-05-13 | 1 | -1/+9 |
| | |||||
* | tests: Buffer standard error, and print it when tests fail | Tavian Barnes | 2022-05-13 | 1 | -91/+87 |
| | |||||
* | tests: Add --verbose={commands,errors,skipped,tests} options | Tavian Barnes | 2022-05-13 | 1 | -10/+37 |
| | |||||
* | tests: Exit immediately if fail() detects a crash | Tavian Barnes | 2022-05-12 | 1 | -2/+2 |
| | |||||
* | tests: New skip_unless helper | Tavian Barnes | 2022-05-12 | 1 | -56/+68 |
| | |||||
* | tests: Use skip_if for sudo tests | Tavian Barnes | 2022-05-12 | 1 | -44/+62 |
| | | | | | | This lets us categorize the sudo tests properly, which fixes e.g. $ ./tests.sh --posix --sudo | ||||
* | stat: Pass AT_NO_AUTOMOUNT if possible | Tavian Barnes | 2022-05-12 | 1 | -0/+21 |
| | | | | | Previously bfs would trigger automounts even when it didn't descend into the mount directory, while GNU find does not. | ||||
* | tests: Also put build outputs under build/ | Tavian Barnes | 2022-04-16 | 1 | -1/+2 |
| | |||||
* | color: Support a separate $BFS_COLORS environment variable | Tavian Barnes | 2022-04-15 | 1 | -3/+6 |
| | |||||
* | tests: Quiet errors from chflags | Tavian Barnes | 2022-04-15 | 1 | -1/+1 |
| | |||||
* | tests: Use bfs_diff in more cases | Tavian Barnes | 2022-03-15 | 1 | -22/+5 |
| | |||||
* | tests: Shell style fixes | Tavian Barnes | 2022-03-14 | 1 | -57/+56 |
| | | | | We now support `./tests.sh --bfs="path/with\ spaces/bfs"` | ||||
* | tests: Use -print0 instead of -printf '%p ' for exec flush tests | Tavian Barnes | 2022-03-13 | 1 | -4/+4 |
| | |||||
* | tests: Use plain sort, not bfs_sort | Tavian Barnes | 2022-03-13 | 1 | -17/+2 |
| | | | | | 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 tests | Tavian Barnes | 2022-03-13 | 1 | -15/+11 |
| | |||||
* | parse: Check for globs with unescaped trailing backslashes | Tavian Barnes | 2022-02-28 | 1 | -3/+0 |
| | | | | | | | | | | 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 | ||||
* | regex: Use the encoding from the current locale | Tavian Barnes | 2022-02-24 | 1 | -0/+12 |
| | |||||
* | tests: Mark -fprint/-exec flushing test bfs-specific | Tavian Barnes | 2022-02-18 | 1 | -2/+3 |
| | | | | GNU find doesn't do it, so no reason to require it for compatibility. | ||||
* | exec: Flush I/O streams before executing anything | Tavian Barnes | 2022-02-11 | 1 | -1/+37 |
| | | | | | | 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. | ||||
* | tests: Use skip_if for tests that need /dev/full | Tavian Barnes | 2022-02-11 | 1 | -22/+14 |
| | |||||
* | tests: Add a test that -exit suppresses the implicit -print | Tavian Barnes | 2022-02-10 | 1 | -0/+5 |
| | |||||
* | tests: Skip case insensitive tests if FNM_CASEFOLD is missing | Tavian Barnes | 2022-02-08 | 1 | -0/+5 |
| | |||||
* | tests: Separate skipped tests from passing tests | Tavian Barnes | 2022-02-08 | 1 | -34/+39 |
| | |||||
* | tests: Disable some glob tests on macOS | Tavian Barnes | 2022-02-04 | 1 | -0/+10 |
| | | | | | macOS seems to have a non-compliant fnmatch() that doesn't treat invalid character class expressions literally. | ||||
* | regex: Add support for emacs and grep types | Tavian Barnes | 2022-02-04 | 1 | -0/+18 |
| | |||||
* | tests: Add tests for syntactically invalid globs | Tavian Barnes | 2022-02-02 | 1 | -0/+24 |
| | |||||
* | tests: New tests for -i?wholename | Tavian Barnes | 2022-02-01 | 1 | -0/+12 |
| | |||||
* | tests: New test for ** in a glob | Tavian Barnes | 2022-02-01 | 1 | -0/+5 |
| | |||||
* | tests: New test for -prune on a non-directory | Tavian Barnes | 2022-02-01 | 1 | -0/+5 |
| | |||||
* | tests: Try to color diff output | Tavian Barnes | 2022-02-01 | 1 | -11/+18 |
| | |||||
* | tests: set -P for the whole script | Tavian Barnes | 2022-02-01 | 1 | -2/+1 |
| | | | | We rely on physical path resolution in test_execdir_pwd. | ||||
* | tests: Allow tests.sh to be invoked from any directory | Tavian Barnes | 2022-02-01 | 1 | -13/+21 |
| | | | | | This also resolves the path passed to --bfs early, so --bfs=./bfs now works. | ||||
* | parse: Add support for ed and sed regexes | Tavian Barnes | 2022-01-30 | 1 | -0/+12 |
| | | | | They're apparently the same as POSIX basic regexes. | ||||
* | Revert "tests: Add a test for posix-basic alternation" | Tavian Barnes | 2022-01-29 | 1 | -5/+0 |
| | | | | | | | Turns out alternation is not actually part of the POSIX basic regular expression language, it's just a glibc extension. This reverts commit c898af13a671ee92a056467d324f16823594eb1c. | ||||
* | tests: Add a test for posix-basic alternation | Tavian Barnes | 2022-01-29 | 1 | -0/+5 |
| | |||||
* | ci/macos: Switch back to macos-latest | Tavian Barnes | 2021-12-19 | 1 | -22/+29 |
| | |||||
* | tests: Set TZ to a real timezone | Tavian Barnes | 2021-12-10 | 1 | -1/+1 |
| | | | | | | | POSIX states that the offset is not optional in the TZ environment variable. Link: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html | ||||
* | parse: Switch back to O_TRUNC from explicit ftruncate() | Tavian Barnes | 2021-10-19 | 1 | -15/+9 |
| | | | | | | | | O_TRUNC is not equivalent to an unconditional ftruncate(), e.g. for device files. This reverts the behaviour change from 78944c81, which was never released and is not supported in other find implementations. | ||||
* | tests: Distinguish between failures and crashes | Tavian Barnes | 2021-10-19 | 1 | -47/+61 |
| | |||||
* | tests: Set abort_on_error=1 for the sanitizers | Tavian Barnes | 2021-10-19 | 1 | -0/+6 |
| | | | | This makes it easier to distinguish crashes from expected failures | ||||
* | printf: Colorize file names/paths in simple cases | Tavian Barnes | 2021-10-09 | 1 | -0/+5 |
| | |||||
* | tests: Add a test for an operator in an unexpected position | Tavian Barnes | 2021-10-01 | 1 | -0/+5 |
| | |||||
* | tests: Add tests for parsing invalid integers | Tavian Barnes | 2021-10-01 | 1 | -0/+21 |
| | | | | And give some better error messages. | ||||
* | tests: Add a tests for missing and nonexistent paths | Tavian Barnes | 2021-10-01 | 1 | -0/+20 |
| | |||||
* | Don't truncate files until we know they're not duplicates | Tavian Barnes | 2021-09-26 | 1 | -0/+29 |
| | |||||
* | ctx: Also deduplicate the standard streams | Tavian Barnes | 2021-09-21 | 1 | -5/+50 |
| | | | | | | This fixes some potential missing output when the same file is used in a redirection and something like -fprint. The main benefit is smarter handling of /dev/stdout, which will now share the CFILE* with cout. | ||||
* | tests: Make the -files0-from tests weirder | Tavian Barnes | 2021-09-15 | 1 | -3/+5 |
| | |||||
* | Implement -files0-from FILE | Tavian Barnes | 2021-09-15 | 1 | -0/+37 |
| | | | | | See https://savannah.gnu.org/bugs/?60383 for the development of the corresponding GNU find feature. | ||||
* | Use /usr/bin/env bash as the shebang in scripts | Tavian Barnes | 2021-08-05 | 1 | -1/+1 |
| | | | | This should reduce the need for patches on the BSDs. |