load slide image on-demand - sent - simple plaintext presentation tool | |
git clone git://git.suckless.org/sent | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 44a50ad94828d6375ebba9560109d06e9a163e5d | |
parent 27a904c1dd40d185dd5123ca354f6080e853ec92 | |
Author: Hiltjo Posthuma <[email protected]> | |
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 | |
the slide, but when the slide was not used it gave an error: | |
/usr/local/bin/2ff: failed to convert image/png | |
this changes it to load the image on-demand once and "cache" it. | |
Diffstat: | |
M sent.c | 8 +++++++- | |
1 file changed, 7 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/sent.c b/sent.c | |
@@ -55,6 +55,7 @@ typedef struct { | |
unsigned int linecount; | |
char **lines; | |
Image *img; | |
+ char *embed; | |
} Slide; | |
/* Purely graphic info */ | |
@@ -436,7 +437,7 @@ load(FILE *fp) | |
/* only make image slide if first line of a slide star… | |
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] == '\\') | |
@@ -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 | |
@@ -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… | |
+ slides[idx].img = ffopen(slides[idx].embed); | |
xdraw(); | |
if (slidecount > idx + 1 && slides[idx + 1].img) | |
ffread(slides[idx + 1].img); |