Re: [PATCH v6 05/17] hook API: add a run_hooks_l() wrapper
- From
Glen Choo <chooglen@google.com>
- Date
- Jan 6, 2022, 18:56 UTC
- Message-ID
- <kl6lk0fc7kx1.fsf@chooglen-macbookpro.roam.corp.google.com>
- In-Reply-To
- <patch-v6-05.17-d6162fbef80-20211222T035755Z-avarab@gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 53 quoted lines
> Add a run_hooks_l() wrapper, we'll use it in subsequent commits for
> the simple cases of wanting to run a single hook under a given name
> along with a list of arguments.
>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
> hook.c | 14 ++++++++++++++
> hook.h | 10 ++++++++++
> 2 files changed, 24 insertions(+)
>
> diff --git a/hook.c b/hook.c
> index d67a114e62d..1ad123422b2 100644
> --- a/hook.c
> +++ b/hook.c
> @@ -149,3 +149,17 @@ int run_hooks(const char *hook_name)
>
> return run_hooks_opt(hook_name, &opt);
> }
> +
> +int run_hooks_l(const char *hook_name, ...)
> +{
> + struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
> + va_list ap;
> + const char *arg;
> +
> + va_start(ap, hook_name);
> + while ((arg = va_arg(ap, const char *)))
> + strvec_push(&opt.args, arg);
> + va_end(ap);
> +
> + return run_hooks_opt(hook_name, &opt);
> +}
> diff --git a/hook.h b/hook.h
> index 9c358789958..54528395953 100644
> --- a/hook.h
> +++ b/hook.h
> @@ -54,4 +54,14 @@ int run_hooks_opt(const char *hook_name, struct run_hooks_opt *options);
> * run_hooks_opt" initialized with "RUN_HOOKS_OPT_INIT".
> */
> int run_hooks(const char *hook_name);
> +
> +/**
> + * Like run_hooks(), a wrapper for run_hooks_opt().
> + *
> + * In addition to the wrapping behavior provided by run_hooks(), this
> + * wrapper takes a list of strings terminated by a NULL
> + * argument. These things will be used as positional arguments to the
> + * hook. This function behaves like the old run_hook_le() API.
> + */
> +int run_hooks_l(const char *hook_name, ...);
> #endif
> --
> 2.34.1.1146.gb52885e7c44Same comments as patch 2 [1], i.e. this looks good; it's technically dead code, but that's mostly a matter of taste.
[1] https://lore.kernel.org/git/kl6lmtk87l1t.fsf@chooglen-macbookpro.roam.corp.google.com