aboutsummaryrefslogtreecommitdiffstats
path: root/options.c
diff options
context:
space:
mode:
Diffstat (limited to 'options.c')
-rw-r--r--options.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/options.c b/options.c
index ac91c63..37ad60d 100644
--- a/options.c
+++ b/options.c
@@ -66,8 +66,13 @@ static void print_version(void)
void parse_options(int argc, char **argv)
{
- enum { /* ensure these can't be represented in a single byte */
- OPT_AA = UCHAR_MAX + 1
+ enum {
+ /* ensure these can't be represented in a single byte in order
+ * to avoid conflicts with short opts
+ */
+ OPT_START = UCHAR_MAX,
+ OPT_AA,
+ OPT_AL
};
static const struct optparse_long longopts[] = {
{ "framerate", 'A', OPTPARSE_REQUIRED },
@@ -95,6 +100,7 @@ void parse_options(int argc, char **argv)
{ "zoom", 'z', OPTPARSE_REQUIRED },
{ "null", '0', OPTPARSE_NONE },
{ "anti-alias", OPT_AA, OPTPARSE_OPTIONAL },
+ { "alpha-layer", OPT_AL, OPTPARSE_OPTIONAL },
{ 0 }, /* end */
};
@@ -115,6 +121,7 @@ void parse_options(int argc, char **argv)
_options.scalemode = SCALE_DOWN;
_options.zoom = 1.0;
_options.anti_alias = ANTI_ALIAS;
+ _options.alpha_layer = ALPHA_LAYER;
_options.animate = false;
_options.gamma = 0;
_options.slideshow = 0;
@@ -247,6 +254,11 @@ void parse_options(int argc, char **argv)
error(EXIT_FAILURE, 0, "Invalid argument for option --anti-alias: %s", op.optarg);
_options.anti_alias = op.optarg == NULL;
break;
+ case OPT_AL:
+ if (op.optarg != NULL && !STREQ(op.optarg, "no"))
+ error(EXIT_FAILURE, 0, "Invalid argument for option --alpha-layer: %s", op.optarg);
+ _options.alpha_layer = op.optarg == NULL;
+ break;
}
}