diff options
| author | Fumitoshi UKAI <ukai@debian.or.jp> | 2003-02-05 16:23:27 +0000 | 
|---|---|---|
| committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2003-02-05 16:23:27 +0000 | 
| commit | 4f8c42c5dbfe153c9b1ecc98a92813032787b2f6 (patch) | |
| tree | 58c91a264527d96e6ebe73ef46cf304b36ab270c | |
| parent | [w3m-dev 03728] IPv6 hostname (diff) | |
| download | w3m-4f8c42c5dbfe153c9b1ecc98a92813032787b2f6.tar.gz w3m-4f8c42c5dbfe153c9b1ecc98a92813032787b2f6.zip | |
[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>
| -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); | 
