diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2022-04-15 14:34:35 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2022-04-15 14:34:35 -0400 |
commit | acf934993a8112023f111ae1dfedc90f40e1d496 (patch) | |
tree | 71498aed03fb8a0f0a225fa29a3aa349e7bcc455 | |
parent | f12551285e1be84c586f1697a7f864b155ba5706 (diff) | |
download | bfs-acf934993a8112023f111ae1dfedc90f40e1d496.tar.xz |
bftw: New BFTW_BUFFER flag
-rw-r--r-- | bftw.c | 4 | ||||
-rw-r--r-- | bftw.h | 2 |
2 files changed, 4 insertions, 2 deletions
@@ -1168,7 +1168,7 @@ static int bftw_stream(const struct bftw_args *args) { return -1; } - assert(!(state.flags & BFTW_SORT)); + assert(!(state.flags & (BFTW_SORT | BFTW_BUFFER))); bftw_batch_start(&state); for (size_t i = 0; i < args->npaths; ++i) { @@ -1279,7 +1279,7 @@ done: /** Select bftw_stream() or bftw_batch() appropriately. */ static int bftw_auto(const struct bftw_args *args) { - if (args->flags & BFTW_SORT) { + if (args->flags & (BFTW_SORT | BFTW_BUFFER)) { return bftw_batch(args); } else { return bftw_stream(args); @@ -167,6 +167,8 @@ enum bftw_flags { BFTW_PRUNE_MOUNTS = 1 << 7, /** Sort directory entries before processing them. */ BFTW_SORT = 1 << 8, + /** Read each directory into memory before processing its children. */ + BFTW_BUFFER = 1 << 9, }; /** |