[w3m-dev 02878] fix regexp [-...], [...-], []...]

* regexp.c (newRegex0): if first char is `-' or ']' after '[',
		it isn't meta char.
		if last char in [..] is `-', it isn't meta char.
From: Fumitoshi UKAI  <ukai@debian.or.jp>
This commit is contained in:
Fumitoshi UKAI
2002-01-21 16:38:43 +00:00
parent 004f4abe6e
commit 76f8576ee3
2 changed files with 12 additions and 3 deletions

View File

@@ -1,3 +1,10 @@
2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 02878] fix regexp [-...], [...-], []...]
* regexp.c (newRegex0): if first char is `-' or ']' after '[',
it isn't meta char.
if last char in [..] is `-', it isn't meta char.
2002-01-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> 2002-01-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 02877] some fixes for urimethodmap * [w3m-dev 02877] some fixes for urimethodmap
@@ -2163,4 +2170,4 @@
* release-0-2-1 * release-0-2-1
* import w3m-0.2.1 * import w3m-0.2.1
$Id: ChangeLog,v 1.245 2002/01/21 15:56:12 ukai Exp $ $Id: ChangeLog,v 1.246 2002/01/21 16:38:43 ukai Exp $

View File

@@ -1,4 +1,4 @@
/* $Id: regex.c,v 1.14 2002/01/21 15:56:13 ukai Exp $ */ /* $Id: regex.c,v 1.15 2002/01/21 16:38:43 ukai Exp $ */
/* /*
* regex: Regular expression pattern match library * regex: Regular expression pattern match library
* *
@@ -150,6 +150,8 @@ newRegex0(char **ex, int igncase, Regex *regex, char **msg, int level)
} }
else else
m = RE_WHICH; m = RE_WHICH;
if (*p == '-' || *p == ']')
*(st_ptr++) = (unsigned char)*(p++);
while (*p != ']') { while (*p != ']') {
if (*p == '\\') { if (*p == '\\') {
p++; p++;
@@ -162,7 +164,7 @@ newRegex0(char **ex, int igncase, Regex *regex, char **msg, int level)
#endif #endif
*(st_ptr++) = (unsigned char)*(p++); *(st_ptr++) = (unsigned char)*(p++);
} }
else if (*p == '-') { else if (*p == '-' && *(p+1) != ']') {
*(st_ptr++) = RE_WHICH_RANGE; *(st_ptr++) = RE_WHICH_RANGE;
p++; p++;
} }