diff options
| author | ulteq <ulteq@web.de> | 2018-01-01 15:37:32 +0100 | 
|---|---|---|
| committer | ulteq <ulteq@web.de> | 2018-08-24 11:40:56 +0200 | 
| commit | f3ea5c887e034f08d2735c7a32876f94ee9ef60a (patch) | |
| tree | 39d9b9f7ce1c13f7528a15d59db45645ff0b18ed | |
| parent | fd66a0f2a1352de36fa81004325df1040d1cde98 (diff) | |
Add --no-cycle option
Closes: #124
| -rw-r--r-- | src/help.raw | 1 | ||||
| -rw-r--r-- | src/options.c | 4 | ||||
| -rw-r--r-- | src/options.h | 1 | ||||
| -rw-r--r-- | src/slideshow.c | 7 | 
4 files changed, 13 insertions, 0 deletions
| diff --git a/src/help.raw b/src/help.raw index 86bb617..52d06bf 100644 --- a/src/help.raw +++ b/src/help.raw @@ -38,6 +38,7 @@ OPTIONS       --auto-rotate         Rotate images according to Exif info (if compiled with exif=1)   -^, --title TITLE         Set window title (see FORMAT SPECIFIERS)   -D, --slideshow-delay NUM Set delay between automatically changing slides +     --no-cycle            Stop at both ends of the filelist        --cycle-once          Exit after one loop through the slideshow   -R, --reload NUM          Reload images after NUM seconds   -k, --keep-http           Keep local copies when viewing HTTP/FTP files diff --git a/src/options.c b/src/options.c index af0f07d..1a47a39 100644 --- a/src/options.c +++ b/src/options.c @@ -415,6 +415,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)  		{"insecure"      , 0, 0, 240},  		{"no-recursive"  , 0, 0, 241},  		{"cache-size"    , 1, 0, 243}, +		{"no-cycle"      , 0, 0, 244},  		{"conversion-timeout" , 1, 0, 245},  		{"version-sort"  , 0, 0, 246},  		{"offset"        , 1, 0, 247}, @@ -785,6 +786,9 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)  			if (opt.cache_size > 2048)  				opt.cache_size = 2048;  			break; +		case 244: +			opt.no_cycle = 1; +			break;  		case 245:  			opt.conversion_timeout = atoi(optarg);  			break; diff --git a/src/options.h b/src/options.h index 936b4bd..122d39e 100644 --- a/src/options.h +++ b/src/options.h @@ -69,6 +69,7 @@ struct __fehoptions {  	unsigned char draw_info;  	unsigned char cache_thumbnails;  	unsigned char cycle_once; +	unsigned char no_cycle;  	unsigned char hold_actions[10];  	unsigned char text_bg;  	unsigned char no_fehbg; diff --git a/src/slideshow.c b/src/slideshow.c index b27a7e8..77f5a82 100644 --- a/src/slideshow.c +++ b/src/slideshow.c @@ -215,6 +215,7 @@ void feh_reload_image(winwidget w, int resize, int force_new)  void slideshow_change_image(winwidget winwid, int change, int render)  {  	gib_list *last = NULL; +	gib_list *previous_file = current_file;  	int i = 0;  	int jmp = 1;  	/* We can't use filelist_len in the for loop, since that changes when we @@ -332,6 +333,12 @@ void slideshow_change_image(winwidget winwid, int change, int render)  			last = NULL;  		} +		if (opt.no_cycle && +			((current_file == filelist && change == SLIDE_NEXT) || +			(previous_file == filelist && change == SLIDE_PREV))) { +				current_file = previous_file; +		} +  		if (winwidget_loadimage(winwid, FEH_FILE(current_file->data))) {  			int w = gib_imlib_image_get_width(winwid->im);  			int h = gib_imlib_image_get_height(winwid->im); | 
