$B$d$^$F$G$9!#(B
$B$A$g$C$HLnK>$,$G$-$?$N$G!"$=$NCO$J$i$7$N$?$a$K$^$:(Bframe$BFb$N(B
href/target/referer$BCV$-49$($r$A$g$C$H$9$C$-$j$5$;$^$7$?!#(B<img>$BEy$K$b(B
referer$BB0@-$,$D$/$h$&$K$J$j$^$9!#L`$b!"$D$1$?(Breferer$BB0@-$r$I$&07$&$+$^(B
$B$G$O:#$N$H$3$m9MN830$G$9!#(B
html.c$B$+$i(Bparsetagx.o$B$X$N0MB84X78%Q%C%A$bF~$C$F$$$^$9!#(B
w3m-0.1.11-pre-kokb23$B$K(Bw3m-dev 1559$B$N%Q%C%A(B (+ $B$=$l$KI,MW$JB>$N%Q%C%A(B)
$B$rEv$F$?>uBV$+$i$N%Q%C%A$G$9!#(B
--- $B$=$l$G$&$l$7$$$N$C$F%"%s%0%i7O$N%Z!<%8$7$+$J$$$h$&$J5$$,$9$k!#0cK!2<:\(B $B$H$+!#(B $B$d$^$F(B
diff -rC2 -x XX* -x *table -x *[^.l]? -x *.[^che] -x config* w3m-0.1.11-pre-kokb23+1559/XMakefile w3m-0.1.11-pre-kokb23-mine/XMakefile *** w3m-0.1.11-pre-kokb23+1559/XMakefile Tue Dec 26 19:23:49 2000 --- w3m-0.1.11-pre-kokb23-mine/XMakefile Tue Dec 26 20:09:58 2000 *************** *** 45,48 **** --- 45,49 ---- keybind.o: funcname2.h keybind_lynx.o: funcname2.h + parsetagx.o: html.c funcname.c: funcname.tab diff -rC2 -x XX* -x *table -x *[^.l]? -x *.[^che] -x config* w3m-0.1.11-pre-kokb23+1559/frame.c w3m-0.1.11-pre-kokb23-mine/frame.c *** w3m-0.1.11-pre-kokb23+1559/frame.c Tue Dec 26 19:23:43 2000 --- w3m-0.1.11-pre-kokb23-mine/frame.c Tue Dec 26 19:36:01 2000 *************** *** 565,569 **** if (tok->ptr[0] == '<') { char *q = tok->ptr; ! int j, is_anchor = 0, a_target = 0; struct parsed_tag *tag; ParsedURL url; --- 565,569 ---- if (tok->ptr[0] == '<') { char *q = tok->ptr; ! int j, a_target = 0; struct parsed_tag *tag; ParsedURL url; *************** *** 638,680 **** } break; - case HTML_A: - is_anchor = 1; - a_target = 2; - if (parsedtag_get_value(tag, ATTR_TARGET, &q)) { - a_target = 0; - if (!strcasecmp(q, "_self")) { - parsedtag_set_value(tag, - ATTR_TARGET, - s_target); - tag->need_reconstruct = TRUE; - } - else if (!strcasecmp(q, "_parent")) { - parsedtag_set_value(tag, - ATTR_TARGET, - p_target); - tag->need_reconstruct = TRUE; - } - } - else if (parsedtag_get_value(tag, ATTR_HREF, &q)) - a_target = 1; - - case HTML_FORM: - a_target = 1; - if (parsedtag_get_value(tag, ATTR_TARGET, &q)) { - a_target = 0; - if (!strcasecmp(q, "_self")) { - parsedtag_set_value(tag, - ATTR_TARGET, - s_target); - tag->need_reconstruct = TRUE; - } - else if (!strcasecmp(q, "_parent")) { - parsedtag_set_value(tag, - ATTR_TARGET, - p_target); - tag->need_reconstruct = TRUE; - } - } - break; default: break; --- 638,641 ---- *************** *** 685,688 **** --- 646,650 ---- case ATTR_HREF: case ATTR_ACTION: + a_target |= 1; if (!(tag->value[j] && strncasecmp(tag->value[j], *************** *** 693,696 **** --- 655,661 ---- parseURL2(tag->value[j], &url, &base); tag->value[j] = parsedURL2Str(&url)->ptr; + parsedtag_set_value(tag, + ATTR_REFERER, + parsedURL2Str(&base)->ptr); #ifdef JP_CHARSET if (code != '\0') { *************** *** 703,706 **** --- 668,687 ---- tag->need_reconstruct = TRUE; break; + case ATTR_TARGET: + a_target |= 2; + if (!strcasecmp(tag->value[j], "_self")) { + parsedtag_set_value(tag, + ATTR_TARGET, + s_target); + tag->need_reconstruct = TRUE; + } + else if (!strcasecmp(tag->value[j], + "_parent")) { + parsedtag_set_value(tag, + ATTR_TARGET, + p_target); + tag->need_reconstruct = TRUE; + } + break; case ATTR_NAME: case ATTR_ID: *************** *** 715,729 **** } if (a_target == 1) { ! /* there is HREF attribute and no * TARGET * attribute */ parsedtag_set_value(tag, ATTR_TARGET, d_target); - tag->need_reconstruct = TRUE; - } - if (is_anchor) { - parsedtag_set_value(tag, - ATTR_REFERER, - parsedURL2Str(&base)->ptr); tag->need_reconstruct = TRUE; } --- 696,704 ---- } if (a_target == 1) { ! /* there is HREF attribute and no TARGET * attribute */ parsedtag_set_value(tag, ATTR_TARGET, d_target); tag->need_reconstruct = TRUE; } diff -rC2 -x XX* -x *table -x *[^.l]? -x *.[^che] -x config* w3m-0.1.11-pre-kokb23+1559/html.c w3m-0.1.11-pre-kokb23-mine/html.c *** w3m-0.1.11-pre-kokb23+1559/html.c Tue Dec 26 19:23:48 2000 --- w3m-0.1.11-pre-kokb23-mine/html.c Tue Dec 26 20:16:29 2000 *************** *** 21,25 **** #define MAXA_PRE MAXA_CORE + 1 unsigned char ALST_IMG[] = ! {ATTR_SRC,ATTR_ALT,ATTR_WIDTH,ATTR_HEIGHT,ATTR_USEMAP,ATTR_CORE}; #define MAXA_IMG MAXA_CORE + 5 unsigned char ALST_TABLE[] = --- 21,25 ---- #define MAXA_PRE MAXA_CORE + 1 unsigned char ALST_IMG[] = ! {ATTR_SRC,ATTR_REFERER,ATTR_ALT,ATTR_WIDTH,ATTR_HEIGHT,ATTR_USEMAP,ATTR_CORE}; #define MAXA_IMG MAXA_CORE + 5 unsigned char ALST_TABLE[] = *************** *** 33,37 **** #define MAXA_FRAMESET MAXA_CORE + 2 unsigned char ALST_FORM[] = ! {ATTR_METHOD,ATTR_ACTION,ATTR_CHARSET,ATTR_ACCEPT_CHARSET,ATTR_ENCTYPE,ATTR_TARGET,ATTR_CORE}; #define MAXA_FORM MAXA_CORE + 6 unsigned char ALST_INPUT[] = --- 33,37 ---- #define MAXA_FRAMESET MAXA_CORE + 2 unsigned char ALST_FORM[] = ! {ATTR_METHOD,ATTR_ACTION,ATTR_REFERER,ATTR_CHARSET,ATTR_ACCEPT_CHARSET,ATTR_ENCTYPE,ATTR_TARGET,ATTR_CORE}; #define MAXA_FORM MAXA_CORE + 6 unsigned char ALST_INPUT[] = *************** *** 44,52 **** unsigned char ALST_OPTION[] = {ATTR_VALUE,ATTR_LABEL,ATTR_SELECTED,ATTR_CORE}; #define MAXA_OPTION MAXA_CORE + 3 ! unsigned char ALST_ISINDEX[] = {ATTR_ACTION,ATTR_PROMPT,ATTR_CORE}; #define MAXA_ISINDEX MAXA_CORE + 2 unsigned char ALST_MAP[] = {ATTR_NAME,ATTR_CORE}; #define MAXA_MAP MAXA_CORE + 1 ! unsigned char ALST_AREA[] = {ATTR_HREF,ATTR_CORE}; #define MAXA_AREA MAXA_CORE + 1 unsigned char ALST_BASE[] = {ATTR_HREF,ATTR_TARGET,ATTR_CORE}; --- 44,52 ---- unsigned char ALST_OPTION[] = {ATTR_VALUE,ATTR_LABEL,ATTR_SELECTED,ATTR_CORE}; #define MAXA_OPTION MAXA_CORE + 3 ! unsigned char ALST_ISINDEX[] = {ATTR_ACTION,ATTR_REFERER,ATTR_PROMPT,ATTR_CORE}; #define MAXA_ISINDEX MAXA_CORE + 2 unsigned char ALST_MAP[] = {ATTR_NAME,ATTR_CORE}; #define MAXA_MAP MAXA_CORE + 1 ! unsigned char ALST_AREA[] = {ATTR_HREF,ATTR_REFERER,ATTR_CORE}; #define MAXA_AREA MAXA_CORE + 1 unsigned char ALST_BASE[] = {ATTR_HREF,ATTR_TARGET,ATTR_CORE}; *************** *** 59,67 **** {ATTR_COLSPAN,ATTR_ROWSPAN,ATTR_ALIGN,ATTR_VALIGN,ATTR_WIDTH,ATTR_NOWRAP,ATTR_CORE}; #define MAXA_TD MAXA_CORE + 6 ! unsigned char ALST_BGSOUND[] = {ATTR_SRC,ATTR_CORE}; #define MAX_BGSOUND MAXA_CORE + 1 unsigned char ALST_APPLET[] = {ATTR_ARCHIVE,ATTR_CORE}; #define MAX_APPLET MAXA_CORE + 1 ! unsigned char ALST_EMBED[] = {ATTR_SRC,ATTR_CORE}; #define MAX_EMBED MAXA_CORE + 1 --- 59,67 ---- {ATTR_COLSPAN,ATTR_ROWSPAN,ATTR_ALIGN,ATTR_VALIGN,ATTR_WIDTH,ATTR_NOWRAP,ATTR_CORE}; #define MAXA_TD MAXA_CORE + 6 ! unsigned char ALST_BGSOUND[] = {ATTR_SRC,ATTR_REFERER,ATTR_CORE}; #define MAX_BGSOUND MAXA_CORE + 1 unsigned char ALST_APPLET[] = {ATTR_ARCHIVE,ATTR_CORE}; #define MAX_APPLET MAXA_CORE + 1 ! unsigned char ALST_EMBED[] = {ATTR_SRC,ATTR_REFERER,ATTR_CORE}; #define MAX_EMBED MAXA_CORE + 1 *************** *** 75,79 **** {ATTR_HSEQ,ATTR_FID,ATTR_NO_EFFECT,ATTR_TYPE,ATTR_NAME,ATTR_VALUE,ATTR_CHECKED,ATTR_ACCEPT,ATTR_SIZE,ATTR_MAXLENGTH,ATTR_TEXTAREANUMBER,ATTR_SELECTNUMBER,ATTR_ROWS}; #define MAXA_INPUT_ALT 13 ! unsigned char ALST_IMG_ALT[] = {ATTR_SRC}; #define MAXA_IMG_ALT 1 unsigned char ALST_NOP[] = {ATTR_CORE}; --- 75,79 ---- {ATTR_HSEQ,ATTR_FID,ATTR_NO_EFFECT,ATTR_TYPE,ATTR_NAME,ATTR_VALUE,ATTR_CHECKED,ATTR_ACCEPT,ATTR_SIZE,ATTR_MAXLENGTH,ATTR_TEXTAREANUMBER,ATTR_SELECTNUMBER,ATTR_ROWS}; #define MAXA_INPUT_ALT 13 ! unsigned char ALST_IMG_ALT[] = {ATTR_SRC,ATTR_REFERER}; #define MAXA_IMG_ALT 1 unsigned char ALST_NOP[] = {ATTR_CORE};
This archive was generated by hypermail 2b29 : Tue Dec 26 2000 - 05:53:19 CST