aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFumitoshi UKAI <ukai@debian.or.jp>2003-01-10 16:42:14 +0000
committerFumitoshi UKAI <ukai@debian.or.jp>2003-01-10 16:42:14 +0000
commit66d04cc1619b037bff177acdffbbe52fbdaaa4b3 (patch)
treeb4c200409e18e49c21b126f02121cef3bc67a85a
parent[w3m-dev 03628] Re: Error occured while reset (diff)
downloadw3m-66d04cc1619b037bff177acdffbbe52fbdaaa4b3.tar.gz
w3m-66d04cc1619b037bff177acdffbbe52fbdaaa4b3.zip
[w3m-dev 03629] delete tmp file
* etc.c (tempfname): always file to delete * file.c (xface2xpm): no need fileToDelete (readHeader): ditto (loadGeneralFile): ditto (loadHTMLBuffer): ditto (loadHTMLString): ditto (loadGopherDir): ditto (loadImageBuffer): ditto (doExternal): rewrite (doFileSave): no need fileToDelete (uncompress_stream): ditto * fm.h (CurrentPid): added * image.c (getImage): cache->touch to delete * local.c (setLocalCookie): use CurrentPid (localcgi_post): fileToDelete * main.c (main): CurrentPid (pipeBuf): no need fileToDelete (query_from_followform): CurrentPid (vmSrc): no need fileToDelete From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
-rw-r--r--ChangeLog25
-rw-r--r--etc.c10
-rw-r--r--file.c32
-rw-r--r--fm.h3
-rw-r--r--image.c4
-rw-r--r--local.c5
-rw-r--r--main.c8
7 files changed, 42 insertions, 45 deletions
diff --git a/ChangeLog b/ChangeLog
index eb9a3e2..dd81746 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,28 @@
2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
+ * [w3m-dev 03629] delete tmp file
+ * etc.c (tempfname): always file to delete
+ * file.c (xface2xpm): no need fileToDelete
+ (readHeader): ditto
+ (loadGeneralFile): ditto
+ (loadHTMLBuffer): ditto
+ (loadHTMLString): ditto
+ (loadGopherDir): ditto
+ (loadImageBuffer): ditto
+ (doExternal): rewrite
+ (doFileSave): no need fileToDelete
+ (uncompress_stream): ditto
+ * fm.h (CurrentPid): added
+ * image.c (getImage): cache->touch to delete
+ * local.c (setLocalCookie): use CurrentPid
+ (localcgi_post): fileToDelete
+ * main.c (main): CurrentPid
+ (pipeBuf): no need fileToDelete
+ (query_from_followform): CurrentPid
+ (vmSrc): no need fileToDelete
+
+2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
+
* [w3m-dev 03628] Re: Error occured while reset
* file.c (doExternal): bufp = NULL, return 1
(uncompress_stream): tempfname fileToDelete
@@ -6286,4 +6309,4 @@ a * [w3m-dev 03276] compile error on EWS4800
* release-0-2-1
* import w3m-0.2.1
-$Id: ChangeLog,v 1.666 2003/01/10 16:33:38 ukai Exp $
+$Id: ChangeLog,v 1.667 2003/01/10 16:42:14 ukai Exp $
diff --git a/etc.c b/etc.c
index 93d4cd4..c412b95 100644
--- a/etc.c
+++ b/etc.c
@@ -1,4 +1,4 @@
-/* $Id: etc.c,v 1.46 2002/12/27 16:09:18 ukai Exp $ */
+/* $Id: etc.c,v 1.47 2003/01/10 16:42:26 ukai Exp $ */
#include "fm.h"
#include <pwd.h>
#include "myctype.h"
@@ -7,11 +7,6 @@
#include "hash.h"
#include "terms.h"
-#ifdef HAVE_GETCWD /* ??? ukai */
-#include <unistd.h>
-#include <sys/param.h>
-#endif /* HAVE_GETCWD */
-
#include <sys/types.h>
#include <time.h>
#if defined(HAVE_WAITPID) || defined(HAVE_WAIT3)
@@ -1517,7 +1512,8 @@ tmpfname(int type, char *ext)
tmpf = Sprintf("%s/w3m%s%d-%d%s",
rc_dir,
tmpf_base[type],
- (int)getpid(), tmpf_seq[type]++, (ext) ? ext : "");
+ CurrentPid, tmpf_seq[type]++, (ext) ? ext : "");
+ pushText(fileToDelete, tmpf->ptr);
return tmpf;
}
diff --git a/file.c b/file.c
index 27dfce0..f849487 100644
--- a/file.c
+++ b/file.c
@@ -1,4 +1,4 @@
-/* $Id: file.c,v 1.181 2003/01/10 16:33:46 ukai Exp $ */
+/* $Id: file.c,v 1.182 2003/01/10 16:42:29 ukai Exp $ */
#include "fm.h"
#include <sys/types.h>
#include "myctype.h"
@@ -543,7 +543,6 @@ xface2xpm(char *xface)
pclose(f);
if (stat(xpm, &st))
return NULL;
- pushText(fileToDelete, xpm);
if (!st.st_size)
return NULL;
return xpm;
@@ -579,7 +578,6 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)
if (thru && !newBuf->header_source) {
Str tmpf = tmpfname(TMPF_DFL, NULL);
- pushText(fileToDelete, tmpf->ptr);
src = fopen(tmpf->ptr, "w");
if (src)
newBuf->header_source = tmpf->ptr;
@@ -1537,7 +1535,6 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
if (ftpdir && ftpdir->length > 0) {
FILE *src;
tmp = tmpfname(TMPF_SRC, ".html");
- pushText(fileToDelete, tmp->ptr);
src = fopen(tmp->ptr, "w");
if (src) {
Strfputs(ftpdir, src);
@@ -1593,7 +1590,6 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
if (group && group->length > 0) {
FILE *src;
tmp = tmpfname(TMPF_SRC, ".html");
- pushText(fileToDelete, tmp->ptr);
src = fopen(tmp->ptr, "w");
if (src) {
Strfputs(group, src);
@@ -6091,7 +6087,6 @@ loadHTMLBuffer(URLFile *f, Buffer *newBuf)
if (newBuf->sourcefile == NULL &&
(f->scheme != SCM_LOCAL || newBuf->mailcap)) {
tmp = tmpfname(TMPF_SRC, ".html");
- pushText(fileToDelete, tmp->ptr);
src = fopen(tmp->ptr, "w");
if (src)
newBuf->sourcefile = tmp->ptr;
@@ -6586,7 +6581,6 @@ loadHTMLString(Str page)
if (w3m_dump & DUMP_FRAME) {
tmp = tmpfname(TMPF_SRC, ".html");
- pushText(fileToDelete, tmp->ptr);
src = fopen(tmp->ptr, "w");
if (src)
newBuf->sourcefile = tmp->ptr;
@@ -6713,7 +6707,6 @@ loadGopherDir(URLFile *uf, Buffer *volatile newBuf)
file = tmpfname(TMPF_SRC, ".html");
src = fopen(file->ptr, "w");
newBuf->sourcefile = file->ptr;
- pushText(fileToDelete, file->ptr);
init_stream(&f, SCM_LOCAL, newStrStream(tmp));
loadHTMLstream(&f, newBuf, src, TRUE);
@@ -6893,7 +6886,6 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
tmpf = tmpfname(TMPF_SRC, ".html");
src = fopen(tmpf->ptr, "w");
newBuf->mailcap_source = tmpf->ptr;
- pushText(fileToDelete, tmpf->ptr);
init_stream(&f, SCM_LOCAL, newStrStream(tmp));
loadHTMLstream(&f, newBuf, src, TRUE);
@@ -7338,26 +7330,18 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
struct mailcap *mcap;
int mc_stat;
Buffer *buf = NULL;
- char *header, *src = NULL;
+ char *header, *src = NULL, *ext = uf.ext;
if (!(mcap = searchExtViewer(type)))
return 0;
- tmpf = tmpfname(TMPF_DFL, NULL);
-
if (mcap->nametemplate) {
- Str tmp =
- unquote_mailcap(mcap->nametemplate, NULL, tmpf->ptr, NULL, NULL);
- if (Strncmp(tmpf, tmp, tmpf->length) == 0) {
- tmpf = tmp;
- goto _save;
- }
- }
- if (uf.ext && *uf.ext) {
- Strcat_charp(tmpf, uf.ext);
+ tmpf = unquote_mailcap(mcap->nametemplate, NULL, "", NULL, NULL);
+ if (tmpf->ptr[0] == '.')
+ ext = tmpf->ptr;
}
+ tmpf = tmpfname(TMPF_DFL, (ext && *ext) ? ext : NULL);
- _save:
if (IStype(uf.stream) != IST_ENCODED)
uf.stream = newEncodedStream(uf.stream, uf.encoding);
header = checkHeader(defaultbuf, "Content-Type:");
@@ -7371,7 +7355,6 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
}
#endif
- pushText(fileToDelete, tmpf->ptr);
#ifdef HAVE_SETPGRP
if (!(mcap->flags & (MAILCAP_HTMLOUTPUT | MAILCAP_COPIOUSOUTPUT)) &&
!(mcap->flags & MAILCAP_NEEDSTERMINAL) && BackgroundExtViewer) {
@@ -7543,7 +7526,6 @@ _doFileCopy(char *tmpf, char *defstr, int download)
if (f)
fclose(f);
#endif
- pushText(fileToDelete, lock);
flush_tty();
pid = fork();
if (!pid) {
@@ -7646,7 +7628,6 @@ doFileSave(URLFile uf, char *defstr)
if (f)
fclose(f);
#endif
- pushText(fileToDelete, lock);
flush_tty();
pid = fork();
if (!pid) {
@@ -7790,7 +7771,6 @@ uncompress_stream(URLFile *uf, char **src)
if (uf->scheme != SCM_LOCAL) {
tmpf = tmpfname(TMPF_DFL, ext)->ptr;
- pushText(fileToDelete, tmpf);
if (save2tmp(*uf, tmpf) < 0) {
UFclose(uf);
return;
diff --git a/fm.h b/fm.h
index a67926f..526806e 100644
--- a/fm.h
+++ b/fm.h
@@ -1,4 +1,4 @@
-/* $Id: fm.h,v 1.101 2003/01/10 16:08:22 ukai Exp $ */
+/* $Id: fm.h,v 1.102 2003/01/10 16:42:40 ukai Exp $ */
/*
* w3m: WWW wo Miru utility
*
@@ -829,6 +829,7 @@ global char *cgi_bin init(NULL);
global char *index_file init(NULL);
global char *CurrentDir;
+global int CurrentPid;
/*
global Buffer *Currentbuf;
global Buffer *Firstbuf;
diff --git a/image.c b/image.c
index 1f686a8..70b90c9 100644
--- a/image.c
+++ b/image.c
@@ -1,4 +1,4 @@
-/* $Id: image.c,v 1.23 2002/12/11 15:08:47 ukai Exp $ */
+/* $Id: image.c,v 1.24 2003/01/10 16:42:46 ukai Exp $ */
#include "fm.h"
#include <sys/types.h>
@@ -518,8 +518,6 @@ getImage(Image * image, ParsedURL *current, int flag)
cache->width = image->width;
cache->height = image->height;
putHash_sv(image_hash, key->ptr, (void *)cache);
- pushText(fileToDelete, cache->file);
- pushText(fileToDelete, cache->touch);
}
if (flag != IMG_FLAG_SKIP) {
if (cache->loaded == IMG_FLAG_UNLOADED) {
diff --git a/local.c b/local.c
index bfc886e..018a98c 100644
--- a/local.c
+++ b/local.c
@@ -1,4 +1,4 @@
-/* $Id: local.c,v 1.16 2002/11/27 16:35:18 ukai Exp $ */
+/* $Id: local.c,v 1.17 2003/01/10 16:42:50 ukai Exp $ */
#include "fm.h"
#include <string.h>
#include <stdio.h>
@@ -30,7 +30,7 @@ setLocalCookie()
char hostname[256];
gethostname(hostname, 256);
- Local_cookie = Sprintf("%d.%ld@%s", getpid(), lrand48(), hostname);
+ Local_cookie = Sprintf("%d.%ld@%s", CurrentPid, lrand48(), hostname);
set_environ("LOCAL_COOKIE", Local_cookie->ptr);
}
@@ -400,7 +400,6 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)
f1 = fopen(tmp1->ptr, "w");
if (f1 == NULL)
return NULL;
- pushText(fileToDelete, tmp1->ptr);
if ((pid = localcgi_popen_r(&f))) {
fclose(f1);
return pid > 0 ? f : NULL;
diff --git a/main.c b/main.c
index 0821b80..50f3320 100644
--- a/main.c
+++ b/main.c
@@ -1,10 +1,11 @@
-/* $Id: main.c,v 1.188 2003/01/10 16:23:59 ukai Exp $ */
+/* $Id: main.c,v 1.189 2003/01/10 16:42:52 ukai Exp $ */
#define MAINPROGRAM
#include "fm.h"
#include <signal.h>
#include <setjmp.h>
#include <sys/stat.h>
#include <sys/types.h>
+#include <unistd.h>
#include <fcntl.h>
#if defined(HAVE_WAITPID) || defined(HAVE_WAIT3)
#include <sys/wait.h>
@@ -380,6 +381,7 @@ main(int argc, char **argv, char **envp)
load_argc = 0;
CurrentDir = currentdir();
+ CurrentPid = (int)getpid();
BookmarkFile = NULL;
rc_dir = expandName(RC_DIR);
i = strlen(rc_dir);
@@ -1868,7 +1870,6 @@ pipeBuf(void)
}
saveBuffer(Currentbuf, f);
fclose(f);
- pushText(fileToDelete, tmpf);
buf = getpipe(myExtCommand(cmd, tmpf, TRUE)->ptr);
if (buf == NULL) {
disp_message("Execution failed", TRUE);
@@ -3051,7 +3052,7 @@ query_from_followform(Str *query, FormItemList *fi, int multipart)
}
fi->parent->body = (*query)->ptr;
fi->parent->boundary =
- Sprintf("------------------------------%d%ld%ld%ld", getpid(),
+ Sprintf("------------------------------%d%ld%ld%ld", CurrentPid,
fi->parent, fi->parent->body, fi->parent->boundary)->ptr;
}
*query = Strnew();
@@ -4395,7 +4396,6 @@ vwSrc(void)
!strcasecmp(Currentbuf->type, "text/plain")) {
FILE *f;
Str tmpf = tmpfname(TMPF_SRC, NULL);
- pushText(fileToDelete, tmpf->ptr);
f = fopen(tmpf->ptr, "w");
if (f == NULL)
return;