summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-08-24 19:20:54 +0200
committerDaniel Friesel <derf@finalrewind.org>2011-08-24 19:20:54 +0200
commitaea70b203d19d02079a1d6c0b07d06220bf811d2 (patch)
tree0178fc11fc15dc9ddaf2eca91b265ce62e2ed956 /src
parent9fcf25807ad1e9c0b32985e0a77a6de8098fe91f (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.
Diffstat (limited to 'src')
-rw-r--r--src/filelist.c15
-rw-r--r--src/options.c5
2 files changed, 5 insertions, 15 deletions
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);