[PATCH 5/5] reg: Simplify syntax and help logic
Hugh McMaster
hugh.mcmaster at outlook.com
Tue May 24 07:48:59 CDT 2016
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
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
More information about the wine-patches
mailing list