From: Hugh McMaster Subject: [PATCH 5/5] reg: Simplify syntax and help logic Message-Id: Date: Tue, 24 May 2016 12:48:59 +0000 In-Reply-To: <1464094072-2819-1-git-send-email-hugh.mcmaster@outlook.com> References: <1464094072-2819-1-git-send-email-hugh.mcmaster@outlook.com> Signed-off-by: Hugh McMaster --- programs/reg/reg.c | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/programs/reg/reg.c b/programs/reg/reg.c index e3c2fdc..e10e4a0 100644 --- a/programs/reg/reg.c +++ b/programs/reg/reg.c @@ -877,6 +877,13 @@ static int reg_query(WCHAR *key_name, WCHAR *value_name, BOOL value_empty, BOOL return ret; } +static int invalid_syntax(WCHAR *func) +{ + output_message(STRING_INVALID_SYNTAX); + output_message(STRING_FUNC_HELP, struprW(func)); + return 1; +} + int wmain(int argc, WCHAR *argvW[]) { int i; @@ -893,6 +900,7 @@ int wmain(int argc, WCHAR *argvW[]) static const WCHAR slashVAW[] = {'/','v','a',0}; static const WCHAR slashVEW[] = {'/','v','e',0}; static const WCHAR slashHelpW[] = {'/','?',0}; + BOOL option_help = FALSE; if (argc == 1) { @@ -907,19 +915,16 @@ int wmain(int argc, WCHAR *argvW[]) return 0; } + option_help = (!lstrcmpW(argvW[2], slashHelpW) || !lstrcmpiW(argvW[2], slashHW)); + if (!lstrcmpiW(argvW[1], addW)) { WCHAR *key_name, *value_name = NULL, *type = NULL, separator = '\0', *data = NULL; BOOL value_empty = FALSE, force = FALSE; - if (argc < 3) - { - output_message(STRING_INVALID_SYNTAX); - output_message(STRING_FUNC_HELP, struprW(argvW[1])); - return 1; - } - else if (argc == 3 && (!lstrcmpW(argvW[2], slashHelpW) || - !lstrcmpiW(argvW[2], slashHW))) + if (argc < 3 || (argc > 3 && option_help)) + return invalid_syntax(argvW[1]); + else if (option_help) { output_message(STRING_ADD_USAGE); return 0; @@ -970,14 +975,9 @@ int wmain(int argc, WCHAR *argvW[]) WCHAR *key_name, *value_name = NULL; BOOL value_empty = FALSE, value_all = FALSE, force = FALSE; - if (argc < 3) - { - output_message(STRING_INVALID_SYNTAX); - output_message(STRING_FUNC_HELP, struprW(argvW[1])); - return 1; - } - else if (argc == 3 && (!lstrcmpW(argvW[2], slashHelpW) || - !lstrcmpiW(argvW[2], slashHW))) + if (argc < 3 || (argc > 3 && option_help)) + return invalid_syntax(argvW[1]); + else if (option_help) { output_message(STRING_DELETE_USAGE); return 0; @@ -1008,14 +1008,9 @@ int wmain(int argc, WCHAR *argvW[]) WCHAR *key_name, *value_name = NULL; BOOL value_empty = FALSE, recurse = FALSE; - if (argc < 3) - { - output_message(STRING_INVALID_SYNTAX); - output_message(STRING_FUNC_HELP, struprW(argvW[1])); - return 1; - } - else if (argc == 3 && (!lstrcmpW(argvW[2], slashHelpW) || - !lstrcmpiW(argvW[2], slashHW))) + if (argc < 3 || (argc > 3 && option_help)) + return invalid_syntax(argvW[1]); + else if (option_help) { output_message(STRING_QUERY_USAGE); return 0; -- 1.9.1