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