diff --git a/ChangeLog b/ChangeLog index 61494b675c..b14a0e1abc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ Tue Apr 8 10:34:10 2008 Yukihiro Matsumoto * load.c (rb_require_safe): should check fname path after $SAFE is properly set. [ruby-dev:34268] + * re.c (rb_reg_quote): should always copy the quoting string. + [ruby-core:16235] + Tue Apr 8 10:30:29 2008 Nobuyoshi Nakada * common.mk (prelude.c): depends on enc/prelude.rb. diff --git a/re.c b/re.c index 3f115cd04b..f0776a1fe8 100644 --- a/re.c +++ b/re.c @@ -2759,11 +2759,11 @@ rb_reg_quote(VALUE str) } s += clen; } + tmp = rb_str_new3(str); if (ascii_only) { - str = rb_str_new3(str); - rb_enc_associate(str, rb_usascii_encoding()); + rb_enc_associate(tmp, rb_usascii_encoding()); } - return str; + return tmp; meta_found: tmp = rb_str_new(0, RSTRING_LEN(str)*2);