diff options
Diffstat (limited to '')
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | anchor.c | 12 |
2 files changed, 17 insertions, 5 deletions
@@ -1,5 +1,13 @@ 2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * [w3m-dev 03729] buf fix of reAnchorNewsheader() + * anchor.c (reAnchorAny): check l->bpos + (reAnchorNewsheader): check l->bpos + strlen(*q) + lineBuf[l->size] + +2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * [w3m-dev 03728] IPv6 hostname * url.c (parseURL): rewrite IPv6 address parser @@ -7019,4 +7027,4 @@ a * [w3m-dev 03276] compile error on EWS4800 * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.736 2003/02/05 16:18:23 ukai Exp $ +$Id: ChangeLog,v 1.737 2003/02/05 16:23:27 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: anchor.c,v 1.21 2003/01/23 18:37:20 ukai Exp $ */ +/* $Id: anchor.c,v 1.22 2003/02/05 16:23:28 ukai Exp $ */ #include "fm.h" #include "myctype.h" #include "regex.h" @@ -339,7 +339,7 @@ reAnchorAny(Buffer *buf, char *re, Anchor *(*anchorproc) (Buffer *, char *, char *, int, int)) { Line *l; - char *p, *p1, *p2; + char *p = NULL, *p1, *p2; if (re == NULL || *re == '\0') { return NULL; @@ -350,6 +350,8 @@ reAnchorAny(Buffer *buf, char *re, for (l = MarkAllPages ? buf->firstLine : buf->topLine; l != NULL && (MarkAllPages || l->linenumber < buf->topLine->linenumber + LASTLINE); l = l->next) { + if (p && l->bpos) + continue; p = l->lineBuf; for (;;) { if (regexMatch(p, &l->lineBuf[l->size] - p, p == l->lineBuf) == 1) { @@ -403,11 +405,13 @@ reAnchorNewsheader(Buffer *buf) } for (l = buf->firstLine; l != NULL && l->real_linenumber == 0; l = l->next) { + if (l->bpos) + continue; p = l->lineBuf; if (!IS_SPACE(*p)) { search = FALSE; for (q = header; *q; q++) { - if (!strncasecmp(p, *q, sizeof(*q) - 1)) { + if (!strncasecmp(p, *q, strlen(*q))) { search = TRUE; p = strchr(p, ':') + 1; break; @@ -417,7 +421,7 @@ reAnchorNewsheader(Buffer *buf) if (!search) continue; for (;;) { - if (regexMatch(p, &l->lineBuf[l->len] - p, p == l->lineBuf) + if (regexMatch(p, &l->lineBuf[l->size] - p, p == l->lineBuf) == 1) { matchedPosition(&p1, &p2); p = reAnchorPos(buf, l, p1, p2, _put_anchor_news); |