it* sacc + cursorline and uri preview Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/sacc-sdk URL:git://git.codevoid.de/sacc-sdk codevoid.de 70 1Log /git/sacc-sdk/log.gph codevoid.de 70 1Files /git/sacc-sdk/files.gph codevoid.de 70 1Refs /git/sacc-sdk/refs.gph codevoid.de 70 1LICENSE /git/sacc-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit e84a502bc400f7050148d37fca81acd7227b6827 /git/sacc-sdk/commit/e84a502bc400f7050148d37fca81acd7227b6827.gph codevoid.de 70 1parent e9b9894e29151ef7084e13729b629adb9651487c /git/sacc-sdk/commit/e9b9894e29151ef7084e13729b629adb9651487c.gph codevoid.de 70 hAuthor: Quentin Rameau URL:mailto:quinq@fifth.space codevoid.de 70 iDate: Fri, 1 Sep 2017 15:12:54 +0200 Err codevoid.de 70 i Err codevoid.de 70 iGet rid of mkstemp and use full file name in cache Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M config.mk | 2 +- Err codevoid.de 70 i M sacc.c | 36 +++++++++++++++---------------- Err codevoid.de 70 i Err codevoid.de 70 i2 files changed, 18 insertions(+), 20 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/config.mk b/config.mk /git/sacc-sdk/file/config.mk.gph codevoid.de 70 it@@ -9,7 +9,7 @@ UI=txt Err codevoid.de 70 i #UIFLAGS=-lcurses Err codevoid.de 70 i Err codevoid.de 70 i # Stock FLAGS Err codevoid.de 70 i-SACCCFLAGS = -D_POSIX_C_SOURCE=200809L -D_DEFAULT_SOURCE $(CFLAGS) Err codevoid.de 70 i+SACCCFLAGS = -D_DEFAULT_SOURCE $(CFLAGS) Err codevoid.de 70 i SACCLDFLAGS = $(UIFLAGS) $(LDFLAGS) Err codevoid.de 70 i Err codevoid.de 70 i .c.o: Err codevoid.de 70 1diff --git a/sacc.c b/sacc.c /git/sacc-sdk/file/sacc.c.gph codevoid.de 70 it@@ -493,7 +493,7 @@ plumbitem(Item *item) Err codevoid.de 70 i { Err codevoid.de 70 i char *file, *path, *tag; Err codevoid.de 70 i mode_t mode = S_IRUSR|S_IWUSR|S_IRGRP; Err codevoid.de 70 i- int dest; Err codevoid.de 70 i+ int n, dest, plumbitem; Err codevoid.de 70 i Err codevoid.de 70 i if (file = strrchr(item->selector, '/')) Err codevoid.de 70 i ++file; Err codevoid.de 70 it@@ -510,36 +510,34 @@ plumbitem(Item *item) Err codevoid.de 70 i tag = NULL; Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i- if (path[0]) { Err codevoid.de 70 i- if (tag && !strcmp(tag, path)) Err codevoid.de 70 i- goto cleanup; Err codevoid.de 70 i+ plumbitem = path[0] ? 0 : 1; Err codevoid.de 70 i Err codevoid.de 70 i+ if (!path[0]) { Err codevoid.de 70 i+ clear(&path); Err codevoid.de 70 i+ if (!tag) { Err codevoid.de 70 i+ n = snprintf(NULL, 0, "%s/%s", "/tmp/sacc", file); Err codevoid.de 70 i+ path = xmalloc(++n); Err codevoid.de 70 i+ snprintf(path, n, "%s/%s", "/tmp/sacc", file); Err codevoid.de 70 i+ } Err codevoid.de 70 i+ } Err codevoid.de 70 i+ Err codevoid.de 70 i+ if (path && (!tag || strcmp(tag, path))) { Err codevoid.de 70 i if ((dest = open(path, O_WRONLY|O_CREAT|O_EXCL, mode)) < 0) { Err codevoid.de 70 i uistatus("Can't open destination file %s: %s", Err codevoid.de 70 i path, strerror(errno)); Err codevoid.de 70 i errno = 0; Err codevoid.de 70 i goto cleanup; Err codevoid.de 70 i } Err codevoid.de 70 i- } else { Err codevoid.de 70 i- clear(&path); Err codevoid.de 70 i- Err codevoid.de 70 i- if (!tag) { Err codevoid.de 70 i- path = xstrdup("/tmp/sacc/img-XXXXXX"); Err codevoid.de 70 i- Err codevoid.de 70 i- if ((dest = mkstemp(path)) < 0) { Err codevoid.de 70 i- uistatus("mkstemp: %s: %s", path, strerror(errno)); Err codevoid.de 70 i- goto cleanup; Err codevoid.de 70 i- } Err codevoid.de 70 i- } Err codevoid.de 70 i+ if (!download(item, dest) || tag) Err codevoid.de 70 i+ goto cleanup; Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i- if (path && (!download(item, dest) || tag)) Err codevoid.de 70 i- goto cleanup; Err codevoid.de 70 i- Err codevoid.de 70 i if (!tag) Err codevoid.de 70 i item->tag = path; Err codevoid.de 70 i Err codevoid.de 70 i- plumb(item->tag); Err codevoid.de 70 i+ if (plumbitem) Err codevoid.de 70 i+ plumb(item->tag); Err codevoid.de 70 i+ Err codevoid.de 70 i return; Err codevoid.de 70 i cleanup: Err codevoid.de 70 i free(path); Err codevoid.de 70 .