[w3m-dev 03729] buf fix of reAnchorNewsheader()
* anchor.c (reAnchorAny): check l->bpos (reAnchorNewsheader): check l->bpos strlen(*q) lineBuf[l->size] From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
10
ChangeLog
10
ChangeLog
@@ -1,3 +1,11 @@
|
|||||||
|
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>
|
2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
* [w3m-dev 03728] IPv6 hostname
|
* [w3m-dev 03728] IPv6 hostname
|
||||||
@@ -7019,4 +7027,4 @@ a * [w3m-dev 03276] compile error on EWS4800
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-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 $
|
||||||
|
|||||||
12
anchor.c
12
anchor.c
@@ -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 "fm.h"
|
||||||
#include "myctype.h"
|
#include "myctype.h"
|
||||||
#include "regex.h"
|
#include "regex.h"
|
||||||
@@ -339,7 +339,7 @@ reAnchorAny(Buffer *buf, char *re,
|
|||||||
Anchor *(*anchorproc) (Buffer *, char *, char *, int, int))
|
Anchor *(*anchorproc) (Buffer *, char *, char *, int, int))
|
||||||
{
|
{
|
||||||
Line *l;
|
Line *l;
|
||||||
char *p, *p1, *p2;
|
char *p = NULL, *p1, *p2;
|
||||||
|
|
||||||
if (re == NULL || *re == '\0') {
|
if (re == NULL || *re == '\0') {
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -350,6 +350,8 @@ reAnchorAny(Buffer *buf, char *re,
|
|||||||
for (l = MarkAllPages ? buf->firstLine : buf->topLine; l != NULL &&
|
for (l = MarkAllPages ? buf->firstLine : buf->topLine; l != NULL &&
|
||||||
(MarkAllPages || l->linenumber < buf->topLine->linenumber + LASTLINE);
|
(MarkAllPages || l->linenumber < buf->topLine->linenumber + LASTLINE);
|
||||||
l = l->next) {
|
l = l->next) {
|
||||||
|
if (p && l->bpos)
|
||||||
|
continue;
|
||||||
p = l->lineBuf;
|
p = l->lineBuf;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (regexMatch(p, &l->lineBuf[l->size] - p, p == l->lineBuf) == 1) {
|
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;
|
for (l = buf->firstLine; l != NULL && l->real_linenumber == 0;
|
||||||
l = l->next) {
|
l = l->next) {
|
||||||
|
if (l->bpos)
|
||||||
|
continue;
|
||||||
p = l->lineBuf;
|
p = l->lineBuf;
|
||||||
if (!IS_SPACE(*p)) {
|
if (!IS_SPACE(*p)) {
|
||||||
search = FALSE;
|
search = FALSE;
|
||||||
for (q = header; *q; q++) {
|
for (q = header; *q; q++) {
|
||||||
if (!strncasecmp(p, *q, sizeof(*q) - 1)) {
|
if (!strncasecmp(p, *q, strlen(*q))) {
|
||||||
search = TRUE;
|
search = TRUE;
|
||||||
p = strchr(p, ':') + 1;
|
p = strchr(p, ':') + 1;
|
||||||
break;
|
break;
|
||||||
@@ -417,7 +421,7 @@ reAnchorNewsheader(Buffer *buf)
|
|||||||
if (!search)
|
if (!search)
|
||||||
continue;
|
continue;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (regexMatch(p, &l->lineBuf[l->len] - p, p == l->lineBuf)
|
if (regexMatch(p, &l->lineBuf[l->size] - p, p == l->lineBuf)
|
||||||
== 1) {
|
== 1) {
|
||||||
matchedPosition(&p1, &p2);
|
matchedPosition(&p1, &p2);
|
||||||
p = reAnchorPos(buf, l, p1, p2, _put_anchor_news);
|
p = reAnchorPos(buf, l, p1, p2, _put_anchor_news);
|
||||||
|
|||||||
Reference in New Issue
Block a user