New option: -n, start at given picture
This commit is contained in:
parent
00e6cd2bd1
commit
2252a0148d
2
Makefile
2
Makefile
|
@ -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
|
||||||
|
|
8
main.c
8
main.c
|
@ -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);
|
||||||
|
|
||||||
|
|
17
options.c
17
options.c
|
@ -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;
|
||||||
|
|
5
sxiv.1
5
sxiv.1
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue