[hackers] [sxiv] Support for DELAY as a floating point number including less than 1 second while maintaining backward compatibiitiy with integer arguments. || Don Hejna

From: <git_AT_suckless.org>
Date: Thu, 1 Dec 2016 21:19:17 +0100 (CET)

commit 27bbaab976e02d2458099de96ec71d14aa1ade8e
Author: Don Hejna <don.hejna_AT_gmail.com>
AuthorDate: Sun Nov 27 20:36:23 2016 -0800
Commit: Don Hejna <don.hejna_AT_gmail.com>
CommitDate: Sun Nov 27 20:36:23 2016 -0800

    Support for DELAY as a floating point number including less than 1
    second while maintaining backward compatibiitiy with integer
    arguments.

diff --git a/image.c b/image.c
index 801bbe5..b9de406 100644
--- a/image.c
+++ b/image.c
_AT_@ -74,8 +74,8 @@ void img_init(img_t *img, win_t *win)
         imlib_context_set_color_modifier(img->cmod);
         img->gamma = MIN(MAX(options->gamma, -GAMMA_RANGE), GAMMA_RANGE);
 
- img->ss.on = options->slideshow > 0;
- img->ss.delay = options->slideshow > 0 ? options->slideshow : SLIDESHOW_DELAY;
+ img->ss.on = options->slideshow > 0.0;
+ img->ss.delay = options->slideshow > 0.0 ? options->slideshow : SLIDESHOW_DELAY;
 }
 
 #if HAVE_LIBEXIF
diff --git a/image.h b/image.h
index 8932fdf..feb1647 100644
--- a/image.h
+++ b/image.h
_AT_@ -60,7 +60,7 @@ typedef struct {
 
         struct {
                 bool on;
- int delay;
+ float delay;
         } ss;
 
         multi_img_t multi;
diff --git a/main.c b/main.c
index d1813a5..714de4d 100644
--- a/main.c
+++ b/main.c
_AT_@ -372,7 +372,7 @@ void update_info(void)
         } else {
                 bar_put(r, "%s", mark);
                 if (img.ss.on)
- bar_put(r, "%ds | ", img.ss.delay);
+ bar_put(r, "%2.1fs | ", img.ss.delay);
                 if (img.gamma != 0)
                         bar_put(r, "G%+d | ", img.gamma);
                 bar_put(r, "%3d%% | ", (int) (img.zoom * 100.0));
diff --git a/options.c b/options.c
index 4a9772c..cb53794 100644
--- a/options.c
+++ b/options.c
_AT_@ -44,6 +44,7 @@ void print_version(void)
 void parse_options(int argc, char **argv)
 {
         int n, opt;
+ float f;
         char *end, *s;
         const char *scalemodes = "dfwh";
 
_AT_@ -59,7 +60,7 @@ void parse_options(int argc, char **argv)
         _options.zoom = 1.0;
         _options.animate = false;
         _options.gamma = 0;
- _options.slideshow = 0;
+ _options.slideshow = 0.0;
 
         _options.fullscreen = false;
         _options.embed = 0;
_AT_@ -128,10 +129,10 @@ void parse_options(int argc, char **argv)
                                 _options.recursive = true;
                                 break;
                         case 'S':
- n = strtol(optarg, &end, 0);
- if (*end != '\0' || n <= 0)
+ f = (float) strtof(optarg, &end);
+ if (*end != '\0' || f <= 0.0)
                                         error(EXIT_FAILURE, 0, "Invalid argument for option -S: %s", optarg);
- _options.slideshow = n;
+ _options.slideshow = (float) f;
                                 break;
                         case 's':
                                 s = strchr(scalemodes, optarg[0]);
diff --git a/options.h b/options.h
index 40c2506..4e376e3 100644
--- a/options.h
+++ b/options.h
_AT_@ -36,7 +36,7 @@ typedef struct {
         float zoom;
         bool animate;
         int gamma;
- int slideshow;
+ float slideshow;
 
         /* window: */
         bool fullscreen;
diff --git a/sxiv.1 b/sxiv.1
index ed91322..2c9d23d 100644
--- a/sxiv.1
+++ b/sxiv.1
_AT_@ -81,7 +81,7 @@ Be quiet, disable warnings to standard error stream.
 Search the given directories recursively for images to view.
 .TP
 .BI "\-S " DELAY
-Start in slideshow mode. Set the delay between images to DELAY seconds.
+Start in slideshow mode. Set the delay between images to DELAY (float, e.g. 1, 3.1, 0.01) seconds.
 .TP
 .BI "\-s " MODE
 Set scale mode according to MODE character. Supported modes are: [d]own,
_AT_@ -330,7 +330,7 @@ Toggle visibility of alpha-channel, i.e. image transparency.
 .TP
 .B s
 Toggle slideshow mode and/or set the delay between images to
-.I count
+.I count (integer prefix only)
 seconds.
 .SH MOUSE COMMANDS
 The following mouse mappings are available in image mode:
Received on Thu Dec 01 2016 - 21:19:17 CET

This archive was generated by hypermail 2.3.0 : Thu Dec 01 2016 - 21:24:16 CET