@@ -1,6 +1,6 @@ | |||||
all: sxiv | all: sxiv | ||||
VERSION=git-20110522 | VERSION=git-20110525 | ||||
CC?=gcc | CC?=gcc | ||||
DESTDIR?= | DESTDIR?= | ||||
@@ -40,6 +40,7 @@ sxiv supports the following command-line options: | |||||
-f Start in fullscreen mode | -f Start in fullscreen mode | ||||
-g GEOMETRY Set window position and size | -g GEOMETRY Set window position and size | ||||
(see section GEOMETRY SPECIFICATIONS of X(7)) | (see section GEOMETRY SPECIFICATIONS of X(7)) | ||||
-n NUM Start at picture NUM | |||||
-p Pixelize, i.e. turn off image anti-aliasing | -p Pixelize, i.e. turn off image anti-aliasing | ||||
-q Be quiet, disable warnings | -q Be quiet, disable warnings | ||||
-r Search given directories recursively for images | -r Search given directories recursively for images | ||||
@@ -231,14 +231,14 @@ int main(int argc, char **argv) { | |||||
} | } | ||||
} | } | ||||
filecnt = fileidx; | if (!fileidx) { | ||||
fileidx = 0; | |||||
if (!filecnt) { | |||||
fprintf(stderr, "sxiv: no valid image file given, aborting\n"); | fprintf(stderr, "sxiv: no valid image file given, aborting\n"); | ||||
exit(1); | exit(1); | ||||
} | } | ||||
filecnt = fileidx; | |||||
fileidx = options->startnum < filecnt ? options->startnum : filecnt - 1; | |||||
win_init(&win); | win_init(&win); | ||||
img_init(&img, &win); | img_init(&img, &win); | ||||
@@ -31,7 +31,7 @@ options_t _options; | |||||
const options_t *options = (const options_t*) &_options; | const options_t *options = (const options_t*) &_options; | ||||
void print_usage() { | 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() { | void print_version() { | ||||
@@ -40,7 +40,9 @@ void print_version() { | |||||
void parse_options(int argc, char **argv) { | void parse_options(int argc, char **argv) { | ||||
float z; | float z; | ||||
int opt; | int n, opt; | ||||
_options.startnum = 0; | |||||
_options.scalemode = SCALE_MODE; | _options.scalemode = SCALE_MODE; | ||||
_options.zoom = 1.0; | _options.zoom = 1.0; | ||||
@@ -55,7 +57,7 @@ void parse_options(int argc, char **argv) { | |||||
_options.clean_cache = 0; | _options.clean_cache = 0; | ||||
_options.recursive = 0; | _options.recursive = 0; | ||||
while ((opt = getopt(argc, argv, "cdFfg:hpqrstvZz:")) != -1) { | while ((opt = getopt(argc, argv, "cdFfg:hn:pqrstvZz:")) != -1) { | ||||
switch (opt) { | switch (opt) { | ||||
case '?': | case '?': | ||||
print_usage(); | print_usage(); | ||||
@@ -78,6 +80,15 @@ void parse_options(int argc, char **argv) { | |||||
case 'h': | case 'h': | ||||
print_usage(); | print_usage(); | ||||
exit(0); | 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': | case 'p': | ||||
_options.aa = 0; | _options.aa = 0; | ||||
break; | break; | ||||
@@ -23,8 +23,9 @@ | |||||
typedef struct { | typedef struct { | ||||
const char **filenames; | const char **filenames; | ||||
int filecnt; | |||||
unsigned char from_stdin; | unsigned char from_stdin; | ||||
int filecnt; | |||||
int startnum; | |||||
scalemode_t scalemode; | scalemode_t scalemode; | ||||
float zoom; | float zoom; | ||||
@@ -6,6 +6,8 @@ sxiv \- Simple (or small or suckless) X Image Viewer | |||||
.RB [ \-cdFfhpqrstvZ ] | .RB [ \-cdFfhpqrstvZ ] | ||||
.RB [ \-g | .RB [ \-g | ||||
.IR GEOMETRY ] | .IR GEOMETRY ] | ||||
.RB [ \-n | |||||
.IR NUM ] | |||||
.RB [ \-z | .RB [ \-z | ||||
.IR ZOOM ] | .IR ZOOM ] | ||||
.IR FILE ... | .IR FILE ... | ||||
@@ -49,6 +51,9 @@ Set window position and size. See section GEOMETRY SPECIFICATIONS of X(7) for | |||||
more information on | more information on | ||||
.IR GEOMETRY . | .IR GEOMETRY . | ||||
.TP | .TP | ||||
.BI "\-n " NUM | |||||
Start at picture number NUM. | |||||
.TP | |||||
.B \-h | .B \-h | ||||
Print brief usage information to standard output and exit. | Print brief usage information to standard output and exit. | ||||
.TP | .TP | ||||