diff --git a/ChangeLog b/ChangeLog index fbf82ba205..95a106da21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 11 02:06:44 2009 NARUSE, Yui + + * parse.y (rb_char_to_option_kcode): ASCII-8BIT should + also delay. + + * re.c (parser_regx_options): return rb_ascii8bit_encindex on + ASCII-8BIT. [ruby-dev:39300] + Fri Sep 11 01:14:00 2009 Marc-Andre Lafortune * lib/net/http.rb (fetch): rdoc fix, patch by Arthur Schreiber. diff --git a/parse.y b/parse.y index 121029d19d..26283aa6e5 100644 --- a/parse.y +++ b/parse.y @@ -5598,8 +5598,13 @@ parser_regx_options(struct parser_params *parser) options |= RE_OPTION_ONCE; } else if (rb_char_to_option_kcode(c, &opt, &kc)) { - kopt = opt; - if (kc >= 0) kcode = c; + if (kc >= 0) { + if (kc != rb_ascii8bit_encindex()) kcode = c; + kopt = opt; + } + else { + options |= opt; + } } else { tokadd(c); diff --git a/re.c b/re.c index 2d7ea2c4c3..e22c8c04c2 100644 --- a/re.c +++ b/re.c @@ -287,7 +287,7 @@ rb_char_to_option_kcode(int c, int *option, int *kcode) switch (c) { case 'n': - *kcode = -1; + *kcode = rb_ascii8bit_encindex(); return (*option = ARG_ENCODING_NONE); case 'e': *kcode = rb_enc_find_index("EUC-JP"); @@ -296,7 +296,7 @@ rb_char_to_option_kcode(int c, int *option, int *kcode) *kcode = rb_enc_find_index("Windows-31J"); break; case 'u': - *kcode = rb_enc_find_index("UTF-8"); + *kcode = rb_utf8_encindex(); break; default: *kcode = -1;