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