From 76f8576ee32f8c6bfcdfe0149dd2e4e1cb985f13 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Mon, 21 Jan 2002 16:38:43 +0000 Subject: [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 --- ChangeLog | 9 ++++++++- regex.c | 6 ++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 252919f..c68aca2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2002-01-22 Fumitoshi UKAI + + * [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 * [w3m-dev 02877] some fixes for urimethodmap @@ -2163,4 +2170,4 @@ * release-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 $ diff --git a/regex.c b/regex.c index 7311eab..165e120 100644 --- a/regex.c +++ b/regex.c @@ -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 * @@ -150,6 +150,8 @@ newRegex0(char **ex, int igncase, Regex *regex, char **msg, int level) } else m = RE_WHICH; + if (*p == '-' || *p == ']') + *(st_ptr++) = (unsigned char)*(p++); while (*p != ']') { if (*p == '\\') { p++; @@ -162,7 +164,7 @@ newRegex0(char **ex, int igncase, Regex *regex, char **msg, int level) #endif *(st_ptr++) = (unsigned char)*(p++); } - else if (*p == '-') { + else if (*p == '-' && *(p+1) != ']') { *(st_ptr++) = RE_WHICH_RANGE; p++; } -- cgit v1.2.3