diff options
| -rw-r--r-- | ChangeLog | 9 | ||||
| -rw-r--r-- | main.c | 5 | ||||
| -rw-r--r-- | proto.h | 3 | ||||
| -rw-r--r-- | url.c | 31 | 
4 files changed, 44 insertions, 4 deletions
| @@ -1,3 +1,10 @@ +2002-01-17  Fumitoshi UKAI  <ukai@debian.or.jp> + +	* [w3m-dev 02867] mark URL for external URIs +	* main.c (chkURLBuffer): chkExternalURIBuffer() +	* proto.h (chkExternalURIBuffer): added +	* url.c (chkExternalURIBuffer): added +  2002-01-17  Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>  	* [w3m-dev 02866] @@ -2098,4 +2105,4 @@  	* release-0-2-1  	* import w3m-0.2.1 -$Id: ChangeLog,v 1.238 2002/01/17 10:29:14 ukai Exp $ +$Id: ChangeLog,v 1.239 2002/01/17 11:06:45 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.64 2002/01/16 19:05:37 ukai Exp $ */ +/* $Id: main.c,v 1.65 2002/01/17 11:06:45 ukai Exp $ */  #define MAINPROGRAM  #include "fm.h"  #include <signal.h> @@ -4201,6 +4201,9 @@ chkURLBuffer(Buffer *buf)  	NULL      };      int i; +#ifdef USE_EXTERNAL_URI_LOADER +    chkExternalURIBuffer(buf); +#endif      for (i = 0; url_like_pat[i]; i++) {  	reAnchor(buf, url_like_pat[i]);      } @@ -1,4 +1,4 @@ -/* $Id: proto.h,v 1.26 2002/01/16 16:49:54 ukai Exp $ */ +/* $Id: proto.h,v 1.27 2002/01/17 11:06:45 ukai Exp $ */  /*    *   This file was automatically generated by version 1.7 of cextract.   *   Manual editing not recommended. @@ -113,6 +113,7 @@ extern char *filename_extension(char *patch, int is_url);  #ifdef USE_EXTERNAL_URI_LOADER  extern void initURIMethods();  extern Str searchURIMethods(ParsedURL *pu); +extern void chkExternalURIBuffer(Buffer *buf);  #endif  extern void examineFile(char *path, URLFile *uf);  extern char *acceptableEncoding(); @@ -1,4 +1,4 @@ -/* $Id: url.c,v 1.34 2002/01/15 03:45:02 ukai Exp $ */ +/* $Id: url.c,v 1.35 2002/01/17 11:06:45 ukai Exp $ */  #include "fm.h"  #include <sys/types.h>  #include <sys/socket.h> @@ -2068,4 +2068,33 @@ searchURIMethods(ParsedURL *pu)      }      return NULL;  } + +/* + * RFC2396: Uniform Resource Identifiers (URI): Generic Syntax + * Appendix A. Collected BNF for URI + * uric          = reserved | unreserved | escaped + * reserved      = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | + *                 "$" | "," + * unreserved    = alphanum | mark + * mark          = "-" | "_" | "." | "!" | "~" | "*" | "'" | + *                  "(" | ")" + * escaped       = "%" hex hex + */ + +#define URI_PATTERN	"[-;/?:@&=+$,a-zA-Z0-9_.!~*'()%]*" +void +chkExternalURIBuffer(Buffer *buf) +{ +    int i; +    struct table2 *ump; + +    for (i = 0; (ump = urimethods[i]) != NULL; i++) { +	for (; ump->item1 != NULL; ump++) { +	    reAnchor(buf, Sprintf("%s:" URI_PATTERN, ump->item1)->ptr); +	} +    } +    for (ump = default_urimethods; ump->item1 != NULL; ump++) { +	reAnchor(buf, Sprintf("%s:" URI_PATTERN, ump->item1)->ptr); +    } +}  #endif | 
