diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2015-09-15 17:47:22 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2015-09-15 17:47:22 -0400 |
commit | 224f01a6508cececfb327f7692fcab2afb992805 (patch) | |
tree | 879fdc5efb4386aa2e34c54e8623bbfda723bb48 | |
parent | f2c9a7dbca9da36aa0cca8c4d0759e4d0406df91 (diff) | |
download | bfs-224f01a6508cececfb327f7692fcab2afb992805.tar.xz |
Fix -maxdepth handling when -depth is set.
Lost some data due to this bug :(.
-rw-r--r-- | bfs.c | 2 | ||||
-rwxr-xr-x | tests.sh | 16 |
2 files changed, 15 insertions, 3 deletions
@@ -873,7 +873,7 @@ static int cmdline_callback(const char *fpath, const struct BFTW *ftwbuf, void * state.ret = BFTW_SKIP_SUBTREE; } - if (ftwbuf->level >= cl->mindepth) { + if (ftwbuf->level >= cl->mindepth && ftwbuf->level <= cl->maxdepth) { cl->expr->eval(cl->expr, &state); } @@ -47,12 +47,24 @@ function test_0005() { find_diff "$1" -maxdepth 1 } -for i in {1..5}; do +function test_0006() { + basic_structure "$1" + find_diff "$1" -mindepth 1 -depth +} + +function test_0007() { + basic_structure "$1" + find_diff "$1" -maxdepth 1 -depth +} + +for i in {1..7}; do dir="$(mktemp -d)" - test_$(printf '%04d' $i) "$dir" + test="test_$(printf '%04d' $i)" + "$test" "$dir" status=$? rm -rf "$dir" if [ $status -ne 0 ]; then + echo "$test failed!" >&2 exit $status fi done |