From bfaa6f7c60dabbdfe35abef344f2fad833d43f13 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Sun, 8 Jun 2008 17:44:36 -0400 Subject: Add new FLAG type to command parser api 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 | 2 +- src/libply/ply-command-parser.c | 7 +++++-- src/libply/ply-command-parser.h | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/client/plymouth.c b/src/client/plymouth.c index d544e9c..d4d04b2 100644 --- a/src/client/plymouth.c +++ b/src/client/plymouth.c @@ -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, diff --git a/src/libply/ply-command-parser.c b/src/libply/ply-command-parser.c index 2516554..2dc26c1 100644 --- a/src/libply/ply-command-parser.c +++ b/src/libply/ply-command-parser.c @@ -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, diff --git a/src/libply/ply-command-parser.h b/src/libply/ply-command-parser.h index 75c91fb..38078e4 100644 --- a/src/libply/ply-command-parser.h +++ b/src/libply/ply-command-parser.h @@ -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; -- cgit