From a60d99eb7b09e4d219bfdff0e787430a087699be Mon Sep 17 00:00:00 2001 From: Dai Sato Date: Sat, 8 Apr 2006 11:33:16 +0000 Subject: check A tag in HTMLlineproc2body(). --- ChangeLog | 7 ++++++- anchor.c | 7 +++++-- file.c | 19 +++++++++++++++++-- fm.h | 3 ++- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7c507d3..cba43fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-04-08 Dai Sato + + * [w3m-dev 04153] NEXT_LINK error + * anchor.c, filc.c, fm.h: check A tag in HTMLlineproc2body(). + 2006-04-08 Dai Sato * [w3m-dev 04152] [PATCH] Add more explanation for the usage of the option setting panel. @@ -8698,4 +8703,4 @@ a * [w3m-dev 03276] compile error on EWS4800 * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.958 2006/04/08 11:26:22 inu Exp $ +$Id: ChangeLog,v 1.959 2006/04/08 11:33:16 inu Exp $ diff --git a/anchor.c b/anchor.c index bf881d3..27bbd56 100644 --- a/anchor.c +++ b/anchor.c @@ -1,4 +1,4 @@ -/* $Id: anchor.c,v 1.32 2006/04/07 13:21:11 inu Exp $ */ +/* $Id: anchor.c,v 1.33 2006/04/08 11:33:16 inu Exp $ */ #include "fm.h" #include "myctype.h" #include "regex.h" @@ -175,6 +175,8 @@ searchAnchor(AnchorList *al, char *str) return NULL; for (i = 0; i < al->nanchor; i++) { a = &al->anchors[i]; + if (a->hseq < 0) + continue; if (!strcmp(a->url, str)) return a; } @@ -471,6 +473,7 @@ putHmarker(HmarkerList *ml, int line, int pos, int seq) } ml->marks[seq].line = line; ml->marks[seq].pos = pos; + ml->marks[seq].invalid = 0; return ml; } @@ -778,7 +781,7 @@ link_list_panel(Buffer *buf) al = buf->href; for (i = 0; i < al->nanchor; i++) { a = &al->anchors[i]; - if (a->slave) + if (a->hseq < 0 || a->slave) continue; parseURL2(a->url, &pu, baseURL(buf)); p = parsedURL2Str(&pu)->ptr; diff --git a/file.c b/file.c index fc4cecf..21cdcb0 100644 --- a/file.c +++ b/file.c @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.241 2006/04/07 15:48:56 inu Exp $ */ +/* $Id: file.c,v 1.242 2006/04/08 11:33:16 inu Exp $ */ #include "fm.h" #include #include "myctype.h" @@ -5285,6 +5285,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) buf->hmarklist = putHmarker(buf->hmarklist, currentLn(buf), pos, hseq - 1); + else if (hseq < 0) { + int h = -hseq - 1; + if (buf->hmarklist && + h < buf->hmarklist->nmark && + buf->hmarklist->marks[h].invalid) { + buf->hmarklist->marks[h].pos = pos; + buf->hmarklist->marks[h].line = currentLn(buf); + buf->hmarklist->marks[h].invalid = 0; + hseq = -hseq; + } + } if (id && idFrame) idFrame->body->nameList = putAnchor(idFrame->body->nameList, id, NULL, @@ -5304,8 +5315,12 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) a_href->end.line = currentLn(buf); a_href->end.pos = pos; if (a_href->start.line == a_href->end.line && - a_href->start.pos == a_href->end.pos) + a_href->start.pos == a_href->end.pos) { + if (buf->hmarklist && + a_href->hseq < buf->hmarklist->nmark) + buf->hmarklist->marks[a_href->hseq].invalid = 1; a_href->hseq = -1; + } a_href = NULL; } break; diff --git a/fm.h b/fm.h index 876ce38..bd8d65b 100644 --- a/fm.h +++ b/fm.h @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.130 2006/04/07 15:48:56 inu Exp $ */ +/* $Id: fm.h,v 1.131 2006/04/08 11:33:16 inu Exp $ */ /* * w3m: WWW wo Miru utility * @@ -336,6 +336,7 @@ typedef struct _Line { typedef struct { int line; int pos; + int invalid; } BufferPoint; #ifdef USE_IMAGE -- cgit v1.2.3