aboutsummaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-29 13:44:32 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-29 13:44:32 +0000
commit5ee7f4b0b5a015ae31bffe1b11723c9fce272866 (patch)
treec64191a009166a37ce0440f4fbfc2893d63ffcf1 /re.c
parent1b0ba5931ded52e16b24ea9ca8e466cd0aaed0fc (diff)
downloadruby-5ee7f4b0b5a015ae31bffe1b11723c9fce272866.tar.gz
* re.c (rb_reg_regsub): returns the given string itself if nothing
changed. * string.c (rb_str_sub_bang): keeps code-range as possible. * string.c (str_gsub): adjusts code-range. [ruby-core:14566] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 're.c')
-rw-r--r--re.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/re.c b/re.c
index eae1ebd05b..4c473a8bb4 100644
--- a/re.c
+++ b/re.c
@@ -2856,13 +2856,10 @@ rb_reg_regsub(VALUE str, VALUE src, struct re_registers *regs, VALUE regexp)
}
}
+ if (!val) return str;
if (p < e) {
- if (!val) {
- val = rb_str_buf_new(e-p);
- }
rb_str_buf_cat(val, p, e-p);
}
- if (!val) return str;
rb_enc_associate(val, enc);
return val;