diff --git a/ChangeLog b/ChangeLog index 06019849f5..6307433226 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sat Jun 14 16:58:41 2003 Guy Decoux + + * regex.c (calculate_must_string): should handle option_set + properly. [ruby-talk:73481] + + * regex.c (re_compile_fastmap): a bug in flag manipulation. + [ruby-talk:73549] + Sat Jun 14 17:59:59 2003 Guy Decoux * eval.c (method_arity): should handle NODE_BMETHOD and diff --git a/regex.c b/regex.c index 57ce31fe33..4ac18cb3a0 100644 --- a/regex.c +++ b/regex.c @@ -1037,6 +1037,7 @@ calculate_must_string(start, end) break; case duplicate: + case option_set: p++; break; @@ -1062,7 +1063,6 @@ calculate_must_string(start, end) case push_dummy_failure: case start_paren: case stop_paren: - case option_set: break; case charset: @@ -2815,8 +2815,11 @@ re_compile_fastmap(bufp) case casefold_on: bufp->options |= RE_MAY_IGNORECASE; + options |= RE_OPTION_IGNORECASE; + continue; + case casefold_off: - options ^= RE_OPTION_IGNORECASE; + options &= ~RE_OPTION_IGNORECASE; continue; case option_set: