]> git.refcnt.org Git - colorize.git/blobdiff - colorize.c
Merge multiple vfprintf_fail() calls for --clean[-all]
[colorize.git] / colorize.c
index fc5bd90c3ebe78d79de99e3d1715ccc3cd9ca22d..8a1cb5236adc3edd3e268afe70acef24eab4a658 100644 (file)
@@ -218,7 +218,7 @@ static const struct {
 };
 
 static unsigned int opts_set;
-enum {
+enum opt_set {
     OPT_ATTR_SET = 0x01,
     OPT_EXCLUDE_RANDOM_SET = 0x02,
     OPT_OMIT_COLOR_EMPTY_SET = 0x04
@@ -412,14 +412,21 @@ main (int argc, char **argv)
         if (clean && clean_all)
           vfprintf_fail (formats[FMT_GENERIC], "--clean and --clean-all switch are mutually exclusive");
         if (arg_cnt > 1)
-          {
-            const char *const format = "%s %s";
-            const char *const message = "switch cannot be used with more than one file";
-            if (clean)
-              vfprintf_fail (format, "--clean", message);
-            else if (clean_all)
-              vfprintf_fail (format, "--clean-all", message);
-          }
+          vfprintf_fail ("--clean%s switch cannot be used with more than one file", clean_all ? "-all" : "");
+        {
+          unsigned int i;
+          const struct option_set {
+              const char *option;
+              enum opt_set set;
+          } options[] = {
+              { "attr",             OPT_ATTR_SET             },
+              { "exclude-random",   OPT_EXCLUDE_RANDOM_SET   },
+              { "omit-color-empty", OPT_OMIT_COLOR_EMPTY_SET },
+          };
+          for (i = 0; i < COUNT_OF (options, struct option_set); i++)
+            if (opts_set & options[i].set)
+              vfprintf_diag ("--%s switch has no meaning with --clean%s", options[i].option, clean_all ? "-all" : "");
+        }
       }
     else
       {