aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorHannes Koerber <hannes.koerber@gmail.com>2016-04-01 17:02:03 +0200
committerHannes Koerber <hannes.koerber@gmail.com>2016-04-02 12:12:12 +0200
commitf1737ddd06141afbe99f37af3b5c2d0f1df5fe7a (patch)
tree5e8eb55b095af7afc1439792210b0fdf948dce19 /src/main.c
parent75dbf29e3fe413014c2aaaa4a813da1a5515fddd (diff)
downloadimv-f1737ddd06141afbe99f37af3b5c2d0f1df5fe7a.tar.gz
Add -x switch to exit imv when reaching end of file list.
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 426a12e..1e57f1f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -55,6 +55,7 @@ struct {
int solid_bg;
int list;
unsigned long delay;
+ int cycle;
unsigned char bg_r;
unsigned char bg_g;
unsigned char bg_b;
@@ -71,6 +72,7 @@ struct {
.solid_bg = 1,
.list = 0,
.delay = 0,
+ .cycle = 1,
.bg_r = 0,
.bg_g = 0,
.bg_b = 0,
@@ -105,7 +107,7 @@ static void parse_args(int argc, char** argv)
char *argp, o;
- while((o = getopt(argc, argv, "firasSudhln:b:e:t:")) != -1) {
+ while((o = getopt(argc, argv, "firasSudxhln:b:e:t:")) != -1) {
switch(o) {
case 'f': g_options.fullscreen = 1; break;
case 'i':
@@ -118,6 +120,7 @@ static void parse_args(int argc, char** argv)
case 'S': g_options.scaling = FULL; break;
case 'u': g_options.nearest_neighbour = 1; break;
case 'd': g_options.overlay = 1; break;
+ case 'x': g_options.cycle = 0; break;
case 'h': print_usage(); exit(0); break;
case 'l': g_options.list = 1; break;
case 'n':
@@ -345,13 +348,17 @@ int main(int argc, char** argv)
break;
case SDLK_LEFTBRACKET:
case SDLK_LEFT:
- imv_navigator_select_rel(&nav, -1);
+ if(!imv_navigator_select_rel(&nav, -1, g_options.cycle)) {
+ quit = 1;
+ }
/* reset slideshow delay */
delay_msec = 0;
break;
case SDLK_RIGHTBRACKET:
case SDLK_RIGHT:
- imv_navigator_select_rel(&nav, 1);
+ if(!imv_navigator_select_rel(&nav, 1, g_options.cycle)) {
+ quit = 1;
+ }
/* reset slideshow delay */
delay_msec = 0;
break;
@@ -523,7 +530,9 @@ int main(int argc, char** argv)
delay_msec += dt;
need_redraw = 1;
if(delay_msec >= g_options.delay) {
- imv_navigator_select_rel(&nav, 1);
+ if(!imv_navigator_select_rel(&nav, 1, g_options.cycle)) {
+ quit = 1;
+ }
delay_msec = 0;
}
}