From 2252a0148d11fc988131eb0bf6397453427d67e8 Mon Sep 17 00:00:00 2001 From: Bert Date: Wed, 25 May 2011 09:23:23 +0200 Subject: New option: -n, start at given picture --- options.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'options.c') diff --git a/options.c b/options.c index 0644363..b2b3a14 100644 --- a/options.c +++ b/options.c @@ -31,7 +31,7 @@ options_t _options; const options_t *options = (const options_t*) &_options; void print_usage() { - printf("usage: sxiv [-cdFfhpqrstvZ] [-g GEOMETRY] [-z ZOOM] FILES...\n"); + printf("usage: sxiv [-cdFfhpqrstvZ] [-g GEOMETRY] [-n NUM] [-z ZOOM] FILES...\n"); } void print_version() { @@ -40,7 +40,9 @@ void print_version() { void parse_options(int argc, char **argv) { float z; - int opt; + int n, opt; + + _options.startnum = 0; _options.scalemode = SCALE_MODE; _options.zoom = 1.0; @@ -55,7 +57,7 @@ void parse_options(int argc, char **argv) { _options.clean_cache = 0; _options.recursive = 0; - while ((opt = getopt(argc, argv, "cdFfg:hpqrstvZz:")) != -1) { + while ((opt = getopt(argc, argv, "cdFfg:hn:pqrstvZz:")) != -1) { switch (opt) { case '?': print_usage(); @@ -78,6 +80,15 @@ void parse_options(int argc, char **argv) { case 'h': print_usage(); exit(0); + case 'n': + if (!sscanf(optarg, "%d", &n) || n < 1) { + fprintf(stderr, "sxiv: invalid argument for option -n: %s\n", + optarg); + exit(1); + } else { + _options.startnum = n - 1; + } + break; case 'p': _options.aa = 0; break; -- cgit v1.2.3-54-g00ecf