diff options
| -rw-r--r-- | ChangeLog | 7 | ||||
| -rw-r--r-- | url.c | 28 | 
2 files changed, 15 insertions, 20 deletions
| @@ -1,3 +1,8 @@ +2003-02-06  Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + +	* [w3m-dev 03728] IPv6 hostname +	* url.c (parseURL): rewrite IPv6 address parser +  2003-02-04  Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>  	* [w3m-dev 03724] Re: view source, edit source @@ -7014,4 +7019,4 @@ a	* [w3m-dev 03276] compile error on EWS4800  	* release-0-2-1  	* import w3m-0.2.1 -$Id: ChangeLog,v 1.735 2003/02/03 15:49:13 ukai Exp $ +$Id: ChangeLog,v 1.736 2003/02/05 16:18:23 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: url.c,v 1.72 2003/01/31 16:25:10 ukai Exp $ */ +/* $Id: url.c,v 1.73 2003/02/05 16:18:23 ukai Exp $ */  #include "fm.h"  #include <sys/types.h>  #include <sys/socket.h> @@ -766,27 +766,17 @@ parseURL(char *url, ParsedURL *p_url, ParsedURL *current)      /*          ^p is here  */    analyze_url:      q = p; -    while (*p && strchr(":/@?#", *p) == NULL) {  #ifdef INET6 -	if (*p == '[') {	/* rfc2732 compliance */ -	    char *p_colon = NULL; -	    do { -		p++; -		if ((p_colon == NULL) && (*p == ':')) -		    p_colon = p; -	    } while (*p && (IS_ALNUM(*p) || *p == ':' || *p == '.')); -	    if (*p == ']') { -		p++; -		break; -	    } -	    else if (p_colon) { -		p = p_colon; -		break; -	    } -	} -#endif +    if (*q == '[') {		/* rfc2732,rfc2373 compliance */  	p++; +	while (IS_XDIGIT(*p) || *p == ':' || *p == '.') +	    p++; +	if (*p != ']' || (*(p + 1) && strchr(":/?#", *(p + 1)) == NULL)) +	    p = q;      } +#endif +    while (*p && strchr(":/@?#", *p) == NULL) +	p++;      switch (*p) {      case ':':  	/* scheme://user:pass@host or | 
