From: Carl Worth Date: Thu, 5 Sep 2013 00:05:42 +0000 (-0700) Subject: Make the three --extensions* options mutually exclusive. X-Git-Url: https://git.cworth.org/git?p=glenv;a=commitdiff_plain;h=25190a5158256abe6be58bdb2065ed7f6a403fa5 Make the three --extensions* options mutually exclusive. It's not obvious that the user has thought out what is actually desired if more than one of these options is specified. So we simply forbid that. --- diff --git a/glenv.c b/glenv.c index 6d27ad4..76f6693 100644 --- a/glenv.c +++ b/glenv.c @@ -114,6 +114,14 @@ enum { EXTENSIONS_BLACKLIST_OPT }; +static void +invalid_combination (const char *second, const char *first) +{ + fprintf (stderr, "Error: Option %s cannot be specified after %s\n", + second, first); + exit (1); +} + int main (int argc, char *argv[]) { @@ -172,12 +180,24 @@ main (int argc, char *argv[]) options.shading_language_version = optarg; break; case EXTENSIONS_OPT: + if (options.extensions_whitelist) + invalid_combination ("--extensions", "--extensions-whitelist"); + if (options.extensions_blacklist) + invalid_combination ("--extensions", "--extensions-blacklist"); options.extensions = optarg; break; case EXTENSIONS_WHITELIST_OPT: + if (options.extensions) + invalid_combination ("--extensions-whitelist", "--extensions"); + if (options.extensions_blacklist) + invalid_combination ("--extensions-whitelist", "--extensions-blacklist"); options.extensions_whitelist = optarg; break; case EXTENSIONS_BLACKLIST_OPT: + if (options.extensions) + invalid_combination ("--extensions-blacklist", "--extensions"); + if (options.extensions_whitelist) + invalid_combination ("--extensions-blacklist", "--extensions-whitelist"); options.extensions_blacklist = optarg; break; default: