From 77e594145c6c3da49f5e65a793d7cba90091f6bd Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 3 Nov 2020 13:29:57 -0500 Subject: New -status option to display a status bar --- parse.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'parse.c') diff --git a/parse.c b/parse.c index 7113a1f..458d736 100644 --- a/parse.c +++ b/parse.c @@ -2305,6 +2305,14 @@ static struct expr *parse_sparse(struct parser_state *state, int arg1, int arg2) return expr; } +/** + * Parse -status. + */ +static struct expr *parse_status(struct parser_state *state, int arg1, int arg2) { + state->ctx->status = true; + return parse_nullary_option(state); +} + /** * Parse -x?type [bcdpflsD]. */ @@ -2658,8 +2666,9 @@ static struct expr *parse_help(struct parser_state *state, int arg1, int arg2) { cfprintf(cout, " ${blu}-noleaf${rs}\n"); cfprintf(cout, " Ignored; for compatibility with GNU find\n"); cfprintf(cout, " ${blu}-regextype${rs} ${bld}TYPE${rs}\n"); - cfprintf(cout, " Use ${bld}TYPE${rs}-flavored regexes (default: ${bld}posix-basic${rs}; see ${blu}-regextype${rs}" - " ${bld}help${rs})\n"); + cfprintf(cout, " Use ${bld}TYPE${rs}-flavored regexes (default: ${bld}posix-basic${rs}; see ${blu}-regextype${rs} ${bld}help${rs})\n"); + cfprintf(cout, " ${blu}-status${rs}\n"); + cfprintf(cout, " Display a status bar while searching\n"); cfprintf(cout, " ${blu}-unique${rs}\n"); cfprintf(cout, " Skip any files that have already been seen\n"); cfprintf(cout, " ${blu}-warn${rs}\n"); @@ -2951,10 +2960,11 @@ static const struct table_entry parse_table[] = { {"-since", T_TEST, parse_since, BFS_STAT_MTIME}, {"-size", T_TEST, parse_size}, {"-sparse", T_TEST, parse_sparse}, + {"-status", T_OPTION, parse_status}, {"-true", T_TEST, parse_const, true}, {"-type", T_TEST, parse_type, false}, {"-uid", T_TEST, parse_user}, - {"-unique", T_ACTION, parse_unique}, + {"-unique", T_OPTION, parse_unique}, {"-used", T_TEST, parse_used}, {"-user", T_TEST, parse_user}, {"-version", T_ACTION, parse_version}, @@ -3410,6 +3420,9 @@ void bfs_ctx_dump(const struct bfs_ctx *ctx, enum debug_flags flag) { if (ctx->flags & BFTW_SKIP_MOUNTS) { cfprintf(cerr, "${blu}-mount${rs} "); } + if (ctx->status) { + cfprintf(cerr, "${blu}-status${rs} "); + } if (ctx->unique) { cfprintf(cerr, "${blu}-unique${rs} "); } -- cgit v1.2.3