]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
Add new FLAG type to command parser api
authorRay Strode <rstrode@redhat.com>
Sun, 8 Jun 2008 21:44:36 +0000 (17:44 -0400)
committerRay Strode <rstrode@redhat.com>
Sun, 8 Jun 2008 21:44:36 +0000 (17:44 -0400)
It's just like boolean but doesn't advertise that it can
take the form --flag=false.  This makes the --help output
for --help say --help instead of --help={true|false}

src/client/plymouth.c
src/libply/ply-command-parser.c
src/libply/ply-command-parser.h

index d544e9c572840fea9f06d5723dbf4100fd80de74..d4d04b25f10caedc8393359540b7d796c7213b2a 100644 (file)
@@ -89,7 +89,7 @@ main (int    argc,
   command_parser = ply_command_parser_new ("plymouth", "Boot splash control client");
 
   ply_command_parser_add_options (command_parser,
-                                  "help", "This help message", PLY_COMMAND_OPTION_TYPE_BOOLEAN,
+                                  "help", "This help message", PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "quit", "Tell boot daemon to quit", PLY_COMMAND_OPTION_TYPE_BOOLEAN,
                                   "sysinit", "Tell boot daemon root filesystem is mounted read-write", PLY_COMMAND_OPTION_TYPE_BOOLEAN,
                                   "show-splash", "Show splash screen", PLY_COMMAND_OPTION_TYPE_BOOLEAN,
index 2516554686dc4ba3321d737ff48c287555e08948..2dc26c18d5af0bea6170f6f38cc6a08e606ee743 100644 (file)
@@ -421,6 +421,7 @@ ply_command_parser_get_options_for_command (ply_command_parser_t *parser,
         {
           switch (option->type)
             {
+              case PLY_COMMAND_OPTION_TYPE_FLAG:
               case PLY_COMMAND_OPTION_TYPE_BOOLEAN:
                 {
                   bool *option_result;
@@ -541,7 +542,8 @@ ply_command_option_read_arguments (ply_command_option_t *option,
 
   if (node == NULL)
     {
-      if (option->type == PLY_COMMAND_OPTION_TYPE_BOOLEAN)
+      if (option->type == PLY_COMMAND_OPTION_TYPE_BOOLEAN ||
+          option->type == PLY_COMMAND_OPTION_TYPE_FLAG)
         {
           option->result.as_boolean = true;
           return true;
@@ -561,6 +563,7 @@ ply_command_option_read_arguments (ply_command_option_t *option,
 
   switch (option->type)
     {
+      case PLY_COMMAND_OPTION_TYPE_FLAG:
       case PLY_COMMAND_OPTION_TYPE_BOOLEAN:
           option->result.as_boolean = (bool) rpmatch (argument);
           return true;
@@ -817,7 +820,7 @@ main (int    argc,
   parser = ply_command_parser_new (argv[0], "Test Program");
 
   ply_command_parser_add_options (parser,
-                                  "help", "This help message", PLY_COMMAND_OPTION_TYPE_BOOLEAN,
+                                  "help", "This help message", PLY_COMMAND_OPTION_TYPE_FLAG,
                                   NULL);
 
   ply_command_parser_add_command (parser,
index 75c91fb0025b351ffab83c7e71dbc22d7f74fa6e..38078e40dc8a6f8728170f132065dfec0e3678ae 100644 (file)
@@ -32,7 +32,8 @@ typedef void (* ply_command_handler_t) (void *data,
 
 typedef enum
 {
-  PLY_COMMAND_OPTION_TYPE_BOOLEAN = 0,
+  PLY_COMMAND_OPTION_TYPE_FLAG = 0,
+  PLY_COMMAND_OPTION_TYPE_BOOLEAN,
   PLY_COMMAND_OPTION_TYPE_STRING,
   PLY_COMMAND_OPTION_TYPE_INTEGER
 } ply_command_option_type_t;