diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | parse.y | 9 | ||||
-rw-r--r-- | re.c | 4 |
3 files changed, 17 insertions, 4 deletions
@@ -1,3 +1,11 @@ +Fri Sep 11 02:06:44 2009 NARUSE, Yui <naruse@ruby-lang.org> + + * 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 <ruby-core@marc-andre.ca> * lib/net/http.rb (fetch): rdoc fix, patch by Arthur Schreiber. @@ -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); @@ -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; |