t* My version of sent
       
   URI git clone git://git.codevoid.de/sent-sdk.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 44a50ad94828d6375ebba9560109d06e9a163e5d
   DIR parent 27a904c1dd40d185dd5123ca354f6080e853ec92
   URI Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat,  4 Jun 2016 16:33:15 +0200
       
       load slide image on-demand
       
       previously an image file would be opened but only ffread when advancing to
       tthe slide, but when the slide was not used it gave an error:
       
               /usr/local/bin/2ff: failed to convert image/png
       
       tthis changes it to load the image on-demand once and "cache" it.
       
       Diffstat:
         M sent.c                              |       8 +++++++-
       
       1 file changed, 7 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/sent.c b/sent.c
       t@@ -55,6 +55,7 @@ typedef struct {
                unsigned int linecount;
                char **lines;
                Image *img;
       +        char *embed;
        } Slide;
        
        /* Purely graphic info */
       t@@ -436,7 +437,7 @@ load(FILE *fp)
                                /* only make image slide if first line of a slide starts with @ */
                                if (s->linecount == 0 && s->lines[0][0] == '@') {
                                        memmove(s->lines[0], &s->lines[0][1], blen);
       -                                s->img = ffopen(s->lines[0]);
       +                                s->embed = s->lines[0];
                                }
        
                                if (s->lines[s->linecount][0] == '\\')
       t@@ -447,6 +448,9 @@ load(FILE *fp)
                        if (!p)
                                break;
                }
       +
       +        if (slidecount && slides[0].embed && slides[0].embed[0])
       +                slides[0].img = ffopen(slides[0].embed);
        }
        
        void
       t@@ -458,6 +462,8 @@ advance(const Arg *arg)
                        if (slides[idx].img)
                                slides[idx].img->state &= ~(DRAWN | SCALED);
                        idx = new_idx;
       +                if (!slides[idx].img && slides[idx].embed && slides[idx].embed[0])
       +                        slides[idx].img = ffopen(slides[idx].embed);
                        xdraw();
                        if (slidecount > idx + 1 && slides[idx + 1].img)
                                ffread(slides[idx + 1].img);