aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDai Sato <satodai@w3m.jp>2006-04-08 11:33:16 +0000
committerDai Sato <satodai@w3m.jp>2006-04-08 11:33:16 +0000
commita60d99eb7b09e4d219bfdff0e787430a087699be (patch)
treeed201e768b69d97a3eba545bd57ea3e627f3dcc0
parentadd explanations for .w3m/config and -o option. (diff)
downloadw3m-a60d99eb7b09e4d219bfdff0e787430a087699be.tar.gz
w3m-a60d99eb7b09e4d219bfdff0e787430a087699be.zip
check A tag in HTMLlineproc2body().
-rw-r--r--ChangeLog7
-rw-r--r--anchor.c7
-rw-r--r--file.c19
-rw-r--r--fm.h3
4 files changed, 30 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c507d3..cba43fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2006-04-08 Dai Sato <satodai@w3m.jp>
+ * [w3m-dev 04153] NEXT_LINK error
+ * anchor.c, filc.c, fm.h: check A tag in HTMLlineproc2body().
+
+2006-04-08 Dai Sato <satodai@w3m.jp>
+
* [w3m-dev 04152] [PATCH] Add more explanation for the usage of the option setting panel.
* doc(-jp)/FAQ.html, doc-jp/MANUAL.html: add explanations for .w3m/config and -o option.
@@ -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 <sys/types.h>
#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