Ken'ichi Ohmichi wrote:
> Hi,
> 
> The loop in cgroup_parse_rules() is a little long now, and it is not
> easy to read the loop.
> Then, This patch shortens the loop for the readability.

checkpatch.pl does not like assignments in if conditions:

ERROR: do not use assignment in if condition
#30: FILE: src/api.c:251:
+       if ((itr = strchr(rule, '#')))

ERROR: do not use assignment in if condition
#34: FILE: src/api.c:255:
+       if ((itr = strchr(rule, '\n')))

ERROR: do not use assignment in if condition
#71: FILE: src/api.c:364:
+               if (!(itr = cg_skip_unused_charactors_in_rule(buff))) {


I know, these errors were already there...

> 
> 
> Thanks
> Ken'ichi Ohmichi
> 
> Signed-off-by: Ken'ichi Ohmichi <[email protected]>
> ---
>  src/api.c |   43 +++++++++++++++++++++++++++----------------
>  1 files changed, 27 insertions(+), 16 deletions(-)
> 
> diff --git a/src/api.c b/src/api.c
> index 75dc92a..237d4e6 100644
> --- a/src/api.c
> +++ b/src/api.c
> @@ -243,6 +243,30 @@ static void cgroup_free_rule_list(struct 
> cgroup_rule_list *rl)
>       rl->tail = NULL;
>  }
>  
> +static char *cg_skip_unused_charactors_in_rule(char *rule)
> +{
> +     char *itr;
> +
> +     /* We ignore anything after a # sign as comments. */
> +     if ((itr = strchr(rule, '#')))
> +             *itr = '\0';
> +
> +     /* We also need to remove the newline character. */
> +     if ((itr = strchr(rule, '\n')))
> +             *itr = '\0';
> +
> +     /* Now, skip any leading tabs and spaces. */
> +     itr = rule;
> +     while (itr && isblank(*itr))
> +             itr++;
> +
> +     /* If there's nothing left, we can ignore this line. */
> +     if (!strlen(itr))
> +             return NULL;
> +
> +     return itr;
> +}
> +
>  /**
>   * Parse the configuration file that maps UID/GIDs to cgroups.  If ever the
>   * configuration file is modified, applications should call this function to
> @@ -337,23 +361,10 @@ static int cgroup_parse_rules(bool cache, uid_t muid, 
> gid_t mgid)
>       while ((itr = fgets(buff, sizeof(buff), fp)) != NULL) {
>               linenum++;
>  
> -             /* We ignore anything after a # sign as comments. */
> -             if ((itr = strchr(buff, '#')))
> -                     *itr = '\0';
> -
> -             /* We also need to remove the newline character. */
> -             if ((itr = strchr(buff, '\n')))
> -                     *itr = '\0';
> -
> -             /* Now, skip any leading tabs and spaces. */
> -             itr = &buff;
> -             while (itr && isblank(*itr))
> -                     itr++;
> -
> -             /* If there's nothing left, we can ignore this line. */
> -             if (!strlen(itr))
> +             if (!(itr = cg_skip_unused_charactors_in_rule(buff))) {
> +                     memset(buff, '\0', sizeof(buff));

Why memset? fgets should always put '\0' at the end.

>                       continue;
> -
> +             }
>               /*
>                * If we skipped the last rule and this rule is a continuation
>                * of it (begins with %), then we should skip this rule too.
> 
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity professionals. Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, & 
> iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
> _______________________________________________
> Libcg-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libcg-devel


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to