aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBert <ber.t@gmx.com>2011-08-19 13:26:58 +0200
committerBert <ber.t@gmx.com>2011-08-19 13:26:58 +0200
commit1d7849efc1fe85d20b8aa4916e75cb3eb658dba9 (patch)
treeb15a22701f325bb069c45fa67e732ae946e44413
parent421f01202238ad56c5b2edc2e1b26194482b614f (diff)
downloadnsxiv-1d7849efc1fe85d20b8aa4916e75cb3eb658dba9.tar.zst
Added force parameter to tns_load() to disregard cache
-rw-r--r--events.c8
-rw-r--r--main.c2
-rw-r--r--thumbs.c14
-rw-r--r--thumbs.h2
4 files changed, 14 insertions, 12 deletions
diff --git a/events.c b/events.c
index a356b2f..2862d23 100644
--- a/events.c
+++ b/events.c
@@ -163,7 +163,7 @@ void run() {
gettimeofday(&t0, 0);
while (tns.cnt < filecnt && !XPending(win.env.dpy)) {
- if (tns_load(&tns, tns.cnt, &files[tns.cnt], 0))
+ if (tns_load(&tns, tns.cnt, &files[tns.cnt], False, False))
tns.cnt++;
else
remove_file(tns.cnt, 0);
@@ -279,7 +279,7 @@ int it_toggle_fullscreen(arg_t a) {
int it_reload_image(arg_t a) {
if (mode == MODE_IMAGE) {
load_image(fileidx);
- } else if (!tns_load(&tns, tns.sel, &files[tns.sel], 0)) {
+ } else if (!tns_load(&tns, tns.sel, &files[tns.sel], True, False)) {
remove_file(tns.sel, 0);
tns.dirty = 1;
if (tns.sel >= tns.cnt)
@@ -578,11 +578,11 @@ int it_shell_cmd(arg_t a) {
if (mode == MODE_IMAGE) {
if (fileidx < tns.cnt)
- tns_load(&tns, fileidx, &files[fileidx], 1);
+ tns_load(&tns, fileidx, &files[fileidx], False, True);
img_close(&img, 1);
load_image(fileidx);
} else {
- if (!tns_load(&tns, tns.sel, &files[tns.sel], 0)) {
+ if (!tns_load(&tns, tns.sel, &files[tns.sel], True, False)) {
remove_file(tns.sel, 0);
tns.dirty = 1;
if (tns.sel >= tns.cnt)
diff --git a/main.c b/main.c
index d3c8e6f..d8dba0d 100644
--- a/main.c
+++ b/main.c
@@ -240,7 +240,7 @@ int main(int argc, char **argv) {
if (options->thumbnails) {
mode = MODE_THUMB;
tns_init(&tns, filecnt);
- while (!tns_load(&tns, 0, &files[0], 0))
+ while (!tns_load(&tns, 0, &files[0], False, False))
remove_file(0, 0);
tns.cnt = 1;
} else {
diff --git a/thumbs.c b/thumbs.c
index 97bb2b2..425970d 100644
--- a/thumbs.c
+++ b/thumbs.c
@@ -212,9 +212,11 @@ void tns_free(tns_t *tns) {
}
}
-int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) {
+int tns_load(tns_t *tns, int n, const fileinfo_t *file,
+ Bool force, Bool silent)
+{
int w, h;
- int use_cache, cached = 0;
+ int use_cache, cache_hit = 0;
float z, zw, zh;
thumb_t *t;
Imlib_Image *im;
@@ -234,11 +236,11 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) {
}
if ((use_cache = tns_cache_enabled())) {
- if ((im = tns_cache_load(file->path)))
- cached = 1;
+ if (!force && (im = tns_cache_load(file->path)))
+ cache_hit = 1;
}
- if (!cached &&
+ if (!cache_hit &&
(access(file->path, R_OK) || !(im = imlib_load_image(file->path))))
{
if (!silent)
@@ -262,7 +264,7 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) {
imlib_free_image_and_decache();
- if (use_cache && !cached)
+ if (use_cache && !cache_hit)
tns_cache_write(t, False);
tns->dirty = 1;
diff --git a/thumbs.h b/thumbs.h
index 27bd7fc..818ceb4 100644
--- a/thumbs.h
+++ b/thumbs.h
@@ -51,7 +51,7 @@ void tns_clean_cache(tns_t*);
void tns_init(tns_t*, int);
void tns_free(tns_t*);
-int tns_load(tns_t*, int, const fileinfo_t*, unsigned char);
+int tns_load(tns_t*, int, const fileinfo_t*, Bool, Bool);
void tns_render(tns_t*, win_t*);
void tns_highlight(tns_t*, win_t*, int, Bool);