[U-Boot] [PATCH 06/11] env: Allow env_attr_walk to pass a priv * to callback
Joe Hershberger
joe.hershberger at gmail.com
Wed Apr 22 00:20:54 CEST 2015
Hi All,
On Tue, Apr 21, 2015 at 5:02 PM, Joe Hershberger <joe.hershberger at ni.com> wrote:
> In some cases it can be helpful to have context in the callback about
> the calling situation. This is needed for following patches.
>
> Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
> ---
8<--snip-->8
> diff --git a/common/env_attr.c b/common/env_attr.c
> index d266142..f0bf504 100644
> --- a/common/env_attr.c
> +++ b/common/env_attr.c
> @@ -26,7 +26,8 @@
> * list = entry[,list]
> */
> int env_attr_walk(const char *attr_list,
> - int (*callback)(const char *name, const char *attributes))
> + int (*callback)(const char *name, const char *attributes, void *priv),
> + void *priv)
> {
> const char *entry, *entry_end;
> char *name, *attributes;
> @@ -93,7 +94,7 @@ int env_attr_walk(const char *attr_list,
> if (strlen(name) != 0) {
> int retval = 0;
>
> - retval = callback(name, attributes);
> + retval = callback(name, attributes, priv);
> if (retval) {
> free(entry_cpy);
> return retval;
> @@ -120,8 +121,11 @@ static int reverse_name_search(const char *searched, const char *search_for,
> if (result)
> *result = NULL;
>
> - if (*search_for == '\0')
> - return (char *)searched;
> + if (*search_for == '\0') {
> + if (result)
> + *result = searched;
> + return strlen(searched);
> + }
I noticed shortly after sending this that this hunk belongs in the
previous patch.
>
> for (;;) {
> const char *match = strstr(cur_searched, search_for);
> @@ -153,7 +157,8 @@ static int reverse_name_search(const char *searched, const char *search_for,
> *nextch != '\0')
> continue;
>
> - *result = match;
> + if (result)
> + *result = match;
As does this hunk.
> result_size = strlen(search_for);
> }
>
8<--snip-->8
My apologies... I'll resend after any other comments. Please do not
apply as is, Tom.
Thanks,
-Joe
More information about the U-Boot
mailing list