From 073f8a91054a0b84fc2a3c6feaada832d2818bf7 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Fri, 15 Nov 2002 15:51:23 +0000 Subject: [w3m-dev 03435] save image with SAVE * buffer.c (discardBuffer): check image * file.c (loadImageBuffer): add st IMG_FLAG_DONE_REMOVE s/sourcefile/mailcap_source/ * fm.h (IMG_FLAG_DONT_REMOVE): added * image.c (drawImage): & IMG_FLAG_LOADED (deleteImage): & IMG_FLAG_DONT_REMOVE (showImageProgress): & IMG_FLAG_LOADED (getImage): & IMG_FLAG_LOADED (getImageSize): & IMG_FLAG_LOADED * main.c (vmSrc): delete ifdef USE_IMAGE From: Hironori SAKAMOTO --- file.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'file.c') diff --git a/file.c b/file.c index c04d0ad..e4a723f 100644 --- a/file.c +++ b/file.c @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.117 2002/11/15 15:21:07 ukai Exp $ */ +/* $Id: file.c,v 1.118 2002/11/15 15:51:23 ukai Exp $ */ #include "fm.h" #include #include "myctype.h" @@ -6569,6 +6569,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf) FILE *src = NULL; URLFile f; MySignalHandler(*prevtrap) (); + struct stat st; loadImage(IMG_FLAG_STOP); image = New(Image); @@ -6577,7 +6578,8 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf) image->width = -1; image->height = -1; cache = getImage(image, cur_baseURL, IMG_FLAG_AUTO); - if (!cur_baseURL->is_nocache && cache->loaded == IMG_FLAG_LOADED) + if (!cur_baseURL->is_nocache && cache->loaded & IMG_FLAG_LOADED && + !stat(cache->file, &st)) goto image_buffer; prevtrap = signal(SIGINT, KeyAbort); @@ -6597,24 +6599,20 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf) cache->loaded = IMG_FLAG_LOADED; cache->index = 0; - /* - * getImageSize(cache); - */ image_buffer: + cache->loaded |= IMG_FLAG_DONT_REMOVE; + if (uf->scheme != SCM_LOCAL) + newBuf->sourcefile = cache->file; + tmp = Sprintf("

", html_quote(image->url)); if (newBuf == NULL) newBuf = newBuffer(INIT_BUFFER_WIDTH); - /* - * if (frame_source) { - */ tmpf = tmpfname(TMPF_SRC, ".html"); src = fopen(tmpf->ptr, "w"); - newBuf->sourcefile = tmpf->ptr; + newBuf->mailcap_source = tmpf->ptr; pushText(fileToDelete, tmpf->ptr); - /* - * } - */ + init_stream(&f, SCM_LOCAL, newStrStream(tmp)); loadHTMLstream(&f, newBuf, src, TRUE); if (src) -- cgit v1.2.3