From 4d1ef0ba1a9eb8293af4611303731c9ece63453d Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Thu, 20 May 2021 09:55:02 +0800 Subject: [PATCH] add function sf_parse_cmd_option_bool --- src/sf_util.c | 38 +++++++++++++++++++++++++++++++++----- src/sf_util.h | 4 ++++ 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/sf_util.c b/src/sf_util.c index 9f73f98..fc3b1b4 100644 --- a/src/sf_util.c +++ b/src/sf_util.c @@ -97,7 +97,7 @@ void sf_usage_ex1(const char *program, const str_ptr_array_t *other_options) { int i; - fprintf(stderr, "Usage: %s [options] " + fprintf(stderr, "\nUsage: %s [options] " "[start | stop | restart]\n\noptions:\n", program); if (other_options != NULL) { @@ -106,7 +106,8 @@ void sf_usage_ex1(const char *program, const str_ptr_array_t *other_options) } } - fprintf(stderr, "\t--without-daemon | --no-daemon: run in foreground\n" + fprintf(stderr, "\t-n | --without-daemon | --no-daemon: " + "run in foreground\n" "\t-V | --version: show version info\n" "\t-h | --help: for this usage\n\n"); } @@ -128,7 +129,7 @@ const char *sf_parse_daemon_mode_and_action_ex1(int argc, char *argv[], for (i=1; imajor, + printf("\n%s V%d.%d.%d\n\n", proc_name, version->major, version->minor, version->patch); return NULL; } @@ -165,6 +167,7 @@ const char *sf_parse_daemon_mode_and_action_ex1(int argc, char *argv[], } if (normal.argc == 0) { + fprintf(stderr, "\nError: expect config file!\n"); sf_usage_ex1(argv[0], other_options); return NULL; } @@ -179,6 +182,31 @@ const char *sf_parse_daemon_mode_and_action_ex1(int argc, char *argv[], return config_filepath; } +void sf_parse_cmd_option_bool(int argc, char *argv[], + const string_t *short_option, const string_t *long_option, + bool *value) +{ + char **pp; + char **end; + int len; + + *value = false; + end = argv + argc; + for (pp=argv + 1; pp