From fdf287440fa8486f0e96c8597349d5d25e98fb6a Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 31 Jul 2007 23:06:09 +0200 Subject: [PATCH] Be a little more clever in finding child options We don't need ->parent_seen, just start from the next option. Signed-off-by: Jens Axboe --- parse.c | 16 ++++++---------- parse.h | 1 - 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/parse.c b/parse.c index ffe435a4..b40d51c7 100644 --- a/parse.c +++ b/parse.c @@ -566,19 +566,15 @@ static struct fio_option *find_child(struct fio_option *options, { struct fio_option *__o; - for (__o = &options[0]; __o->name; __o++) { - if (__o->parent && !strcmp(__o->parent, o->name) - && !__o->parent_seen) { - __o->parent_seen = 1; + for (__o = options + 1; __o->name; __o++) + if (__o->parent && !strcmp(__o->parent, o->name)) return __o; - } - } return NULL; } -static void print_option(struct fio_option *options, struct fio_option *o, - struct fio_option *org, int level) +static void print_option(struct fio_option *o, struct fio_option *org, + int level) { char name[256], *p; @@ -594,7 +590,7 @@ static void print_option(struct fio_option *options, struct fio_option *o, sprintf(p, "%s", o->name); printf("%-24s: %s\n", name, o->help); - print_option(options, find_child(options, org), org, level + 1); + print_option(find_child(o, org), org, level + 1); } int show_cmd_help(struct fio_option *options, const char *name) @@ -633,7 +629,7 @@ int show_cmd_help(struct fio_option *options, const char *name) printf("%24s: %s\n", o->name, o->help); if (show_all) { if (!o->parent) - print_option(options, o, NULL, 0); + print_option(o, NULL, 0); continue; } } diff --git a/parse.h b/parse.h index 36ff2b23..c3b66d75 100644 --- a/parse.h +++ b/parse.h @@ -46,7 +46,6 @@ struct fio_option { const char *def; /* default setting */ const struct value_pair posval[PARSE_MAX_VP];/* possible values */ const char *parent; /* parent option */ - char parent_seen; }; typedef int (str_cb_fn)(void *, char *); -- 2.25.1