Message ID | 162fb36a-6dd1-c178-9032-d3f4213930a6@web.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | parse-options: simplify parse_options_concat() and parse_options_dup() | expand |
René Scharfe <l.s.r@web.de> writes: > Simplify parse_options_dup() by making it a trivial wrapper of > parse_options_concat() by making use of the facts that the latter > duplicates its input as well and that appending an empty set is a no-op. > ... > + struct option no_options[] = { OPT_END() }; > + > + return parse_options_concat(o, no_options); Can't say if this is tricky or cute, but I like it ;-) Will queue all four. Thanks.
diff --git a/parse-options-cb.c b/parse-options-cb.c index 7d56681130..a28b55be48 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -170,15 +170,9 @@ static size_t parse_options_count(const struct option *opt) struct option *parse_options_dup(const struct option *o) { - const struct option *orig = o; - struct option *opts; - size_t nr = parse_options_count(o); - - ALLOC_ARRAY(opts, nr + 1); - COPY_ARRAY(opts, orig, nr); - memset(opts + nr, 0, sizeof(*opts)); - opts[nr].type = OPTION_END; - return opts; + struct option no_options[] = { OPT_END() }; + + return parse_options_concat(o, no_options); } struct option *parse_options_concat(const struct option *a,
Simplify parse_options_dup() by making it a trivial wrapper of parse_options_concat() by making use of the facts that the latter duplicates its input as well and that appending an empty set is a no-op. Signed-off-by: René Scharfe <l.s.r@web.de> --- parse-options-cb.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) -- 2.25.0