On Wed, Sep 4, 2013 at 11:29 PM, Libo Chen <clbchenlibo.c...@huawei.com>wrote:

> remove exit from function usage and add a structure like usage function
> in the other tools.
> This is suggested by Ivana Hutarova Varekova <varek...@redhat.com>
>
> now usage willn't exit, so we should help it in err case.
>
> v4:
>  - fix some code style reported by checkpatch.pl
>
> Signed-off-by: Libo Chen <clbchenlibo.c...@huawei.com>
> ---
>  src/tools/cgconfig.c |   61
> ++++++++++++++++++++++++++++---------------------
>  1 files changed, 35 insertions(+), 26 deletions(-)
>
> diff --git a/src/tools/cgconfig.c b/src/tools/cgconfig.c
> index 900c235..6ed4c77 100644
> --- a/src/tools/cgconfig.c
> +++ b/src/tools/cgconfig.c
> @@ -35,29 +35,34 @@
>
>  static struct cgroup_string_list cfg_files;
>
> -static void usage(char *progname)
> +static void usage(int status, char *progname)
>  {
> -       printf("Usage: %s [-h] [-f mode] [-d mode] [-s mode] "\
> +       if (status != 0) {
> +               fprintf(stderr, "Wrong input parameters, "\
> +                       "try %s -h' for more information.\n", progname);
>

Add a return here, and you don't need the else.


> +       } else {
> +               printf("Usage: %s [-h] [-f mode] [-d mode] [-s mode] "\
>                         "[-t <tuid>:<tgid>] [-a <agid>:<auid>] "\
>                         "[-l FILE] [-L DIR] ...\n", basename(progname));
> -       printf("Parse and load the specified cgroups configuration
> file\n");
> -       printf("\n");
> -       printf("  -h, --help                    Display this help\n");
> -       printf("  -l, --load=FILE               Parse and load the
> cgroups"\
> -                       " configuration file\n");
> -       printf("  -L, --load-directory=DIR      Parse and load the
> cgroups"\
> -                       " configuration files from a directory\n");
> -       printf("  -a <tuid>:<tgid>              Default owner of groups
> files"\
> -                       " and directories\n");
> -       printf("  -d, --dperm=mode              Default group directory"\
> -                       " permissions\n");
> -       printf("  -f, --fperm=mode              Default group file"\
> -                       " permissions\n");
> -       printf("  -s, --tperm=mode              Default tasks file"
> -                       " permissions\n");
> -       printf("  -t <tuid>:<tgid>              Default owner of the tasks
> "
> -                       "file\n");
> -       exit(2);
> +               printf("Parse and load the specified cgroups "\
> +                       "configuration file\n");
> +               printf("\n");
> +               printf("  -h, --help                    Display this
> help\n");
> +               printf("  -l, --load=FILE               Parse and load "\
> +                       "the cgroups configuration file\n");
> +               printf("  -L, --load-directory=DIR      Parse and load "\
> +                       "the cgroups configuration files from a
> directory\n");
> +               printf("  -a <tuid>:<tgid>              Default owner of "\
> +                       "groups files and directories\n");
> +               printf("  -d, --dperm=mode              Default group "\
> +                       "directory permissions\n");
> +               printf("  -f, --fperm=mode              Default group file
> "\
> +                       "permissions\n");
> +               printf("  -s, --tperm=mode              Default tasks file
> "\
> +                       "permissions\n");
> +               printf("  -t <tuid>:<tgid>              Default owner of "
> +                       "the tasks file\n");
> +       }
>  }
>
>  int main(int argc, char *argv[])
> @@ -86,8 +91,10 @@ int main(int argc, char *argv[])
>
>         cgroup_set_default_logger(-1);
>
> -       if (argc < 2)
> -               usage(argv[0]); /* usage() exits */
> +       if (argc < 2) {
> +               usage(1, argv[0]);
> +               return -1;
> +       }
>
>         ret = cgroup_string_list_init(&cfg_files, argc/2);
>
> @@ -95,8 +102,9 @@ int main(int argc, char *argv[])
>                         NULL)) > 0) {
>                 switch (c) {
>                 case 'h':
> -                       usage(argv[0]);
> -                       break;
> +                       usage(0, argv[0]);
> +                       error = 0;
> +                       goto err;
>                 case 'l':
>                         error = cgroup_string_list_add_item(&cfg_files,
> optarg);
>                         if (error) {
> @@ -138,8 +146,9 @@ int main(int argc, char *argv[])
>                                 goto err;
>                         break;
>                 default:
> -                       usage(argv[0]);
> -                       break;
> +                       usage(1, argv[0]);
> +                       error = -1;
> +                       goto err;
>                 }
>         }
>
> --
> 1.7.1
>
>
>
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
_______________________________________________
Libcg-devel mailing list
Libcg-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to