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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert