From 8123d63c5b76909ce70f09614ac0e45760a69d71 Mon Sep 17 00:00:00 2001 From: Bert Date: Fri, 28 Jan 2011 13:34:16 +0100 Subject: Added plenty lots of options --- options.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) (limited to 'options.c') diff --git a/options.c b/options.c index b0beae9..b0f3186 100644 --- a/options.c +++ b/options.c @@ -29,7 +29,7 @@ options_t _options; const options_t *options = (const options_t*) &_options; void print_usage() { - printf("usage: sxiv [-hv] [-w WIDTH[xHEIGHT]] FILES...\n"); + printf("usage: sxiv [-dfhpsvZ] [-w WIDTH[xHEIGHT]] [-z ZOOM] FILES...\n"); } void print_version() { @@ -39,19 +39,37 @@ void print_version() { void parse_options(int argc, char **argv) { unsigned short w, h; + float z; int opt; + _options.scalemode = SCALE_MODE; + _options.zoom = 1.0; + _options.aa = 1; + _options.winw = w = 0; _options.winh = h = 0; + _options.fullscreen = 0; - while ((opt = getopt(argc, argv, "hvw:")) != -1) { + while ((opt = getopt(argc, argv, "dfhpsvw:Zz:")) != -1) { switch (opt) { case '?': print_usage(); exit(1); + case 'd': + _options.scalemode = SCALE_DOWN; + break; + case 'f': + _options.fullscreen = 1; + break; case 'h': print_usage(); exit(0); + case 'p': + _options.aa = 0; + break; + case 's': + _options.scalemode = SCALE_FIT; + break; case 'v': print_version(); exit(0); @@ -65,6 +83,20 @@ void parse_options(int argc, char **argv) { _options.winh = (int) h; } break; + case 'Z': + _options.scalemode = SCALE_ZOOM; + _options.zoom = 1.0; + break; + case 'z': + _options.scalemode = SCALE_ZOOM; + if (!sscanf(optarg, "%f", &z) || z < 0) { + fprintf(stderr, "sxiv: invalid argument for option -z: %s\n", + optarg); + exit(1); + } else { + _options.zoom = z / 100.0; + } + break; } } -- cgit v1.2.3-54-g00ecf