getargs: minor simplification
authorAkim Demaille <akim@lrde.epita.fr>
Thu, 14 Feb 2013 13:57:18 +0000 (14:57 +0100)
committerAkim Demaille <akim@lrde.epita.fr>
Sat, 16 Feb 2013 06:45:14 +0000 (07:45 +0100)
* src/getargs.c (flag_argmatch): Simplify the handling of "none".

src/getargs.c

index fd96fe1..82c1298 100644 (file)
@@ -84,23 +84,19 @@ flag_argmatch (const char *option,
                const char * const keys[], const int values[],
                int all, int *flags, char *arg, size_t no)
 {
-  int value = 0;
-  value = XARGMATCH (option, arg + no, keys, values);
+  int value = XARGMATCH (option, arg + no, keys, values);
 
-  if (value)
+  /* -rnone == -rno-all, and -rno-none == -rall.  */
+  if (!value)
     {
-      if (no)
-        *flags &= ~value;
-      else
-        *flags |= value;
+      value = all;
+      no = !no;
     }
+
+  if (no)
+    *flags &= ~value;
   else
-    {
-      if (no)
-        *flags |= all;
-      else
-        *flags &= ~all;
-    }
+    *flags |= value;
 }
 
 /** Decode an option's set of keys.