Browse Source

New option: -n, start at given picture

master
Bert 14 years ago
parent
commit
2252a0148d
6 changed files with 27 additions and 9 deletions
  1. +1
    -1
      Makefile
  2. +1
    -0
      README.md
  3. +4
    -4
      main.c
  4. +14
    -3
      options.c
  5. +2
    -1
      options.h
  6. +5
    -0
      sxiv.1

+ 1
- 1
Makefile View File

@@ -1,6 +1,6 @@
all: sxiv all: sxiv


VERSION=git-20110522 VERSION=git-20110525


CC?=gcc CC?=gcc
DESTDIR?= DESTDIR?=


+ 1
- 0
README.md View File

@@ -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


+ 4
- 4
main.c View File

@@ -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);




+ 14
- 3
options.c View File

@@ -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;


+ 2
- 1
options.h View File

@@ -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
- 0
sxiv.1 View File

@@ -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


||||||
x
 
000:0
Loading…
Cancel
Save