diff options
-rw-r--r-- | parse.y | 15 | ||||
-rw-r--r-- | re.c | 14 |
2 files changed, 15 insertions, 14 deletions
@@ -1434,7 +1434,7 @@ cases : opt_else exc_list : args | none -exc_var : kIN lhs +exc_var : ':' lhs { $$ = $2; } @@ -2257,7 +2257,8 @@ parse_regx(term, paren) options |= RE_OPTION_EXTENDED; break; case 'p': /* /p is obsolete, works as /m */ - yyerror("/p option is obsolete; use /m\n\tnote: /m does not change ^, $ behavior"); + rb_warn("/p option is obsolete; use /m\n\tnote: /m does not change ^, $ behavior"); + options |= RE_OPTION_POSIXLINE; break; case 'm': options |= RE_OPTION_MULTILINE; @@ -2266,16 +2267,16 @@ parse_regx(term, paren) once = 1; break; case 'n': - kcode = 8; + kcode = 16; break; case 'e': - kcode = 16; + kcode = 32; break; case 's': - kcode = 24; + kcode = 48; break; case 'u': - kcode = 32; + kcode = 64; break; default: pushback(c); @@ -4654,7 +4655,7 @@ rb_intern(name) const char *name; { static ID last_id = LAST_TOKEN; - int id; + ID id; int last; if (st_lookup(sym_tbl, name, &id)) @@ -791,33 +791,33 @@ rb_reg_initialize(obj, s, len, options) default: FL_SET(re, reg_kcode); break; - case 8: + case 16: kcode_none(re); break; - case 16: + case 32: kcode_euc(re); break; - case 24: + case 48: kcode_sjis(re); break; - case 32: + case 64: kcode_utf8(re); break; } - if (options & ~0x7) { + if (options & ~0xf) { kcode_set_option((VALUE)re); } if (ruby_ignorecase) { options |= RE_OPTION_IGNORECASE; FL_SET(re, REG_CASESTATE); } - re->ptr = make_regexp(s, len, options & 0x7); + re->ptr = make_regexp(s, len, options & 0xf); re->str = ALLOC_N(char, len+1); memcpy(re->str, s, len); re->str[len] = '\0'; re->len = len; - if (options & ~0x7) { + if (options & ~0xf) { kcode_reset_option(); } } |