summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--man/feh.pre2
-rw-r--r--src/list.c7
-rw-r--r--src/main.c2
-rw-r--r--test/feh.t12
5 files changed, 16 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 4bf4a4b..9ea7774 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@ git HEAD
disable it altogether
* Clean up temporary / to-delete files when receiveng SIG{INT,TERM,QUIT}
* Do not scroll past image borders when using key bindings
+ * --loadable / --unloadable: indicate result in exit status
Tue, 06 Mar 2012 13:13:35 +0100 Daniel Friesel <derf@finalrewind.org>
diff --git a/man/feh.pre b/man/feh.pre
index 48d7778..ecd35ec 100644
--- a/man/feh.pre
+++ b/man/feh.pre
@@ -383,6 +383,7 @@ size/resolution/type etc.
.
Don't display images. Just print out their names if imlib2 can successfully
load them.
+Returns false if at least one image failed to load.
.
.It Cm -M , --menu-font Ar font
.
@@ -550,6 +551,7 @@ mode. See
.
Don't display images. Just print out their names if imlib2 can NOT
successfully load them.
+Returns false if at least one image was loadable.
.
.It Cm -V , --verbose
.
diff --git a/src/list.c b/src/list.c
index 17fcbcc..2affe85 100644
--- a/src/list.c
+++ b/src/list.c
@@ -77,6 +77,7 @@ void real_loadables_mode(int loadable)
{
feh_file *file;
gib_list *l;
+ char ret = 0;
opt.quiet = 1;
@@ -91,6 +92,8 @@ void real_loadables_mode(int loadable)
puts(file->filename);
feh_action_run(file, opt.actions[0]);
}
+ else
+ ret = 1;
gib_imlib_free_image_and_decache(im);
} else {
/* Oh dear. */
@@ -98,7 +101,9 @@ void real_loadables_mode(int loadable)
puts(file->filename);
feh_action_run(file, opt.actions[0]);
}
+ else
+ ret = 1;
}
}
- exit(0);
+ exit(ret);
}
diff --git a/src/main.c b/src/main.c
index a5694fb..e6239e1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -44,12 +44,12 @@ int main(int argc, char **argv)
init_parse_options(argc, argv);
init_imlib_fonts();
+ setup_signal_handlers();
if (opt.display) {
init_x_and_imlib();
init_keyevents();
init_buttonbindings();
- setup_signal_handlers();
}
feh_event_init();
diff --git a/test/feh.t b/test/feh.t
index 1c6556c..8746362 100644
--- a/test/feh.t
+++ b/test/feh.t
@@ -45,7 +45,7 @@ $cmd->stderr_is_eq('');
$cmd = Test::Command->new(cmd => "$feh --loadable $images");
-$cmd->exit_is_num(0);
+$cmd->exit_is_num(1);
$cmd->stdout_like($re_loadable);
$cmd->stderr_is_eq('');
@@ -53,7 +53,7 @@ $cmd = Test::Command->new(
cmd => "$feh --loadable --action 'echo touch %f' $images"
);
-$cmd->exit_is_num(0);
+$cmd->exit_is_num(1);
$cmd->stdout_is_file('test/nx_action/loadable_action');
$cmd->stderr_is_eq('');
@@ -61,7 +61,7 @@ $cmd = Test::Command->new(
cmd => "$feh --loadable --action ';echo touch %f' $images"
);
-$cmd->exit_is_num(0);
+$cmd->exit_is_num(1);
$cmd->stdout_is_file('test/nx_action/loadable_naction');
$cmd->stderr_is_eq('');
@@ -69,7 +69,7 @@ $cmd = Test::Command->new(
cmd => "$feh --unloadable --action 'echo rm %f' $images"
);
-$cmd->exit_is_num(0);
+$cmd->exit_is_num(1);
$cmd->stdout_is_file('test/nx_action/unloadable_action');
$cmd->stderr_is_eq('');
@@ -77,13 +77,13 @@ $cmd = Test::Command->new(
cmd => "$feh --unloadable --action ';echo rm %f' $images"
);
-$cmd->exit_is_num(0);
+$cmd->exit_is_num(1);
$cmd->stdout_is_file('test/nx_action/unloadable_naction');
$cmd->stderr_is_eq('');
$cmd = Test::Command->new(cmd => "$feh --unloadable $images");
-$cmd->exit_is_num(0);
+$cmd->exit_is_num(1);
$cmd->stdout_like($re_unloadable);
$cmd->stderr_is_eq('');