$B$d$^$F(B@$B?ALn$G$9!#(B
$B0lCJMn$7$?$N$G!"8=;~E@$N%Q%C%A$r=P$7$^$9!#(B
"<frameset><frame src=xxx.unknown-type></frameset>"$B$GMn$A$k$+$b(B
frameset$B$G(Bbase URI$B$rJQ$($D$D(Bhtml$B$rB?CJ$K8F$S=P$7$?$H$-$N(BURI$B2r<a(B
frameset buffer$B$r(Bredraw$B$9$k$H(Bcache source file$B$,$J$/$J$k(B
$B%W%j%F%#%W%j%s%H$=$NB>(B
$B;d$N:#F|D+0l$N(Bpatch$B$rEv$F$?$"$H$GEv$F$F$/$@$5$$!#AG(Bw3m-0.1.10pre$B$K$O(B
$BEv$j$^$;$s!#(B
--- $B$^$@$^$@$"$k$N$+$J$!!#$"$k$s$@$m$&$J$!!#(B $B$d$^$F(B
diff -rU3 -x *[^.]? -x *.[^ch] w3m.current/conv.c w3m.new/conv.c --- w3m.current/conv.c Thu May 18 11:20:13 2000 +++ w3m.new/conv.c Thu May 18 09:44:01 2000 @@ -173,7 +173,7 @@ } /* Convert Shift-JIS to JIS/real JIS/EUC */ -static Str +static Str _cConvSJ(unsigned char *is, int euc) { Str os = Strnew_size(strlen(is) * 3 / 2); @@ -392,7 +392,7 @@ register unsigned char *p, c; unsigned char si = '\0', - so = '\0'; + so = '\0'; char euc, /* euc parse state */ #define EUC_ERROR 0 #define EUC_NOSTATE 1 @@ -456,8 +456,8 @@ break; default: euc_or_sjis |= 2; - } - } + } + } } else { euc = EUC_ERROR; } diff -rU3 -x *[^.]? -x *.[^ch] w3m.current/frame.c w3m.new/frame.c --- w3m.current/frame.c Thu May 18 11:20:13 2000 +++ w3m.new/frame.c Thu May 18 15:24:02 2000 @@ -397,7 +397,7 @@ if (buf == NULL || buf == NO_BUFFER) { b->source = NULL; - b->flags = 0; + b->flags = (buf == NO_BUFFER) ? FB_NO_BUFFER : 0; return NULL; } if (buf->firstLine == NULL) { @@ -416,6 +416,8 @@ if (buf->frameset) { ret_frameset = buf->frameset; ret_frameset->name = b->name; + ret_frameset->currentURL = New(ParsedURL); + copyParsedURL(ret_frameset->currentURL, &buf->currentURL); buf->frameset = popFrameTree(&(buf->frameQ), NULL, NULL); } discardBuffer(buf); @@ -521,7 +523,10 @@ if (frame.body->source == NULL || (f2 = fopen(frame.body->source, "r")) == NULL) { frame.body->attr = F_UNLOADED; - fprintf(f1, "Can't open %s", frame.body->url); + if (frame.body->flags & FB_NO_BUFFER) + fprintf(f1, "Open %s with other method", frame.body->url); + else + fprintf(f1, "Can't open %s", frame.body->url); break; } parseURL2(frame.body->url, &base, currentURL); @@ -731,7 +736,7 @@ struct frameset *fset; tmp = Sprintf("%s/w3mframe%d.%lx.html", rc_dir, getpid(), - (unsigned long) Cbuf->frameQ); + (unsigned long) Cbuf->frameset); f = fopen(tmp->ptr, "w"); if (f == NULL) return NULL; @@ -745,7 +750,7 @@ if ((Cbuf->currentURL).is_nocache) flag |= RG_NOCACHE; buf = loadGeneralFile(tmp->ptr, NULL, NULL, flag, NULL); - if (buf == NULL) + if (buf == NULL || buf == NO_BUFFER) return NULL; buf->sourcefile = tmp->ptr; buf->bufferprop |= BP_FRAME; diff -rU3 -x *[^.]? -x *.[^ch] w3m.current/frame.h w3m.new/frame.h --- w3m.current/frame.h Thu May 18 11:20:13 2000 +++ w3m.new/frame.h Thu May 18 14:07:55 2000 @@ -16,6 +16,7 @@ char flags; #define FB_NOCACHE 0x01 #define FB_TODELETE 0x02 +#define FB_NO_BUFFER 0x04 char *name; char *url; ParsedURL *baseURL; @@ -48,5 +49,5 @@ struct frameset_queue *back; struct frameset *frameset; long linenumber; - short pos; + short pos; }; diff -rU3 -x *[^.]? -x *.[^ch] w3m.current/mailcap.c w3m.new/mailcap.c --- w3m.current/mailcap.c Thu May 18 11:19:39 2000 +++ w3m.new/mailcap.c Thu May 18 14:34:34 2000 @@ -14,7 +14,7 @@ static struct mailcap DefaultMailcap[] = { - {"image/*", "xv %s"}, + {"image/*", "xv %s"}, /* */ {"audio/basic", "showaudio %s"}, {NULL, NULL} }; diff -rU3 -x *[^.]? -x *.[^ch] w3m.current/main.c w3m.new/main.c --- w3m.current/main.c Thu May 18 11:20:14 2000 +++ w3m.new/main.c Thu May 18 15:22:38 2000 @@ -2644,7 +2644,7 @@ void backBf(void) { - Buffer *buf; + Buffer *buf; struct frameset *fs = NULL; long linenumber; short pos; @@ -2655,15 +2655,15 @@ } do { - buf = Currentbuf->linkBuffer[LB_N_FRAME]; - delBuffer(Currentbuf); + buf = Currentbuf->linkBuffer[LB_N_FRAME]; + delBuffer(Currentbuf); } while (RenderFrame && Currentbuf == buf && (fs = popFrameTree(&(buf->frameQ), &linenumber, &pos)) == NULL); if (fs) { - deleteFrameSet(buf->frameset); - buf->frameset = fs; - } + deleteFrameSet(buf->frameset); + buf->frameset = fs; + } if (RenderFrame && Currentbuf->frameset != NULL) { rFrame(); @@ -3023,13 +3023,13 @@ void reload(void) { - Buffer *buf, - *fbuf = NULL; - Str url; - int linenum, - is_source; - FormList *request; - int multipart; + Buffer *buf, + *fbuf = NULL; + Str url; + int linenum, + is_source; + FormList *request; + int multipart; if (Currentbuf->bufferprop & BP_INTERNAL) { disp_message("Can't reload...", FALSE); @@ -3053,7 +3053,14 @@ } if (!(buf = renderFrame(fbuf))) return; - delBuffer(fbuf->linkBuffer[LB_FRAME]); + if (fbuf->linkBuffer[LB_FRAME]) { + if (buf->sourcefile && + fbuf->linkBuffer[LB_FRAME]->sourcefile && + !strcmp(buf->sourcefile, + fbuf->linkBuffer[LB_FRAME]->sourcefile)) + fbuf->linkBuffer[LB_FRAME]->sourcefile = NULL; + delBuffer(fbuf->linkBuffer[LB_FRAME]); + } fbuf->linkBuffer[LB_FRAME] = buf; buf->linkBuffer[LB_N_FRAME] = fbuf; pushBuffer(buf);
This archive was generated by hypermail 2b29 : Wed Jul 19 2000 - 10:30:55 CDT