diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2011-08-24 19:20:54 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2011-08-24 19:20:54 +0200 | 
| commit | aea70b203d19d02079a1d6c0b07d06220bf811d2 (patch) | |
| tree | 0178fc11fc15dc9ddaf2eca91b265ce62e2ed956 | |
| parent | 9fcf25807ad1e9c0b32985e0a77a6de8098fe91f (diff) | |
--filelist: Support reading from /dev/stdin ("-" as shortcut)
Note that read_filelist used to check if its argument was an image (for people
accidentaly typing "feh -df *" instead of "feh -dF *"); this was removed
because it failed on /dev/stdin.
I might re-add it, but I'm not yet sure about the future of feh's automatic
filelist saving.
| -rw-r--r-- | ChangeLog | 1 | ||||
| -rw-r--r-- | man/feh.pre | 21 | ||||
| -rw-r--r-- | src/filelist.c | 15 | ||||
| -rw-r--r-- | src/options.c | 5 | 
4 files changed, 25 insertions, 17 deletions
| @@ -6,6 +6,7 @@ git HEAD        better readable        <https://github.com/derf/feh/issues/60>      * The --collage option (aka collage mode) is now deprecated +    * The --filelist option now supports /dev/stdin (or "-" as shortcut)  Tue, 16 Aug 2011 22:48:06 +0200  Daniel Friesel <derf@finalrewind.org> diff --git a/man/feh.pre b/man/feh.pre index 598231a..a1b7b9b 100644 --- a/man/feh.pre +++ b/man/feh.pre @@ -195,12 +195,20 @@ This option is similar to the playlists used by music software.  If  .Ar file  exists, it will be read for a list of files to load, in the order they appear.  The format is a list of image filenames, absolute or relative to the current -directory, one filename per line.  If +directory, one filename per line. +. +.Pp +. +If  .Ar file  doesn't exist, it will be created from the internal filelist at the end of a  viewing session.  This is best used to store the results of complex sorts  .Pq Cm -Spixels No for example -for later viewing.  Any changes to the internal filelist +for later viewing. +. +.Pp +. +Any changes to the internal filelist  .Pq such as deleting a file or it being pruned for being unloadable  will be saved to  .Ar file @@ -209,6 +217,15 @@ when  exits.  You can add files to filelists by specifying them on the commandline  when also specifying the list.  . +.Pp +. +If +.Ar file +is +.Qq - , +.Nm +will read the filelist from its standard input. +.  .It Cm -e , --font Ar font  .  Set global font.  Should be a truetype font, resident in the current directory diff --git a/src/filelist.c b/src/filelist.c index 0373504..d83b8df 100644 --- a/src/filelist.c +++ b/src/filelist.c @@ -440,7 +440,7 @@ int feh_write_filelist(gib_list * list, char *filename)  	FILE *fp;  	gib_list *l; -	if (!list || !filename) +	if (!list || !filename || !strcmp(filename, "/dev/stdin"))  		return(0);  	errno = 0; @@ -467,19 +467,6 @@ gib_list *feh_read_filelist(char *filename)  	if (!filename)  		return(NULL); -	/* try and load the given filelist as an image, cowardly refuse to -	 * overwrite an image with a filelist. (requested by user who did feh -df * -	 * when he meant feh -dF *, as it overwrote the first image with the -	 * filelist). -	 */ -	if (feh_load_image_char(&im1, filename)) { -		weprintf( -				"The file you specified as a filelist to read - %s - appears to be an image. Ignoring it (this is a common mistake).\n", -				filename); -		opt.filelistfile = NULL; -		return(NULL); -	} -  	errno = 0;  	if ((fp = fopen(filename, "r")) == NULL) {  		/* return quietly, as it's okay to specify a filelist file that doesn't diff --git a/src/options.c b/src/options.c index 13aaa95..c5ed85d 100644 --- a/src/options.c +++ b/src/options.c @@ -627,7 +627,10 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)  			opt.alpha_level = 255 - atoi(optarg);  			break;  		case 'f': -			opt.filelistfile = estrdup(optarg); +			if (!strcmp(optarg, "-")) +				opt.filelistfile = estrdup("/dev/stdin"); +			else +				opt.filelistfile = estrdup(optarg);  			break;  		case '0':  			opt.reload_button = atoi(optarg); | 
