[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